Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операционные системы (лекции) (4 семестр).doc
Скачиваний:
9
Добавлен:
04.11.2018
Размер:
728.06 Кб
Скачать

Многоуровневые очереди

Можно процессы разделить на группы по своим приоритетам.

Механизм с обратной связью:

0 – высокоприоритетный, 1 – низкоприоритетный.

Всего 4 группы:

Сначала новый процесс идет в 0, получает квант времени. Если квант меньше отведенного, то завершается. Если нет, то поступает в первую очередь, где время в два раза больше. Если времени хватает, благополучно завершается. Нет – поступает во вторую группу.

Данные для реализации:

  1. количество очередей

  2. алгоритм планирования, действующий между очередями

  3. алгоритм планирования, действующий внутри очереди

  4. правила появления нового процесса в очередь

  5. правила перевода процесса из одной очереди в другую

Лекция №10

Активность:

Набор активностей детерминирован, если каждый раз при ……….. выполнения для одного и того же набора данных будут получаться одинаковые входные данные.

Условие Бейстрайна:

Для каждой атомарной операции берется набор входных (рейд) и выходных (райд) данных.

W

Q

  1. Если W(p) и W(R) пересекаются пусто раз

  2. Пересечение W(p) и W(Q) пусто

  3. Пересечение R(p) и W(Q) также пусто

Следовательно, выполнение операций W(p) и W(Q) детерминировано.

Для организации взаимодействия процессов, имеющих критическую секцию, существует условие:

  1. Задача должна быть решена чисто программным способом, не используя специфических команд

  2. Не должно существовать никаких предположений относительно скоростей выполнения процессов

  3. Если какой-то i – процесс выполняется в критической секции, то не должны существовать процессы, выполняющие в свободной критической секции

  4. Процессы, находящиеся не в своей критической секции, не должны мешать другим процессам входить в критическую секцию

  5. Не должно возникать бесконечного ожидания для входа в критическую секцию

Должна существовать аппаратная команда: проверить и установить.

Про тупики:

Виды к тупикам:

  1. ……

  2. Использовать

  3. Освобождение

4 условия возникновения тупиков:

  1. Взаимоисключение: каждый ресурс выделен одному процессу (монопольное использование ресурсов)

  2. Ожидание: процесс удерживает за собой ресурсы, уже выделенные им, может при этом ожидать выделение дополнительных ресурсов

  3. Неперераспределяемость: ресурс, выделенный процессу, не может быть принудительно отдан, процесс отдает сам.

  4. Круговое ожидание: существует кольцевая цепь процессов, из которой каждый процесс удерживает один или несколько ресурсов, требующихся другому процессу.

Для тупиковой ситуации необходимо все 4 условия.

Борьба с тупиками:

  1. игнорирование (алгоритм Страуса)

  2. обнаружение тупиков

  3. восстановление после тупиков системы

  4. предотвращение условий возникновения

Условия:

Процесс А удерживает ресурс R и ожидает ресурс S

Процесс B претендует на ресурс Т

Процесс С претендует на ресурс S

Процесс D удерживает ресурс U и ожидает ресурсы S и T

Процесс E удерживает ресурс T и ожидает ресурс V

Процесс F удерживает ресурс W и ожидает ресурс S

Процесс G удерживает ресурс V и ожидает ресурс U

Является ли ситуация тупиковой?

– процесс

D, E, G в тупиковой ситуации

– ресурс

Есть процессы, вовлеченные в тупиковую ситуацию.

3) 1 способ: принудительный вывод процесса из системы для последующего использования его ресурсов.

2 способ: восстановление через откат назад. В ряде систем существует средство RESTART с контрольной точки.

3 способ: восстановление через ликвидацию одного из процессов.

Можно избежать тупика, если рационально использовать распределение ресурсов.

Алгоритм банкира:

Пусть у системы n ресурсов.

  1. ОС принимает запрос от пользовательского процесса, если его максимальная потребность не превышает n.

  2. Пользователь гарантирует, если ОС в состоянии удовлетворить его запрос, то устройства будут возвращены системе в конечное время.

  3. Текущее состояние системы называется надежной, если ОС может обеспечить выполнение всех процессов в течение конечного времени.

  4. Выделение устройств возможно, только если состояние системы остается надежным.

Ненадежное состояние не означает, что возникнет тупик.

Пусть 12 устройств, 3 процесса, 3 пользователя.

1 пользователь получил 1 устройство, максимально может потребоваться четыре.

2 пользователь получил 4 устройства, максимально может потребоваться шесть.

3 пользователь получил 5 устройств, максимально может потребоваться восемь.

Состояние системы надежно.

Недостатки:

  1. Алгоритм исходит из конечного числа устройств.

  2. Число пользователей должно быть постоянно.

  3. Алгоритм требует, чтобы запросы выполнялись за конкретные периоды времени, но отсутствуют данные о значении.

  4. Алгоритм требует, чтобы клиенты возвращали……………

  5. Требуется, чтобы пользователи заранее указали свои максимальные потребности.

Нарушение условия ожидания дополнительных ресурсов:

  1. Каждый процесс должен запрашивать все требуемые ресурсы сразу; не выполняется, пока не будут доставлены все ресурсы.

  2. Если процесс, удерживая ресурс, получает отказ в выделении ему дополнительные ресурсов, то он должен освободить первоначальные ресурсы, а потом запросить их вновь вместе с дополнительными.

Нарушение условия кругового ожидания: присваивание всем ресурсам уникальные имена и требуем, чтобы процессы запрашивали ресурсы в порядке возрастания номеров.

Про виртуальную память:

Время фиктивного доступа для присутствия страницы складывается:

  1. Из времени обслуживания

  2. Из времени чтения страницы из вторичной (внешней) памяти

  3. Времени рестарта процесса

Все алгоритмы замещения страниц: локальные (отв. стр. у свободного процесса); глобальные (всех страниц).