
- •Билет 1 – (4) 1. Основы ос Unix, возможности, стандартизация
- •1.1 Отличительные черты ос unix
- •1.2 Основы архитектуры операционной системы unix
- •1.3 Ядро системы
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 4 (1, 16, 18) – 146
- •3. Последовательность действий по преобразованию адреса в защищенном режиме:
- •1.8 Обработка ошибок
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 2 (2, 6, 15, 27) – 143
- •3. Особенности современных операционных систем (2, 28) – 122
- •Характеристики современных ос
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 3 (3, 28) – 144
- •3. Концепция слоистой операционной системы и системы на основе микроядра.
- •6.Подход на основе микроядра хорошо функционирует среди объектно-ориентированных ос (object-oriented operating system).
- •Билет 4
- •1. Владельцы файлов. Права доступа к файлам. Атрибуты файлов (4, 18) – 23
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 1 (4, 26) – 142
- •3. Функции микроядра (4, 12, 15, 27) – 126
- •1. Неименованные каналы в ос unix (5) – 77
- •2. Взаимодействие процессов. Задача взаимного исключения. Алгоритм Деккера (5) – 147
- •3. Понятие процесса, модели процессов (5) – 132
- •1. Метаданные файлов в ос unix (7) – 36
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 2 (2, 6, 15, 27) – 143
- •3. Описание процесса, таблица процесса (6) – 136
- •1. Процессы в ос unix. Типы процессов. (7, 23) – 56
- •2. Синхронизирующие примитивы. Решение задачи взаимного исключения с использованием семафоров (7, 8, 19, 20) - 152
- •3. Принципы построения ос (7, 19, 26) – 128
- •2. Синхронизирующие примитивы. Решение задачи взаимного исключения с использованием семафоров (7, 8, 19, 20) - 152
- •3. Концепция потока, как составной части процесса (8) – 139
- •1. Разработка программ в ос unix. Обработка ошибок, переменные окружения (9) – 11
- •2. Применение двоичных семафоров для решения задачи «производитель» - «потребитель» (буфер неограниченный) (9, 21)
- •3. Концепция виртуализации (9, 17)
- •1. Файлы, отображаемые в память (10) – 33
- •2. Применение семафоров для решения задачи «производитель» - «потребитель» с неограниченным буфером. Решение «спящий парикмахер». (10, 22) – 155
- •3. Подсистема управления памятью, требования, предъявляемые к ней (10)
- •Билет 11
- •1. Процессы в ос unix. Порождение процесса (11, 25) – 57
- •2. Применение общих семафоров для решения задачи «производитель-потребитель» с ограниченным буфером (11, 23) – 157
- •3. Виртуальная память. Задачи управления виртуальной памятью (11, 25)
- •1. Сигналы в ос unix. Их назначение и обработка (12) – 70
- •2. Взаимодействие процессов через переменные состояния. Пример приоритетного правила (12) – 157
- •3. Функции микроядра (4, 12, 15, 27) – 126
- •1. Функции для работы с сигналами (13) – 70
- •2. Проблема тупиков. Алгоритм банкира (13)
- •3.Задача замещения
- •1. Файлы и файловая система в ос unix. Права доступа (3, 14) – 18
- •2. Задача взаимного исключения. Алгоритм Петерсона (14) – 148
- •3. Схемы распределения памяти
- •1. Файловая система в ос unix ext2 (15) – 51
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 2 (2, 6, 15, 27) – 143
- •3. Функции микроядра (4, 12, 15, 27) – 126
- •Билет 16
- •1. Каналы в ос unix (16) – 80
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 4 (1, 16, 18) – 146
- •3. Организация защиты в процессорах ia32
- •1. Процессы в ос unix, системные вызовы wait, exit (17) – 60, 63
- •2. Монитороподобные средства синхронизации для решения задачи взаимного исключения (17) – 160
- •3. Концепция виртуализации (9, 17)
- •1. Владельцы файлов. Права доступа к файлам. Атрибуты файлов (4, 18) – 23
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 4 (1, 16, 18) – 146
- •3. Схемы распределения памяти (18, 24)
- •1. Взаимодействие процессов в ос unix, очереди сообщений (19) – 83
- •2. Синхронизирующие примитивы. Решение задачи взаимного исключения с использованием семафоров (7, 8, 19, 20) - 152
- •3. Принципы построения ос (7, 19, 26) – 128
- •1 Взаимодействие процессов в ос unix с применением семафоров (20) – 93
- •2. Синхронизирующие примитивы. Решение задачи взаимного исключения с использованием семафоров (7, 8, 19, 20) - 152
- •Механизмы поддержки многозадачности в процессорах ia32 (20)
- •1. Работа с файлами в ос unix. Системные вызовы (21) – 25
- •2. Применение двоичных семафоров для решения задачи «производитель» - «потребитель» (буфер неограниченный) (9, 21)
- •3. Страничная организация памяти в процессоре ia32
- •Билет 22
- •1. Взаимодействие процессов в ос unix. Разделяемая память (22) – 100
- •2. Применение семафоров для решения задачи «производитель» - «потребитель» с неограниченным буфером. Решение «спящий парикмахер». (10, 22) – 155
- •3. Организация защиты в процессорах ia32
- •Билет 23
- •1. Процессы в ос unix. Типы процессов. (7, 23) – 56
- •2. Применение общих семафоров для решения задачи «производитель-потребитель» с ограниченным буфером (11, 23) – 157
- •3.Задача замещения
- •1. Понятие потока в ос unix. Создание потока, завершение потока (24) – 106
- •2. Синхронизирующие примитивы. Решение задачи взаимного исключения с использованием семафоров (7, 8, 19, 20, 24) - 152
- •3. Схемы распределения памяти (18, 24)
- •1. Процессы в ос unix. Порождение процесса (11, 25) – 57
- •2. Задача взаимного исключения. Алгоритм Петерсона
- •3. Виртуальная память. Задачи управления виртуальной памятью (11, 25)
- •Билет 26
- •1. Создание потока
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 1 (4, 26) – 142
- •3. Принципы построения ос (7, 19, 26) – 128
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 2 (2, 6, 15, 27) – 143
- •3. Функции микроядра (4, 12, 15, 27) – 126
- •2. Взаимодействие процессов. Задача взаимного исключения. Вариант 3 (3, 28) – 144
- •3. Особенности современных операционных систем (2, 28) – 122
2. Взаимодействие процессов. Задача взаимного исключения. Вариант 2 (2, 6, 15, 27) – 143
int flag[2];
void P0()
{
while (1)
{
while (flag[1]);
flag[0]=1;
критический интервал 1;
flag[0]=0;
….
}
}
void P1()
{
while (1)
{
while (flag[0]);
flag[1]=1;
критический интервал 2;
flag[1]=0;
….
}
}
void main()
{
flag[0]=0;
flag[1]=0;
parbegin(P0,P1);
}
3. Функции микроядра (4, 12, 15, 27) – 126
1. Низкоуровневое управление памятью. Для реализации в микроядре защиты на уровне процессов в нем должен обеспечиваться контроль над аппаратной организацией адресного пространства. Если микроядро будет отвечать лишь за отображение виртуальной страницы на физическую страницу, то блок управления памятью, включая систему защиты адресного пространства одного процесса от другого, а также алгоритм замены страниц и другие логические схемы страничной организации памяти можно реализовать вне ядра. Модуль виртуальной памяти принимает решение, когда загружать страницу в память, и какую из страниц, находящихся в памяти, следует заменить.
Приложения
Система страничной организации памяти
Микроядро
Возобновление работы
Вызов функции для работы с адресным пространством
Ошибка из-за отсутствия страницы
Когда приложение обращается к странице, которая отсутствует в основной памяти, возникает прерывание из-за отсутствия страницы и управление перехватывается ядром. Ядро отправляет системе страничной организации памяти сообщение, в котором указывается запрашиваемая страница. Система страничной организации памяти может принять решение о загрузке данной страницы в оперативную память и выделения для этого физической страницы. Система страничной организации и ядро взаимодействуют между собой, чтобы логические операции, выполняемые системой страничной организации памяти, отображались в физическую память. Как только нужная страница станет доступна, то система страничной организации отправляет через микроядро сообщение приложению о том, что приложение может продолжить работу.
Считается, что в микроядре можно оставить только 3 операции для поддержки внешних систем страничной организации памяти и управления внешней памятью.
Предоставление. Процесс, который владеет адресным пространством, может предоставлять некоторые свои страницы другому процессу. Ядро удаляет эти страницы из адресного пространства первого процесса и передаёт их второму процессу.
Отображение. Процесс может отображать любые свои страницы в адресное пространство другого процесса. После чего оба процесса будут иметь доступ к этим страницам, то есть создаётся общая область памяти. Ядро не меняет информации о принадлежности страниц первому процессу, но выполняет отображение, предоставляя другому процессу доступ к этим страницам.
Восстановление. Процесс может восстановить любые страницы, предоставленные другим процессам или отображенные в их адресное пространство.
Вначале ядро определяет всю физическую память как единое адресное пространство, которым управляет основной системный процесс. При создании новых процессов страницы общего адресного пространства могут передаваться или отображаться в эти новые процессы. Такая схема позволяет одновременно поддерживать несколько схем организации виртуальной памяти.
2. Взаимодействие между процессами. Основной формой взаимодействия между процессами (потоками) являются сообщения. Сообщения включают в себя заголовок, в котором указаны идентификаторы процесса отправителя и процесса получателя, а также указатель на блок данных и некоторые управляющие сведения о процессе.
Взаимодействие между процессами основывается на относящихся к этим процессам портам. Порт – это очередь сообщений, предназначенная для определённого процесса. С портом связан список возможностей, в которых указано с какими процессами данный процесс может обмениваться информацией. Процесс может разрешить доступ к себе, отправив в ядро сообщение, в котором указана новая возможность порта.
Если адресное пространство в процессах не перекрывается, то передача сообщения от одного процесса другому – это копирование одной области памяти в другую.
3. Управление вводом-выводом и прерываниями. В микроядре имеется возможность обрабатывать аппаратные прерывания подобно сообщениям и включать в адресное пространство порта ввода-вывода, но не обрабатывает их. Микроядро распознает прерывания, но само не обрабатывает их. Оно генерирует сообщение процессу, работающему на пользовательском уровне и связанному с данным прерыванием, т. е. ядро преобразует прерывание в сообщение, но само в обработке аппаратно-зависимых прерываний не участвует.
В некоторых системах предлагается рассматривать аппаратное обеспечение как набор потоков, которые обладают своими идентификаторами и отправляют сообщение состоящее из идентификатора данного потока соответствующим потокам в пользовательских программах. Поток-получатель выясняет, является ли полученное сообщение прерыванием.
БИЛЕТ 28