Операционные системы. Управление ресурсами


Тупики: предупреждение, обнаружение, развязка - часть 7


Теперь тупики возможны. И теперь ведущее значение приобретают методы обнаружения тупиков.

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

  • первый процесс может получить ресурсы по всем своим текущим запросам;
  • второй процесс может получить ресурсы по всем своим текущим запросам при условии, что первый процесс закончился и освободил все выделенные ему ресурсы;
  • i-й процесс может получить ресурсы по всем своим текущим запросам при условии, что i-1-й процесс закончился и освободил все выделенные ему ресурсы.

В противном случае ситуация является тупиковой.

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

Пусть в системе имеется 11 ресурсов одного класса, как представлено на Рисунке 5.5. Процесс P1 уже имеет 2 ресурса и запрашивает еще 2, процесс P2 уже имеет 3 и запрашивает еще 5, процесс P3 имеет 4 и запрашивает еще 4. Системный резерв - 2 ресурса. В зависимости от того, какие у процессов максимальные заявки (нам это неизвестно), ситуация может быть расценена как опасная или безопасная, но она определенно не является тупиковой. Процесс P1 может получить требуемые ресурсы, если он после этого закончится, то может быть удовлетворен запрос процесса P3, а после его завершения - процесса P2. Но если мы выделим еще хотя бы один ресурс процессу P3, ситуация станет тупиковой.



а) нетупиковая.


a)


б) тупиковая.

Рис.5.5. Анализ ситуации

При исследовании проблемы тупиков удобно представлять систему в виде графа. Пример такого графа показан на Рисунке 5.6.


Рис.5.6. Граф ресурсов и процессов

Графы такого рода содержат вершины двух типов - процессы (показаны окружностями) и классы ресурсов (показаны прямоугольниками), в последних указывается число ресурсов в классе.


Начало  Назад  Вперед



Книжный магазин