Системное и прикладное программное обеспечение. Абрахин С.И - 30 стр.

UptoLike

Составители: 

30
предотвращение тупиков,
распознавание тупиков,
восстановление системы после тупиков.
Тупики могут быть предотвращены на стадии написания
программ, то есть программы должны быть написаны таким об-
разом, чтобы тупик не мог возникнуть ни при каком соотноше-
нии взаимных скоростей процессов. Так, если бы в предыдущем
примере процесс А и процесс В запрашивали ресурсы в одина-
ковой последовательности, то тупик был бы в принципе невоз-
можен. Второй подход к предотвращению тупиков называется
динамическим и заключается в использовании определенных
правил при назначении ресурсов процессам, например, ресурсы
могут выделяться в определенной последовательности, общей
для всех процессов.
В некоторых случаях, когда тупиковая ситуация образована
многими процессами, использующими много ресурсов, распо-
знавание тупика является нетривиальной задачей. Существуют
формальные, программно-реализованные методы распознавания
тупиков, основанные на ведении таблиц распределения ресурсов
и таблиц запросов к занятым ресурсам. Анализ этих таблиц по-
зволяет обнаружить взаимные блокировки.
Если же тупиковая ситуация возникла, то не обязательно
снимать с выполнения все заблокированные процессы. Можно
снять только часть из них, при этом освобождаются ресурсы,
ожидаемые остальными процессами, можно вернуть некоторые
процессы в область свопинга, можно совершить "откат" неко-
торых процессов до так называемой контрольной точки, в кото-
рой запоминается вся информация, необходимая для восстанов-
ления выполнения программы с данного места. Контрольные
точки расставляются в программе в местах, после которых воз-
можно возникновение тупика.