
- •Билет 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. Управление оперативной памятью
- •Двухуровневая организация
Программные каналы
Одним из простейших средств взаимодействия процессов в операционной системе UNIX является механизм каналов. Неименованный канал есть некая сущность, в которую можно помещать и извлекать данные, для чего служат два файловых дескриптора, ассоциированных с каналом: один для записи в канал, другой — для чтения. Для создания канала служит системный вызов pipe():
#include <unistd.h>
int pipe(int *fd)
Данный системный вызов выделяет в оперативной памяти некоторое ограниченное пространство и возвращает через параметр fd массив из двух файловых дескрипторов: один для записи в канал — fd[1], другой для чтения — fd[0].
Эти дескрипторы являются дескрипторами открытых файлов, с которыми можно работать, используя такие системные вызовы как read(), write(), dup() и так далее. Однако следует четко понимать различия между обычным файлом и каналом.
Основные отличительные свойства канала следующие:
-
В отличие от файла, к неименованному каналу невозможен доступ по имени, т.е. единственная возможность использовать канал – это те файловые дескрипторы, которые с ним ассоциированы
-
Канал не существует вне процесса, т.е. для существования канала необходим процесс, который его создаст и в котором он будет существовать, для файла это не так.
-
Канал реализует модель последовательного доступа к данным (FIFO), т.е. данные из канала можно прочитать только в той же последовательности, в каком они были записаны. Это означает, что для файловых дескрипторов, ассоциированных с каналом, не определена операция lseek() (при попытке обратиться к этому вызову произойдет ошибка).
Кроме того, существует ряд отличий в поведении операций чтения и записи в канал, а именно:
При чтении из канала:
-
если прочитано меньше байтов, чем находится в канале, оставшиеся сохраняются в канале;
-
если делается попытка прочитать больше данных, чем имеется в канале, и при этом существуют открытые дескрипторы записи, ассоциированные с каналом, будет прочитано (т.е. изъято из канала) доступное количество данных, после чего читающий процесс блокируется до тех пор, пока в канале не появится достаточное количество данных для завершения операции чтения.
-
процесс может избежать такого блокирования, изменив для канала режим блокировки с использованием системного вызова fcntl(). В неблокирующем режиме в ситуации, описанной выше, будет прочитано доступное количество данных, и управление будет сразу возвращено процессу.
-
При закрытии записывающей стороны канала, в него помещается символ EOF. После этого процесс, осуществляющий чтение, может выбрать из канала все оставшиеся данные и признак конца файла, благодаря которому блокирования при чтении в этом случае не происходит.
При записи в канал:
-
если процесс пытается записать большее число байтов, чем помещается в канал (но не превышающее предельный размер канала) записывается возможное количество данных, после чего процесс, осуществляющий запись, блокируется до тех пор, пока в канале не появится достаточное количество места для завершения операции записи;
-
процесс может избежать такого блокирования, изменив для канала режим блокировки с использованием системного вызова fcntl(). В неблокирующем режиме в ситуации, описанной выше, будет записано возможное количество данных, и управление будет сразу возвращено процессу.
-
если же процесс пытается записать в канал порцию данных, превышающую предельный размер канала, то будет записано доступное количество данных, после чего процесс заблокируется до появления в канале свободного места любого размера (пусть даже и всего 1 байт), затем процесс разблокируется, вновь производит запись на доступное место в канале, и если данные для записи еще не исчерпаны, вновь блокируется до появления свободного места и т.д., пока не будут записаны все данные, после чего происходит возврат из вызова write()
-
если процесс пытается осуществить запись в канал, с которым не ассоциирован ни один дескриптор чтения, то он получает сигнал SIGPIPE (тем самым ОС уведомляет его о недопустимости такой операции).
В стандартной ситуации (при отсутствии переполнения) система гарантирует атомарность операции записи, т. е. при одновременной записи нескольких процессов в канал их данные не перемешиваются.