Устранение тупиков. Восстановление после тупика.

Алгоритм обнаружения — редукция графа PR.

  1. При каждом запросе — выделении ресурса.
  2. При каждом запросе, который не может быть немедленно удовлетворен.
  3. Периодически (например, каждые 2 минуты).
  4. Использование косвенных признаков (например, загрузка ЦП за секунду < 20 %).

На практике используется комбинация подходов 2, 3, 4.

  1. Уничтожение одного/нескольких/всех процессов, участвовавших в тупике.
  2. Перераспределение ресурсов между процессами вплоть до разрушения тупика. Системно почти не применимо. Можно попробовать использовать внутри приложения.
  3. Откат одного/нескольких процессов к некоторой контрольной точке.