Методы борьбы с тупиками «го»
яичном порядке), то должно быть удалено одно и то же множество дуг. И доказа-
тельство по индукции покажет, что Р Ф Р;, (i = 1,2,.... к) приводит к нашему проти-
воречию.
а
Имеет место соотношение Р Ф Р„ так как вершина S может быть редуцирована
процессом Р[, а состояние S
2
должно, следовательно, также содержать процесс Р,.
р Пусть Р Ф Р|, (i = 1, 2, ..., j). Однако поскольку после редукции процессами Р„
(i - 1, 2,..., j) возможно еще сокращение графа процессом P
j+1
, это же самое дол-
жно быть справедливо и для последовательности seq, независимо от порядка
следования процессов. То же самое множество ребер графа удаляется с помо-
щью процесса Р
:
. Таким образом, Р Ф P
j+1
.
Следовательно, Р Ф Р
:
для i = 1,2,..., к и Р не может существовать, а это противоре-
чит нашему предположению, что Sj Ф S
2
. Следовательно, S, = S
2
.
Теорема о тупике: Состояние S есть состояние тупика тогда и только тогда, когда
граф повторно используемых ресурсов в состоянии S не является полностью со-
кращаемым.
Q Для доказательства предположим, что состояние S есть состояние тупика, и
процесс Pi находится в тупике в S. Тогда для всех S» таких что S •—> Sj про-
цесс Р| заблокирован в состоянии Sj (по определению). Так как сокращения гра-
фа идентичны для серии операций процессов, то конечное несокращаемое
состояние в последовательности сокращений должно оставить процесс Р, бло-
кированным. Следовательно, граф не является полностью сокращаемым.
• Предположим теперь, что состояние S не является полностью сокращаемым.
Тогда существует процесс Р„ который остается заблокированным при всех воз-
можных последовательностях операций редукции в соответствии с леммой
(см. выше). Так как любая последовательность операций редукции графа по-
вторно используемых ресурсов, оканчивающаяся несокращаемым состоянием,
гарантирует, что все ресурсы типа SR, которые могут когда-либо стать доступ-
ными, в действительности освобождены, то процесс Р; навсегда заблокирован
и, следовательно, находится в тупике.
Первое следствие: процесс Р, не находится в тупике тогда и только тогда, когда
серия сокращений приводит к состоянию, в котором Р| не заблокирован.
Второе следствие: если S есть состояние тупика (по ресурсам типа SR), то по край-
ней мере два процесса находятся в тупике в S.
Из теоремы о тупике непосредственно следует и алгоритм обнаружения тупиков.
Нужно просто попытаться сократить граф по возможности эффективным спосо-
бом; если граф полностью не сокращается, то начальное состояние было состояни-
ем тупика для тех процессов, вершины которых остались в несокращенном графе.
Рассмотренная нами лемма позволяет предложить алгоритмы обнаружения тупи-
ка. Например, можно представить систему посредством графа повторно использу-
емых ресурсов и попробовать выполнить его редукцию, причем делать это следу-
ет, стараясь упорядочивать сокращения удобным образом.
Р
а
ф повторно используемых ресурсов может быть представлен матрицами или
Писками. В обоих случаях экономия памяти может быть достигнута за счет взве-