- •А. Аппаратное обеспечение компьютеров
- •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. Понятие программного канала. Средства управления программными каналами.
MC - Midnight comander
DeCo – Demos Comander
5. Принципы организации многозадачного режима в операционных системах.
(лекция 01.09.2003)
Режимы вычислительного процесса. С точки зрения программиста-администратора (?) можно выделить три основных типа вычислительного процесса:
1.1) пакетный режим
1.2) режим разделения времени
1.3) режим реального времени С точки зрения пользователя-оператора различают: 2.1) диалоговый режим 2.2) режим виртуальных машин.
1.1) Пакетный режим:
Все прикладные программы оформляются в виде отдельных заданий, в каждом из которых содержатся описания требуемых вычислительных ресурсов. Из таких отдельных заданий составляется последовательность, называемая пакетом. В пакете каждое задание является независимым от другого. Задания в пакете выполняются строго последовательно, одно за другим. При этом все ресурсы последовательно передаются очередному заданию:
Всистемах пакетной обработки для планирования используются следующие алгоритмы:
•SJF (кратчайшее задание выполняется первым)
•SRF (наибольшим приоритетом обладает задание с наименьшим остающимся
до конца временем)
1.2) Режим разделения времени:
Все ресурсы передаются поочерёдно активным задачам, которые одновременно существуют в вычислительной системе. Находится в контуре управления (??):
Для планирования может применяться алгоритм RR (Routine Round?) - круговой циклический алгоритм. Используется в большинстве систем с разделением времени для интерактивных процессов, т.е. процессов, связанных с интерактивными терминалами.
Выделяется квант времени: t = Tциклаn , где n - число процессов.
1.3) Режим реального времени: характеризуется "немедленной" реакцией системы на предусмотренное внешнее событие (например, на сигналы, поступающие от внешних устройств). Система реального времени характеризуется временем реакции на событие. 2.1) Диалоговый режим: характеризуется интерактивным взаимодействием пользователя и программы, решающей конкретную задачу.
2.2) Режим виртуальных машин:
Вычислительные системы <=> многопользовательский режим. Обеспечивает оптимальное использование ресурсов супермашин. Взаимодействие виртуальных машин обеспечивает монитор виртуальных машин (МВМ):
Характеризуется одновременным существованием в рамках единой вычислительной системы нескольких вычислительных систем, каждая из которых обеспечивает собственный режим вычислительного процесса и собственный интерфейс.
Средства организации многозадачного режима:
Символом * отмечены функции, необходимые для реализации многозадачности.
Типовой состав ОС:
•обработчики прерываний нижнего уровня и супервизоры *
•планировщики * (отвечают за распределение времени процессов конкретным задачам)
•система (или - системы) управления процессами и ресурсами *
•программы управления основной памятью
•программы управления виртуальной памятью *
•программы обслуживания файловых систем
•загрузчики
•система генерации ОС
Основные функции ядра ОС:
•Обработка прерываний *
•Создание и уничтожение процессов *
•Диспетчеризация * ("диспетчер")
•Синхронизация *
•Поддержка операций ввода/вывода
•Поддержка работы файловой системы.
•Обслуживание аппаратного контроля
...подробнее о некоторых из них:
1)Прерывания:
В ядро ОС включаются те программы, которые наиболее часто используются, не требуют частой динамической настройки и обеспечивают быструю реакцию системы на различные события в аппаратуре.
Когда происходит некоторое событие, система посылает соответствующий сигнал об этом событии процессу (см. лекция 24.03.2004). По принятому соглашению большинство сигналов вызывает прекращение выполнения процессов. Некоторые сигналы, кроме прекращения процесса, записывают состояние ядра системы в файл.
Замечание: сигналы от клавиатуры могут получать только команды, которые выполняются в приоритетном режиме.
Прерывание представляет собой способ захватывания сигналов, посланных процессом выполнение в соответствии с видом сигнала некоторого действия. Эти действия называются программами обработки прерываний (обработчиками прерываний). Они выполняются только тогда, когда выдаётся соответствующий сигнал. Для управления сигналами служит специальная команда:
trap
Эта команда ожидает сигналы, идентифицирует их и выполняет соответствующие действия. Прерывание может привести к удалению временных файлов после завершения программы или может определить сигналы, которые нужно игнорировать при выполнении некоторого участка программы. Синтаксис команды trap:
trap 'команды' сигнал[сиргнал...]
Пример:
$cat > mytrap
trap 'echo bye; exit' INT QUIT TERM
В качестве команды для trap можно использовать специально написанную Shellпроцедуру. Обычно командуtrap помещают в начало Shell-процедуры.
Супервизорные программы и обработчики прерываний бывают нескольких типов: 1-го рода - полностью резидентные (постоянно находятся в оперативной памяти); 2-го рода - частично резидентные 3-го рода - резидентные по условию.
2) Планировщики - это программы, которые отвечают за распределение времени процессов конкретным задачам. Они различаются по уровню планирования и по дисциплинам планирования. Обычно в системе существует 3 уровня планировщиков:
0.Диспетчеры (самые быстрые)
1.Планировщики первого уровня (оперативные)
2.Планировщики второго уровнядолговременные планировщики.
В качестве дисциплин планирования чаще всего используются дисциплины: FIFI, LIFO, RL (Routine Round (?) - круговой циклический алгоритм) и RL (чем раньше поступил запрос, тем выше приоритет планирования). Классическим примером динамического приоритетного планирования является алгоритм Корбато. По этому алгоритму для планирования выделяется несколько приоритетных уровней, причём каждому уровню соответствует свой квант времени, который может получить активный процесс, находящийся на данном уровне. Существует несколько уровней планирования и каждому соответствует свой квант времени:
После того, как процесс получил очередной квант времени, его приоритет понижается на 1. Количество уровней планирования зависит от режима вычислительного процесса и типа вычислительной системы (от того, где эта система применяется).
3) Управление оперативной памятью (некоторые сведения):
Различают связанное и несвязанное распределение памяти. При связанном распределении каждому процессу отводится один сплошной блок памяти. При несвязанном распределении вся память разбивается на ряд отдельных блоков (при этом возникает проблема фрагментации памяти, которая существенно осложняет задачу выделения памяти). Для борьбы с фрагментацией используются 3 вида стратегии: первый подходящий (при просмотре свободного участка, выбирается первый подходящий участок памяти), наиболее подходящий (минимальная разница требуемого и имеющегося объёма участков памяти) и наименее подходящий (выбирается самый большой свободный участок памяти).
Управление виртуальной памятью. Под виртуальной памятью понимается вся память системы, в том числе и на внешних носителях информации, представляемая как единое адресное пространство оперативной памяти. Существует два типа виртуальной памяти - страничная и сегментная.
При страничной организации в реальной памяти одновременно хранится несколько страниц, каждая из которых имеет свой уникальный номер. При выполнении процессов в системе, если необходимая процессу информация находится на странице, хранящейся а данный момент в реальной памяти, то обменов между внешней памятью и реальной не происходит. Если процесс затребовал страницу, отсутствующую в оперативной памяти, то происходит поиск и выталкивание из оперативной памяти наиболее "старой" страницы во внешнюю память по выбранному алгоритму.
При сегментной организации вся память представляется в виде множества сегментов, каждый из которых занимает определённую последовательность ячеек и может иметь переменный размер.
6. Коммуникационные средства многопользовательских операционных систем.
В качестве Коммуникационных средств в Unix имеется электронная почта , через почтовый ящик (на базе команды mail) и прямые сообщения на экран определённого терминала (write) либо всех терминалов сразу ( wall).
Команда mail имеет множество модификаций, задаваемых ключами и аргументами команды, предоставляя мощные средства поддержки разнообразных форм взаимодействия: от организации обмена сообщениями с их хранением в "почтовом ящике" до формирования и редактирования самих сообщений. Роль почтового ящика выполняет специальный системный файл. Каждое сообщение сопровождается заголовком, идентифицирующим пользователя-отправителя. Если при очередном входе пользователя в систему в почтовом ящике для него есть хотя бы одно сообщение, то система выводит на экран: you have mail
Write -> сообщение на терминал пользователей.
Результатом работы команды является "вторжение" на экран адресата приоритетного по отношению к текущей экранной выдаче приглашения к общению с отправителем и текст передаваемого сообщения с идентификатором конца сообщения <EOT>:
Блокирование выдачи на собственный экран несанкционированных сообщений других пользователей может осуществляться с помощью команды:
$ mesg n <NewLine>
< прием сообщений блокирован > $ mesg y <NewLine>
< прием сообщений разрешен >
Wall (write all) может отправить только root.
Система UNIX позволяет пользователям, работающим на одной и той же или на разных машинах, посылать почту другим пользователям или общаться друг с другом. Команда mail посылает сообщения (письма) другимпользователям, в то время как командаwrite используется для связи спользователем, работающим задругим терминалом, винтерактивномрежиме.
Команда mail - позволяет принимать сообщения и посылать сообщения другим пользователям системы. Эти сообщения хранятсяв некотором файле до тех пор, пока адресат не прочитает ихи не уничтожит. Если вас дожидается почта, то при входе в систему вы получите сообщение об этом. Оболочка также даст вам знать о поступлении любой новой почты перед выдачей на терминал очередногоприглашения.
Команда mail напечатает на терминале первое письмо из текущей почты, снабдив его «почтовым штемпелем». Затембудет выдано приглашение. Полученное письмо можно уничтожить, набрав литеру d, напечатать его снова, набрав р, или напечатать следующее письмо из текущей почты, нажав клавишу возврата каретки. Чтобы сохранить письмо в некотором файле, следует воспользоваться запросом:s имя-файла.Если в запросе s не указано имя файла, письмо будет сохранено в файле mbox в регистрационном оглавлении пользователя. Сохраненные и уничтоженные письма удаляются из почтового файла при выходе из команды mail. Выход осуществляетсяпри помощи запросаq. Чтобы выйти из команды mailбез каких-либоизменений в почтовом файле, следует воспользоваться запросом-. Это полезно в случае,если некоторые письма были уничтожены по ошибке.В процессе обработки корреспонденции нажатие клавиши (del. приводит к прекращению выполнения текущего действия (обычно печати письма); выдается приглашение для ввода следующего запроса. Почту можно послать одному или нескольким пользователям спомощью команды:
mailjnc ken
текстписьма
которая отправит письмо указанным пользователям (jnc, ken), дополнив его именем отправителя и почтовым штемпелем. Текст письма заканчивается признаком конца файла или литерой., введенной наотдельной строке.Если в процессе составленияписьма произойдеткакоелибо прерывание, тонедописанное письмо будет сохраненов файлеdead.letter в регистрационном оглавлении пользователя,ипроизойдетвыходизкомандыmail.
Командаwrite
Помимо почтовой службы имеется командаwrite, позволяющая пользователям устанавливать связь междутерминаламиинепосредственнообщатьсядруг сдругом.Команда
Write bill
проверит, работает ли пользователь bill в системе в данный момент, и, если да, пошлет на его терминалсообщениевида
message from srb on tty20 at 13:36
(сообщение от пользователя srb с терминала 20, время 13:36). Если пользователь bill вошел в систему более чем с одного терминала, то команда bill сообщит об этом и выберет для связи один из этих терминалов. По принятому протоколу взаимодействияbill должен ответить вводом команды
