
- •Билет 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
3. Виртуальная память. Задачи управления виртуальной памятью (11, 25)
Управление памятью представляет собой сложную связь между процессами и программными обеспечениями ОС. Под виртуальным пониманием такая реализация ОП, когда процесс может получить в расположение область памяти по размеру превышающий физическую память и при этом обеспечить многозадачный режим работы.
При таком взгляде на память, процесс представляет собой последовательность логических адресов, которые динамически транслируются в физические адреса во время выполнения. При этом процесс может быть разбит на несколько участков памяти, которые в физической памяти располагаются не последовательно.
Это реализовывается путем динамической трансляции адресов и использованием таблиц страниц и таблиц сегментов. Появляется две возможности: можно писать программы больше чем физическая основной память и может поддерживаться одновременное параллельное развитие большого числа процессов, каждый из которых представляется в программе небольшой участок кода.
При управлении виртуальной памятью решаются следующие задачи:
- размещение;
- перемещение;
- преобразование;
- замещение
Задача размещения
Её сущность состоит в выборе в адресном пространстве ОП сегментов или страниц, на которые будут отображаться сегменты или страницы виртуального адресного пространства.
При решении этой задачи стараются выбрать максимально простой алгоритм распределения памяти. Алгоритм строится таким образом, чтобы уменьшить частоту его использования. Для учета свободных и распределенных страниц можно использовать двоичного вектора. Число двоичных разрядов вектора равно числу страниц ОП. Двоичные разряды нумеруются в той же последовательности, что и страницы. Если в разряде храниться 0 - это значит, что страница свободна и 1 - страница распределена. Если свободных страниц нет, а запрос на страницу поступает, то решается задача замещения и какую-то страницу перемещают во внешнюю память.
Задача перемещения
Ее назначение определить, когда страница из внешней памяти должна быть передана в основную память. Используется 2 основных варианта выборки информации во внешней памяти:
– по требованию;
– предварительно.
При выборке по требованию страница передается в основную только тогда, когда выполняется обращение к ячейке памяти, расположенной на этой странице. Когда процесс только запускается, число обращений к внешним страницам, распределенных во внешней памяти, достаточно велико, но постепенно начинает срабатывать принцип локализации, и все большее число обращений начинает происходить к уже загруженным страницам.
В случае предварительной выборки, загружается не только страница, вызвавшая прерывание. Если страница процесса расположена последовательно во внешней памяти, то бывает эффективной загрузка нескольких страниц за один раз. Предварительная выборка ориентирована на физическую организацию внешней памяти, и здесь учитываются такие факторы, как время поиска страницы и задержки, связанные с позиционированием устройств чтения. Это позволяет уменьшить число операций по перегрузке, так как обычно соблюдается свойство локальности.
Задача преобразования
Сущность данной задачи состоит в осуществлении перехода от логического к физическому адресу. Самый простой способ – это одноуровневая таблица. Ее недостатком является большой размер страниц.
Лог. адрес |
Физ. адрес |
1 |
100 |
2 |
70 |
3 |
215 |
4 |
23 |
5 |
47 |
|
|
Поэтому используют двухуровневые таблицы, где изначально реализовываются каталог, а потом уже и страницы.
Задача замещения
Целью этой задачи является выбор среди пространства ОП той страницы, которую следует переместить во внешнюю память. Задача решается, когда обнаруживается отсутствие страницы в ОП, а вместе с тем следует запрос на размещение новых страниц.
Первый, наиболее простой подход, заключается в остановке процесса, потребовавшего страницу ОП в ситуации, когда вся память распределена. В этом случае управление передается другому процессу, у которого нет требований на дополнительную память, а в отношении приостановленного процесса либо не принимается никаких действий, либо все его страницы выгружаются во внешнюю память. Недостаток этого подхода- дискриминации подвергается тот процесс, в ходе выполнения которого возникла потребность замещения.
Идеальная стратегия замещения: должна быть замещена та страница, к которой дольше всего не будет обращений в будущем.
Существуют следующие стратегии:
- для замещения выбирается страница случайным образом;
- выбирается страница, которая дольше всего была в ОП;
- FIFO (удаляется та страница, которая раньше всех была распределена какому-либо процессу). Фактически, это реализация предыдущей стратегии, но она может быть реализована для различных процессов;
- алгоритм удаления дольше всех неиспользовавшейся страницы. Если долго обращения к странице не было, следовательно, в будущем тоже не предвидится.
В простейшем случае, с каждой страницей для этой стратегии связывается бит использования. Этот бит установлен в 1 при обращении к странице, а способ сброса бита в 0 и определяет способы реализации данной стратегии.
Страница 1
Use 1
Страница 45
Use 1
Страница 47
Use 1
Страница53
Use 0
Use 0
Страница 108
…
…
Указатель буфера
В настоящее время используется варианты «часового» алгоритма.
Имеется циклический буфер размерности n, в каждом элементе хранится номер страницы и бит использования. Бит использования установлен в 1, когда к странице произведено обращение, если при первой загрузке страницы в ОП. Указатель буфера указывает на последнюю замещенную страницу. Когда возникает вопрос решить задачу замещения, указатель перемещается на следующий элемент буфера. Если бит использования установлен в 0, то производится замещение соответствующей страницы. Если же окажется, что бит использования =1, то страница не замещается, бит использования устанавливается в 0, а указатель перемещается на следующий элемент буфера. Перемещение указателя осуществляется до тех пор, пока не будет обнаружена страница с 0 битом использования.
Повысить эффективность часового алгоритма можно путем увеличения количества используемых при его работе битов. Практически, во всех системах страничной организации со страницей связывается бит модификации. Этот бит указывает, что страница не может быть замещена до тех пор, пока её содержимое не будет переписано во внешнюю память. Соответственно может быть 4 комбинации битов использования и битов модификации:
N m
0 n:0-давно использован
0 1-недавно использован
1 m:0- не модифицирован
1 1- модифицирован
Сканируем буфер, начиная с текущего положения. В процессе сканирования бит использования не изменяется. Первая страница состояния (0,0) замещается.
Если такой страницы нет, то ищем страницу с параметром (0,1). Если такая страница найдена, она замещается. В процессе выполнения данного шага у всех проанализированных страниц сбрасывается бит использования.
Если такой страницы нет, значит, у всех страниц будет сброшен бит использования, указатель буфера вернется в исходное положение, затем повторяем шаг 1 и, при необходимости, 2.
Явление пробуксовки наблюдается тогда, когда ОП имеет небольшие размеры, а программы велики по размеру. В этом случае может возникнуть ситуация частого замещения страниц, и большая часть процессорного времени тратится на выполнение служебных функций. Следовательно, резко замедляется выполнение пользовательских программ.
БИЛЕТ 12