Операционные системы. Курс лекций




Тупики. - часть 2


2.    Условие ожидания и удержания. Процессы в данный момент удерживающие полученные ранее ресурсы могут запрашивать новые ресурсы;

3.    Условие отсутствия принудительной выгрузки ресурса. У процесса нельзя забрать ранее полученные ресурсы пока он сам не освободит их;

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

При столкновении со взаимоблокировкой используется 4-е стратегии:

1.    Пренебрежение проблемой в целом;

2.    Обнаружение и восстановление, т.е. позволить взаимоблокировке произойти, обнаружить ее и предпринять какие- либо действия;

3.    Динамическое избежание тупиковых ситуаций с помощью аккуратного распределения ресурсов (или обход тупиков);

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

Распознавание тупика с последующим восстановлением. При использовании этого метода при попадании системы в тупик она старается определить, когда это случилось и за тем совершает некоторые действия по возврату системы в состояние имевшему место до того как система попала в тупик.

Обнаружение взаимоблокировки при наличии одного ресурса каждого типа

Рассмотрим ситуацию на примере. Для системы можно сконструировать граф ресурсов, если этот граф содержит один или более циклов значит, произошла взаимоблокировка и заблокированы все процессы являющиеся частью цикла.

Система имеет 7-6 процессов и 6 ресурсов. Состояние системы на данный момент соответствует списку:

1.    Процесс П1 занимает ресурс Р1 и хочет получить Р2;

2.    Процесс П2 ничего не использует, но хочет получить Р3;

3.    Процесс П3 ничего не использует, но хочет получить Р2;

4.    Процесс П4 занимает ресурс Р4 и хочет получить Р2 и Р3;




Содержание  Назад  Вперед