- •Билет 1 Поколения компьютеров
- •1.1. Первое поколение компьютеров.
- •1.2. Второе поколение компьютеров.
- •1.3. Третье поколение – компьютеры на интегральных схемах.
- •1.4. Компьютеры четвертого поколения и далее.
- •Аппаратный уровень вычислительной системы
- •2.2. Управление физическими ресурсами
- •2.3. Управление логическими/виртуальными ресурсами.
- •Система программирования – это комплекс программ, обеспечивающий поддержание жизненного цикла программы в вычислительной системе.
- •2.5 Прикладные системы
- •Этапы развития
- •2.5.3 Основные тенденции в развитии современных прикладных систем
- •. Выводы
- •Билет №6 Основы архитектуры компьютера. Основные компоненты и характеристики. Структура и функционирование цп. Центральный процессор Структура, функции цп
- •Регистры общего назначения (рон)
- •Специальные регистры
- •Буферизация работы с операндами
- •Алгоритм для записи данных в озу
- •Буферизация выборки команд
- •Примерный алгоритм использования
- •Определение. Последовательность действий при обработке
- •3.6.1 Внешние запоминающие устройства (взу).
- •3.6.1.1 Устройство последовательного доступа
- •3.6.1.2 Устройства прямого доступа
- •3.6.2 Организация потоков данных при обмене с внешними устройствами
- •3.6.4 Организация управления внешними устройствами
- •Прерывания: организация работы внешних устройств.
- •Синхронная работа с ву
- •Асинхронная работа с ву
- •Билет 11 Иерархия памяти
- •4.4. Иерархия памяти.
- •Билет 12 Мультипрограммный режим
- •Билет 13 Организация регистровой памяти (регистровые окна, стек)
- •5.2. Модель организации регистровой памяти в Intel Itanium.
- •Билет 14 Виртуальная оперативная память Аппарат виртуальной памяти
- •Билет 15
- •Системы с распределенной памятью – mpp.
- •Системы с общей памятью – smp.
- •Системы с неоднородным доступом к памяти – numa.
- •Кластерные системы.
- •Билет 17. Терминальные комплексы. Компьютерные сети. Терминальные комплексы.
- •Многомашинные вычислительные комплексы
- •Билет 18 Базовые понятия, определения, структура
- •Системы разделения времени
- •Сетевые, распределенные ос
- •Билет 21 Семейство протоколов tcp/ip
- •Ip адрес представляется последовательностью четырех байтов. В адресе кодируется уникальный номер сети, а также номер компьютера (сетевого устройства в сети).
- •Транспортный уровень
- •Уровень прикладных программ
- •Однако жизненные циклы процессов в реальных системах могут иметь свою, системно-ориентированную совокупность этапов.
- •Типы процессов
- •Принципы организации свопинга.
- •Определение процесса. Контекст
- •Контекст процесса
- •Аппарат системных вызов в oc unix.
- •Базовые средства организации и управления процессами
- •Механизм замены тела процесса.
- •Завершение процесса.
- •Жизненный цикл процессов
- •Формирование процессов 0 и 1
- •Основные задачи планирования
- •Планирование распределения времени цп между процессами
- •8.3.1 Кванты постоянной длины.
- •8.3.2 Кванты переменной длины
- •Алгоритмы, основанные на приоритетах
- •8.4.1 Планирование по наивысшему приоритету (highest priority first - hpf).
- •8.4.2 Класс подходов, использующих линейно возрастающий приоритет.
- •8.4.3 Нелинейные функции изменения приоритета
- •8.5 Разновидности круговорота.
- •8.6 Очереди с обратной связью (feedback – fb).
- •Билет 27 Смешанные алгоритмы планирования
- •Билет 29 Планирование в системах реального времени
- •Семафоры.
- •Мониторы.
- •Дополнительная синхронизация: переменные-условия.
- •Обмен сообщениями.
- •Синхронизация.
- •Адресация.
- •Длина сообщения.
- •Билет 33 Классические задачи синхронизации процессов. «Обедающие философы»
- •Билет 34 Задача «читателей и писателей»
- •Билет 35 Задача о «спящем парикмахере»
- •Сигналы.
- •Обработка сигнала.
- •Программа “Будильник”.
- •Двухпроцессный вариант программы “Будильник”.
- •Программные каналы
- •Использование канала.
- •Реализация конвейера.
- •Совместное использование сигналов и каналов – «пинг-понг».
- •Именованные каналы (fifo)
- •Модель «клиент-сервер».
- •Билет 39 Трассировка процессов. Трассировка процессов.
- •Трассировка процессов.
- •Для билетов 40-42 общая часть Именование разделяемых объектов.
- •Генерация ключей: функция ftok().
- •Общие принципы работы с разделяемыми ресурсами.
- •Очередь сообщений.
- •Доступ к очереди сообщений.
- •Отправка сообщения.
- •Получение сообщения.
- •Управление очередью сообщений.
- •Использование очереди сообщений.
- •Очередь сообщений. Модель «клиент-сервер»
- •Билет 41 Разделяемая память
- •Создание общей памяти.
- •Доступ к разделяемой памяти.
- •Открепление разделяемой памяти.
- •Управление разделяемой памятью.
- •Общая схема работы с общей памятью в рамках одного процесса.
- •Семафоры.
- •Доступ к семафору
- •Операции над семафором
- •Управление массивом семафоров.
- •Работа с разделяемой памятью с синхронизацией семафорами.
- •1Й процесс:
- •2Й процесс:
- •Механизм сокетов.
- •Типы сокетов. Коммуникационный домен.
- •Создание и конфигурирование сокета. Создание сокета.
- •Связывание.
- •Предварительное установление соединения. Сокеты с установлением соединения. Запрос на соединение.
- •Сервер: прослушивание сокета и подтверждение соединения.
- •Прием и передача данных.
- •Завершение работы с сокетом.
- •Резюме: общая схема работы с сокетами.
- •Билет 44
- •Структурная организация файлов
- •Атрибуты файла
- •Типовые программные интерфейсы работы с файлами
- •Индексные узлы (дескрипторы)
- •Модели организации каталогов
- •Варианты соответствия: имя файла – содержимое файла
- •Организация фс Unix
- •Логическая структура каталогов
- •Билет 50. Модель версии System V Структура фс
- •Работа с массивами номеров свободных блоков
- •Работа с массивом свободных ид
- •Индексные дескрипторы
- •Адресация блоков файла
- •Файл каталог
- •Установление связей
- •Недостатки фс модели версии System V
- •Билет 51. Модель версии ffs bsd
- •Стратегии размещения
- •Внутренняя организация блоков
- •Структура каталога ffs
- •Архитектура.
- •Программное управление внешними устройствами
- •Буферизация обмена
- •Планирование дисковых обменов
- •Билет 54 .Raid системы.
- •Файлы устройств, драйверы
- •Буферизация при блок-ориентированном обмене
- •Билет 57. Управление оперативной памятью
- •Двухуровневая организация
Дополнительная синхронизация: переменные-условия.
Помимо обычных структур данных, мониторы могут включать в себя специальные переменные-условия, на которых определены операции wait и signal. Они используются для синхронизации. Если процесс, находящийся внутри монитора (т.е. исполняющий одну из его процедур), обнаруживает, что логически он не может продолжать выполнение, пока не выполнится определенное условие (например, буфер для записи данных переполнился), он вызывает операцию wait над определенной переменной-условием. При этом его дальнейшее выполнение блокируется, и это позволяет другому процессу, ожидающему входа в монитор, попасть в него. В дальнейшем, если этот другой процесс произведет некоторые действия, которые приведут к изменению обстоятельств (в нашем примере – считает часть данных из буфера), он должен вызвать для соответствующей переменной-условия операцию signal, что позволит разблокировать ожидающий процесс. Тонкость заключается в том, что разблокированный процесс, как и тот, кто его разблокировал, должен оказаться внутри монитора, но нахождение двух процессов внутри монитора одновременно невозможно по определению. Хоар постулировал, что в этом случае процесс, вызвавший signal, приостанавливается. Хансен в своей модификации мониторов в 1975 г. предложил более простое дополнительное условие: вызов signal должен быть самым последним внутри процедуры монитора, чтобы процесс немедленно после его выполнения покинул монитор. Заметим, что переменные-условия используются в мониторах не для организации взаимного исключения (оно постулируется самим определением монитора), а для дополнительной синхронизации процессов. В нашем примере разделяемый ресурс – буфер для чтения/записи охраняется от одновременного доступа по чтению и по записи самим монитором, а переменная-условие предохраняет пишущий процесс от затирания ранее записанных данных.
Несомненным достоинством мониторов является то, что взаимное исключение здесь организуется автоматически, что существенно упрощает программирование и снижает вероятность ошибок. Недостатком же является то, что, как уже говорилось, монитор – это языковая конструкция. Следовательно, если язык программирования не содержит таких конструкций (а для большинства распространенных языком это так и есть), программист не может ею воспользоваться. В то же время семафоры, например, являются средством ОС, и если соответствующая ОС поддерживает семафоры, программист может их использовать независимо от того, на каком языке он пишет программы. Мониторы реализованы в некоторых языках программирования, таких как Concurrent Euclid, Concurrent Pascal, Modula-2, Modula-3, однако эти языки не слишком распространены.
Обмен сообщениями.
Общей проблемой и для мониторов, и для семафоров является то, что их реализация существенно опирается на предположение, что мы имеем дело либо с однопроцессорной системой, либо с многопроцессорной системой, где все процессоры имеют доступ к общей памяти. Однако в случае распределенной системы, где каждый процессор имеет прямой доступ только к своей памяти, такие средства не подходят. Более общим средством, решающим проблему синхронизации как для однопроцессорных систем и систем с общей памятью, так и для распределенных, является обмен сообщениями.
Обмен сообщениями представляет собой средство, которое может быть использовано как для синхронизации, в частности для организации взаимного исключения, так и для обмена информацией между взаимосвязанными процессами, выполняющими общую работу. Рассмотрим общую концепцию обмена сообщениями. Основная функциональность реализуется двумя примитивами, реализующими, соответственно, посылку и прием сообщения:
send(destination, message)
receive(source, message)
Как и семафоры, и в отличие от мониторов, эти примитивы являются системными вызовами, а не конструкциями языка.
Рассмотрим основные особенности, которыми может обладать та или иная система обмена сообщениями.