
- •Билет 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. Синхронизирующие примитивы. Решение задачи взаимного исключения с использованием семафоров (7, 8, 19, 20) - 152
Неделимое обращение к общей переменной всегда подразумевает одностороннее движение информации. Отдельный процесс может либо присвоить новое значение, либо проверить текущее значение. Однако такая проверка не оставляет следов для других процессов. Вследствие этого, в то время как процесс желает отреагировать на текущее значение общей переменной, значение этой переменной может быть изменено другими процессами. То есть такое взаимодействие через общие переменные нельзя считать во всех случаях адекватным. Для разрешения такой ситуации:
1. Вводятся специальные целочисленные общие переменные, называемые семафорами.
2. Добавляются к набору действия, из которых состоят процессы, два новых примитива: p-операция и v-операция.
Эти две операции всегда выполняются над семафорами и представляют единственный способ обращения к семафорам со стороны одновременно действующих процессов. Для решения задачи взаимного исключения область значений семафоров 0 и 1 (двоичные семафоры), но существует понятие и общего семафора, при котором он может принимать определенное количество целочисленных значений.
s1 – семафор,
p(s1) или v(s1) – запись операций над семафором.
V-операция – операция с одним аргументом, который должен быть семафором. Ее назначение – увеличение аргумента на единицу. Это действие рассматривается как неделимая операция.
Имеется достаточно принципиально е различие между семафорными и обычными операциями сложения. Если двумя параллельно-развивающимися процессами выполнена семафорная операция v(s1) над общим семафором s1, получим увеличение семафора s1 на два, так как операция v неделимая. А выполнение операции сложения s1 с единицой параллельными процессами может привести к увеличению значения s1 на единицу.
П1 П2 П1 П2
S1 := S1+1 S1 := S1+1 v(S1) v(S1)
P-операция – операция с одним аргументом, который должен быть семафором. Ее назначение – уменьшение аргумента на единицу, если только результирующее значение не становится отрицательным. Завершение р-операции, то есть решение о том, что в настоящий момент является подходящим для выполнения уменьшения и последующее уменьшение значения аргумента, рассматривается как неделимая операция.
P-операция определяет потенциальную задержку. Если инициируется р-операция над семафором, который в этот момент равен нулю, то в данном случае р-операция не может завершиться, пока какой-либо другой процесс не выполнит v-операцию над тем же семафором и не присвоит ему значение 1. Несколько процессов могут одновременно начать р-операцию над одним семафором.
Утверждение о том, что завершение р-операции есть неделимое действие, означает, что когда семафор получит значение 1, только одна из начавшихся р-операций над семафором завершится, какая именно – не определено.
begin integer свободно;
свободно := 1;
очередь := 0;
parbegin
процесс 1: begin … end;
процесс 2: begin … end;…
процесс N: begin … end;
parend;
end;
процесс i:
begin
Li: p(свободно);
Критический интервал i;
V(свободно);
Остаток цикла i;
goto Li;
end;
Задача “производитель-потребитель”
Общие семафоры
Рассматриваются два процесса, которые называются производитель и потребитель. Оба процесса являются циклическими. Производитель при каждом циклическом повторении участка программы производит отдельную порцию информации, которая должна быть обработана потребителем. Потребитель при каждом повторении обрабатывает следующую порцию информации, выработанную производителем. Отношения производитель-потребитель подразумевают односторонний канал связи, по которому могут передаваться порции информации. С этой целью процессы связаны через буфер неограниченной емкости. То есть, произведенные порции не должны немедленно потребляться, а могут организовывать в буфере очередь. Буфер работает по принципу FIFO.
ЧПБ – число порций в буфере.
РБ – работа с буфером
begin integer ЧПБ;
ЧПБ := 0;
parbegin
производитель: begin
П1: производство новой порции;
добавление новой порции в буфер;
v(ЧПБ);
goto П1;
end;
потребитель: begin
П2: p(ЧПБ);
взятие порции из буфера;
обработка взятой порции;
goto П2;
end;
parend;
end;