Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bilety_1-52_Os.doc
Скачиваний:
271
Добавлен:
18.02.2017
Размер:
1.8 Mб
Скачать

№10 Предотвращение тупиков. Принципы Хавендера.

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

Принципы Хавендера:

Процесс запрашивает все нужные ресурсы сразу. До выделения – ждет.

Нарушается условие возникновения тупиков - Удержание ресурсов на время ожидания следующего;

Плюс: простота реализации.

Минусы:

  • Как определить набор всех необходимых процессу ресурсов?

  • Простой свободных ресурсов.

  • Накапливание ресурсов приводит к высоким издержкам.

Если процессу не выделяется очередной ресурс, он должен отдать уже выделенные.

Нарушается условие возникновения тупиков- Ресурсы у процесса нельзя отобрать, отдает их сам (неперераспределение);

Минусы:

  • Как сохранить промежуточные результаты работы процесса?

  • Возможность бесконечного откладывания (дефицитный ресурс).

Вводим линейную упорядоченность на типы ресурсов. Процесс может запросить ресурсы только в порядке увеличения номера ресурса.

Нарушается условие возникновения тупиков - Существование кольцевой цепи запросов.

Плюс: кажущаяся простота реализации.

Минусы:

  • Сложно вводить в систему новые ресурсы (ОС).

  • Кто знает «правильную» последовательность ресурсов?

  • Трансляторы тоже должны знать номера ресурсов, а это сложно и снижает мобильность систем.

Условие монопольного управления Хавендер не нарушает

№11 Обнаружение тупиков

Обнаружение тупика – установление факта наличия в системе процессов ожидающих «нереализуемое» состояние.

Основной подход к решению – построение графа распределения ресурсов и нахождение в нем циклов. (Чрезвычайно затратный подход. На практике в чистом виде не используется.)

Восстановление работы системы – продолжение работы некоторых процессов после устранения причины тупика.

Сложности решения:

  • Неочевидность тупика.

  • Трудно остановить процесс в произвольной точке кода.

  • Большие накладные расходы на реализацию сохранения результатов.

  • В системах с большим числом разноприоритетных процессов трудно удалить процессы с высоким приоритетом.

Виртуализация ресурсов – средство борьбы с тупиками

Система не устраняет условий возникновения тупиков – при возникновении конкурирующих запросов ВСЕ ресурсы могут быть заменены на «виртуальный аналог».

Особенности решения:

  • Алгоритмически простое решение.

  • Формально, не боится большого числа процессов.

  • Сложность возврата из «виртуального мира» в реальный в случае иерархической виртуальности.

№12 Обход тупиков. Алгоритм банкира.

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

Надежное состояние – ОС гарантирует всем процессам завершение в конечное время.

Введем следующие обозначения:

M(i) – максимальная потребность i-го процесса в ресурсе;

L(i) – текущая величина ресурса, выделенного i-му процессу;

С(i) – текущая потребность в ресурсе, C(i)=M(i)-L(i);

Т – суммарный ресурс, имеющийся в системе;

а – остаточный ресурс, а=Т-L(i);

Пусть в некоторый момент времени в системе существуют три процесса.

L(i)

M(i)

C(i)

Process 1

1

4

3

Process 2

4

6

2

Process 3

5

8

3

a

2

T=12

Решение примера

Соседние файлы в предмете Операционные системы