Взаємне блокування: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
→‎Дивіться також: доповнення
Рядок 15:
# '''Умова циклічного очікування''' ({{lang-en|circular wait}}). Має існувати кільцева послідовність із двох або більше процесів, кожен із яких очікує на звільнення ресурса, що утримується наступним членом послідовності. Іншими словами, має існувати множина процесів <math>\{P_0, P_1, \dots, P_n\}</math>, так, що процес <math>P_0</math> очікує на звільнення ресурів процесу <math>P_1</math>, <math>P_1</math> очікує на <math>P_2</math>, …, <math>P_{n-1}</math> очікує на <math>P_n</math>, а <math>P_n</math> очікує на звільнення ресурсів процесом <math>P_0</math>.
Для виникнення ситуації взаємного блокування, необхідно виконання всіх чотирьох умов водночас. Якщо хоча б одна з умов не виконується, взаємне блокування неможливе.
 
== Моделювання тупикових ситуацій ==
[[Зображення:Sample-resource-allocation-graph.svg|thumb|250px|right|Приклад графу виділення ресурсів.]]
 
Ситуації взаємного блокування можливо описати точніше з допомогою спеціального засобу&nbsp;— ''графу виділення ресурсів''. В цьому [[Граф (математика)|графі]], множина вершин складається із двох підмножин&nbsp;— ресурсів та процесів.
 
== Обробка тупикових ситуацій ==