
- •Билет 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. Применение семафоров для решения задачи «производитель» - «потребитель» с неограниченным буфером. Решение «спящий парикмахер». (10, 22) – 155
begin
integer ЧПБ, РБ, ЗП;
ЧПБ:=0; РБ:=1; ЗП:=0;
parbegin
производитель: begin
n1: производство новой порции;
P(РБ);
добавление новой порции к буферу;
ЧПБ:=ЧПБ+1;
if (ЧПБ=0) then begin V(РБ); V(ЗП); end
else V(РБ);
goto n1;
end;
потребитель: begin
n2: P(РБ);
ЧПБ:=ЧПБ-1;
if (ЧПБ=-)1 then begin V(РБ); P(ЗП); P(РБ); end;
взятие порции из буфера;
V(РБ);
обработка взятой порции;
goto n2;
end;
parend;
Эта программа называется "спящий парикмахер"
Используется два двоичных семафора: работа с буфером и задержка потребителя.
- используются только двоичные семафоры;
- задача взаимного исключения реализуется через семафоры;
- через семафоры реализуется задержка потребителя, которая действует при попытке потребителя читать данные из пустого буфера.
3. Подсистема управления памятью, требования, предъявляемые к ней (10)
В многозадачных системах пользовательская часть памяти должна быть распределена для размещения нескольких процессов. Задача распределения выполняется ОС динамически, и известна под названием управления памятью. Если в памяти располагается мало процессов, то большие процессы находятся в состоянии ожидания выполнения операции ввода/вывода и загрузки процессора низкая. Поэтому требуется эффективно распределять память, чтобы разместить в ней большее число процессов.
При реализации механизмов и стратегий, связанных с управлением памятью, требуется обеспечить реализацию следующих требований:
перемещение; зашита; совместное исполнение; логическая организация; физическая организация.
Перемещение. В многозадачной системе заранее неизвестно, где будет размещена загружаемая программа, кроме этого программа может перемещаться из одной области памяти в другую при спулинге. ОС должна знать местоположение управляющей информации процессов и стека выполнения, а также точку входа в исполняемый код. Т.к. управлением памятью занимается ОС, а также ОС управляет загрузкой процессов в память, соответствующие адреса она получает автоматически. При выполнении программы процесс должен иметь возможность обращения к памяти в самой программе. Таким образом, процессор и программа ОС должны переводить ссылки в коде программы в реальные физические адреса, которые соответствуют текущему расположению программы в основной памяти.
Защита. Каждый процесс должен быть защищен от нежелательного воздействия других процессов, как случайного, так и преднамеренного. Это означает, что из программного кода одного процесса нельзя обращаться к памяти, отведенной под другой процесс, для чтения или записи. Но обеспечение перемещаемости программы усложняет организацию механизма защиты. Требования защиты памяти должны удовлетворятся на уровне аппаратного обеспечения процессов, а не на уровне ОС, так как ОС не может предвидеть, куда будет обращаться программа.
Совместное использование. Предусматривает возможность обращения нескольких процессов к ОП. Если несколько процессов выполняют один и тот же машинный код, то целесообразно разрешить каждому из процессов работать с одной и той же копией этого кода, а не создавать каждому процессу копию.
Логическая организация памяти. И основная память и вторичная (внешняя) организованы как линейное адресное пространство, где элементом адресации является байт или слово. Такая организация отражает систему аппаратного обеспечения, но не соответствует страничной организации программ. Наиболее подходящим способом для решения таких задач является сегментация.
Физическая организация памяти. Память в ЭВМ разделяется как минимум на два уровня - основную и вторичную. Основная обеспечивает быстрый доступ по достаточно высокой цене, она энергозависима, следовательно, не обеспечивает долговременного хранения. Вторичная память медленнее и дешевле, и энергонезависима. Следовательно, она может использоваться для долговременного хранения данных и программ и по емкости значительно превышает основную память.