
- •А. Аппаратное обеспечение компьютеров
- •1. Раздел "Основы теории компьютеров"
- •2. Минимизация булевых функций с помощью диаграмм Вейча.
- •3. Определение и применение базиса при построении произвольных функций алгебры-логики.
- •4. Сложение и вычитание чисел с фиксированной запятой.
- •5. Умножение чисел с плавающей запятой.
- •6. Форматы команд.
- •7. Схема выполнения машинной двухадресной команды типа "Регистр-память" на однопроцессорном компьютере.
- •8. Схема выполнения машинной двухадресной команды типа "Регистр-регистр" на однопроцессорном компьютере.
- •2. Раздел "Архитектура вычислительных систем"
- •1. Архитектура кэш-памяти. Ассоциативное распределение информации в кэш-памяти.
- •2. Архитектура кэш-памяти. Прямое распределение (отображение) информации в кэш-памяти.
- •3. Архитектура векторного блока супер-ЭВМ CYBER-205. Особенности её конвейеров, обеспечивающие механизм "зацепления команд".
- •4. Векторные процессоры: структура аппаратных средств.
- •5. Пять основных архитектур высокопроизводительных ВС, их краткая характеристика, примеры.
- •6. SMP архитектура. Достоинства и недостатки. Область применения, примеры ВС на SMP.
- •7. MPP архитектура. История развития. Основные принципы. Концепция, архитектура и характеристики суперкомпьютера Intel Paragon.
- •8. Кластерная архитектура. Проблема масштабируемости. Примеры.
- •10. Понятие конвейера. "Жадная" стратегия. Понятие MAL в теории конвейера.
- •3. Раздел "Схемотехника ЭВМ"
- •1. Этапы проектирования комбинационных схем на примере дешифратора на 4 выхода: определение, таблица истинности, функция, логическая схема. Увеличение разрядности до 16-ти выходов.
- •2. Этапы проектирования комбинационных схем на примере мультиплексора 4-1: определение, таблица истинности, функция, логическая схема. Увеличение разрядности до 16-1.
- •3. Этапы проектирования комбинационных схем на примере схем сравнения двухразрядных слов: определение, таблица истинности, функция, логическая схема. Схема сравнения четырёхразрядных слов на элементах "Исключающее ИЛИ".
- •6. Синтез многовыходных комбинационных схем. Этапы проектирования в базисе И-НЕ.
- •7. Триггерные схемы: определение, классификация, условные графические обозначения, динамические параметры. Обобщённая структура двухступенчатого триггера, диаграмма его работы, условное графическое обозначение, динамические параметры.
- •8. Синтез двухступенчатого триггера по заданной таблице внешних переходов: таблица истинности, минимизация, схема. Построить временную диаграмму для двух переключений триггера, определить максимальные задержки переключений.
- •9. Счётчики: определение, модуль счётчика, динамические параметры. Примеры суммирующего, вычитающего и реверсивного счётчиков: схемы, временные диаграммы.
- •10. Счётчики: определение, модуль счётчика. Организация цепей переноса: схемы, динамические параметры. (CP)
- •11. Синтез синхронных счётчиков с заданным модулем на заданном типе триггера (DV, JK).
- •Б. Программное обеспечение компьютеров
- •4. Раздел "Алгоритмы и структура данных"
- •1. Понятие логических структур данных. Отображение структуры данных в памяти вектором и списком. Типы списков. Определение, основные операции; особенности их реализации.
- •2. Стек и очередь: определение, основные операции. Особенности выполнений операций при реализации стека и очереди вектором.
- •3. Стек и очередь: определение, основные операции. Особенности выполнения операций при реализации стека и очереди списком.
- •4. Просматриваемая динамическая таблица-вектор: определение, основные операции, особенности их реализации.
- •5. Просматриваемая динамическая таблица-список: определение, основные операции, особенности их реализации.
- •6. Упорядоченная таблица-вектор: определение, основные операции, особенности их реализации.
- •7. Таблица произвольного доступа: определение, основные операции, отображение в памяти. Функция рандомизации, её назначение.
- •9. Перемешанная таблица, использующая перемешивание сложением: определение, основные операции, особенности их реализации.
- •10. Перемешанная таблица, использующая перемешивание сцеплением: определение, основные операции, особенности их реализации.
- •5. Раздел "Базы данных"
- •1. Системы с базами данных. Понятие системы управления базами данных СУБД. Функции СУБД.
- •2. Понятие независимости от данных. Трёхуровневая архитектура ANSI-SPARC. Сравнительная характеристика уровней.
- •3. Модель данных. Назначение моделей данных. Компоненты моделей данных. Классификация моделей данных.
- •5. База данных реляционного типа. Основные понятия и структура реляционной модели. Реляционные языки. Основные правила целостности реляционной модели.
- •6. Реляционная алгебра. Основные операции реляционной алгебры.
- •7. Язык SQL. Операторы определения и манипулирования данными. Выборка данных из таблиц.
- •8. Модель данных "сущность-связь". Основные концепции и способы их представления на диаграммах. Современные методологии построения моделей "сущность-связь".
- •9. Нормализация отношений. Цель нормализации. Приведение к нормальным формам.
- •10. Жизненный цикл приложения баз данных. Основные фазы проектирования базы данных.
- •6. Раздел "Операционные системы"
- •1. Файловые системы современных операционных систем. Интерфейс пользователя для работы с файловой системой.
- •2. Принцип защиты данных в операционных системах. Управление правами доступа к файлам.
- •3. Способы группирования команд в операционных системах. Командные файлы. Программные каналы, конвейеры команд.
- •4. Обзор возможностей командных процессоров (оболочек) операционных систем.
- •5. Принципы организации многозадачного режима в операционных системах.
- •6. Коммуникационные средства многопользовательских операционных систем.
- •7. Генерация, конфигурирование, настройка операционной системы на потребности конкретного пользователя.
- •8. Средства и способы обеспечения многопользовательского режима в операционных системах.
- •9. Понятие процесса. Управление процессами в операционной системе UNIX.
- •10. Понятие программного канала. Средства управления программными каналами.

3. Способы группирования команд в операционных системах. Командные файлы. Программные каналы, конвейеры команд.
Воперационных системах команды можно разделить на несколько основных групп:
•команды для работы с деревом каталогов;
•команды для работы с файлами;
•команды ввода/ вывода;
•информационные команды;
•команды управления правами доступа.
Для хранения и выполнения последовательности команд используются командные файлы (shellпроцедуры).
Shellпроцедура – это обычный файл, содержащий команды системы UNIX, а также дополнительные команды, позволяющие программисту создавать ветвящиеся участки и циклы.
Для выполнения shellпроцедуры необходимо иметь право доступа к этому файлу на чтение и выполнение. Для обращения к shellпроцедуре из командной строки необходимо ввести имя shellпроцедуры и ряд параметров, если это необходимо.
$ <имя shellпроцедуры><параметр1>< параметр2>
Каждому аргументу, передаваемому в shellпроцедуру из командной строки, ставится в соответствие порядковый номер от 1 до 9. Если порядковый номер двузначный, то он должен быть заключен в фигурные скобки {}. Имени процедуры ставится в соответствие порядковый номер 0.
В shell данные могут передаваться одним из 3-х способов:
1.через переменные среды;
2.через аргументы командной строки;
3.с помощью команды read.
Команда shift [n] сдвигает все аргументы на n позиций влево, если n не указано, то на одну позицию и уменьшает значение переменной # (количество передаваемых аргументов) на n.
Команда read <переменная> [переменная] в процедуре передает значения переменных во время работы этой процедуры, причем вводимые пользователем значения будут присваиваться указанным переменным.
Конвейер позволяет напрямую использовать вывод одной команды в качестве ввода другой команды без использования промежуточного файла. Конвейер обозначается |. <команда1> |< команда2> |< команда3> Количество команд не ограничено. Самая первая команда в конвейере должна в
нормальном режиме выводить информацию в потока stdout. Самая последняя – принимать информацию из потока stdin. Все промежуточные команды в конвейере должны принимать информацию из стандартного потока ввода и передавать в стандартный поток вывода. Такие команды называются фильтром.
Основной принцип работы программного канала состоит в буферизации байтового вывода одного процесса и обеспечении возможности чтения содержимого программного канала другим процессом в режиме FIFO (т.е. первым будет прочита н байт, который раньше всего записан).
В системе UNIX широко используется механизм подстановки имен по некоторому образцу (шаблону). Для подстановки имен используются специальные символы генерации:
? соответствует любому одному символу, кроме лидирующей точки; [] определяет группу символов; - определяет принадлежность заданному диапазону;
! отрицание заданного символа или группы символов;
*любое кол-во любых символов за исключением лидирующей точки.
Вфайлах, имена которых начинаются с точки, точка должна быть указана явно.
Конвейеры. Знаки | || &&
Конвейером - называют последовательность команд в одной командной строке, разделенных одним из перечисленных выше знаков, в которой вывод команды слева от знака конвейера передается на ввод команды справа от знака конвейера.
Ls-lisort – сортировка содержимого текущего каталога Вывод команды ls подаётся на вход команды lisort
Программные каналы.
При работе конвейера у всех его команд должен быть единый порождающий процесс, что не всегда удобно, так как это не п озволяет обмениваться данными программам различных пользователей. Для этого служат FIFOфайлы (программные каналы). Должен быть создан до начала работы с ним с помощью mknod. На FIFO-файл распространяются все правила установки прав доступа для обычных файлов.
Отличается FIFO файл от остальных тем, что его содержимое сохраняется строго от момента записи в него со стороны источника до момента считывания со стороны приемника.
Подстановка команд $ (<команда>) pwd /home/uset2
curdir=$(pwd) echo $curdir
Командные файлы (Unix – Shell procedure).
Возможности интерпретатора shell значительно более широкие, чем интерпретация команд.
Интерпретатор, в частности, выполняет функции инициализации (настройку) при вхождении пользователя в систему. Информацию для настройки shell получает при выполнении командного файла /etc/profile, командных файлов из системного каталога /config/profiles, а также командного файла .profile , если он помещен в начальный каталог пользователя.
Следующей рассматриваемой здесь функцией shell является обработка операторов языка shell, который по своим возможностям приближается к высокоуровневым алгоритмическим языкам программирования. Операторы языка shell позволяют создавать собственные программы. В программах могут использоваться любые команды командного языка, в том числе и последующей компоновки, так как shell, обрабатывающий их, является транслятором интерпретирующего, а не компилирующего типа. Процедура - аналог командного файла в MS-DOS, но с несравнимо более широкими возможностями. Здесь же отметим, что операторы могут быть использованы как в теле процедуры, так и выполненны независимо как обычные команды в диалоговом режиме Такие программы, а также командные файлы, содержащие их, называют shellпроцедурами или shell-файлами.
Процедура формируется и обрабатывается как обычный текстовый файл. Проверенный и отлаженный shell-файл может быть вызван на исполнение одним из трех способов:
$ sh -c "shfil" |
<NewLine> или |
|
$ sh shfil |
<NewLine> или |
|
$ chmod u+x shfil |
<NewLine> |
|
$ shfil |
<NewLine> |

Впервом и втором случаях по команде sh вызывается вторичный интерпретатор shell, и
вкачестве аргумента ему передается командная строка, содержащая имя файлапроцедуры shfil, находя щегося в текущем каталоге. Третья форма предполагает, что файл-процедура новый и его надо сначала сделать выполняемым.
Процедуре при ее запуске могут быть переданы аргументы. В общем случае командная строка вызова процедуры имеет следующий вид:
$ имя_процедуры arg1 arg2 ... <NewLine>
$ _
Каждому из девяти первых аргументов командной строки в тексте процедуры соответствует один из позиционных параметров: $1, $2, ..., $9 соответственно. Параметр $0 соответствует имени самой процедуры, т.е. первому полю командной строки. К каждому из 10 первых аргументов можно обратиться из процедуры, указав в нужном месте ее текста позиционный параметр необходимого аргумента.
4. Обзор возможностей командных процессоров (оболочек) операционных систем.
(ОС, Лекция 24.11.2003)
Основы Shell:
Shell, с одной стороны, представляет собой интерпретатор команд, который, как правило, хранится в каталоге:
/usr/bin/ksh |
Korn Shell |
/usr/bin/bash |
Bash Shell |
/usr/bin/csh |
C Shell |
/usr/bin/sh |
Posix Shell |
/usr/old/bin/sh |
Borne shell |
...с другой стороны, shell - это язык программирования, позволяющий выполнять любые действия, которые позволяет выполнять языкC. Базовым shell'ом с минимальными возможностями является borne-shell.Всеостальныеоболочкивключаютвозможностиborne-shell'а.
ОсновныефункцииоболочеквUNIX:
•Исполнение команд. Находит команду и выполняет для нее соответствующую программу,подставляетзначенияпеременных.
•Установка среды.
•Заданиепеременныхи замена переменных
•Подстановка команд (установка псевдонимов командспомощью командalias/unalias).
•Генерацияимён файлов.Формируетимена файлов,используясимволыгенерации
•Выполняетперенаправлениеввода-вывода
•Выполняетподстановкурезультатоввыполнениякоманд
•Реализует конвейеры
•Интерпретация программ.Поддерживает интерпретируемый программный интерфейс, включаяпроверки,ветвленияициклы.
•Буферирование команд (кроме оболочки Borne-Shell). Shell сохраняет команды, которые вводит пользователь, в некотором файле предыстории. History выводит на экран последние 16 команд. Таким образом осуществляется буферирование команд с возможностью повторного ввода, а так же редактирование командной строки с помощью редактора VI (для этого должна быть установлена переменная среды EDITOR=vi, установка командой export EDITOR).
Рассмотрим реализациюнекоторыхизэтихвозможностейподробнее:
1)КомандывShell:
Различают2типакоманд:
•Внутренниекомандыshell.Примеры: set, while,is, for
•Команды, которые интерпретируются shell. Примеры: ls, more, pwd. Команды UNIX
находятся спомощью переменнойсредыPATH.
КомандыUNIX могут иметь те же имена,чтои встроенныекомандыshell'а: в этом случае для доступа к командам UNIX пользователь должен явно указывать полное маршрутное имя команды. Как
правило,всекомандыв системеUNIX хранятсяв 4-х основныхкаталогах:
/sbin
/user/bin
/usr/local/bin
/usr/contrib/bin
Дляпоисканужнойкомандыв системепредусмотренакоманда: whereis <имя команды>
Этакомандавыдаётнаэкранполноеимякаталога,содержащегоуказаннуюкоманду.
Установкапсевдонимовкоманд:
Допускается установка/снятие псевдонимов команд командами alias/unalias. Формат команды:
alias <имя>=<строка>
Пример:
alias dir=ls
2)Средапользователя
Среда пользователя описывает сеанс работы пользователя с системой для программ, которые запускает пользователь на выполнение. Среда пользователя содержит:
•маршрутное имя начального кат-га пользователя
•под каким именем вошел пользователь
•где shell будет искать команды и т.д.
Среда пользователя может быть отображена на экран командой env.
3)Стартовыефайлыshell:
При входе в систему для формирования среды и выполнения других необходимых действий
выполняютсяспециальныепроцедуры,которыеназываютсястартовымипроцедурамиshell.
.profile
Этот файл позволяет пользователю определить или настроить переменные среды, характеристики терминала,атакжевыполнить любоеприложениепривходев системы.
Если.profile содержиткоманду exec <приложение>

то пользователь не получит приглашение со стороныshell'а, а по завершении указанного приложения выйдетизсистемы.
Общесистемный стартовый файл(выполняется для всех пользователей, работающих сBorne, Korn
илиPosix-shell'ом):
/etc/profile
Содержимое общесистемного стартового файла формируется системных администратором и обычному пользователю не разрешается менять его содержимое.
На рисунке представлены функции процедур, выполняющихся при входе пользователя в систему. Выполнениеихв совокупностиназываетсяавторизациейпользователя. АвторизацияUNIX включает3 этапа:
1.Getty - выводит на экран содержимое файла/etc/issue. Выдаёт приглашение login. Запускает процессlogin.
2.Login - определяет допустимость введённого имени и пароля и( проверяет их на соответствие в файле etc/passwd). Если запись есть, делает текущим начальный каталог пользователя и запускаетshell
3.Shell - выполняет /etc/profile (общесистемный командный файл), а затем.profile (настраивает среду конкретного пользователя, содержится в домашнем каталоге пользователя) и выводит приглашение shell. Таким образом выполняется настройка параметров среды пользователя.
4)Хранимыепеременныевshell:
ВUNIX различаютнескольковидовпеременных:
•локальныепеременные
•программных кодshell
•переменные среды
ВShell встроеныдве области переменных:
•областьлокальныхпеременных;
•среда.
Установка переменных shell: Для установки переменной необходимо указать имя переменной и значение(<имя>=<значение>).Особенностизаданияпеременных:
•принаписаниинедопускаетсяпробелов
•имена переменных начинаются с букв латинского алфавита и могут содержать буквы,
цифрыи символыподчёркивания,ограничениянадлинуимённет.
Shell хранит переменные или в локальной области пользователя, или в среде. Для передачи
переменныхиз локальной областив средунеобходимовыполнить командуexport. Пример:
EDITOR=vi export EDITOR
Пример оболочек: