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

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Luckas-bot (обговорення | внесок)
м r2.7.1) (робот додав: tr:Deadlock
Рядок 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>.
Для виникнення ситуації взаємного блокування, необхідно виконання всіх чотирьох умов водночас. Якщо хоча б одна з умов не виконується, взаємне блокування неможливе.
 
== Livelock==
 
Livelock означає таку ситуацію: система "не застрягає" (як у звичайному взаємному блокуванні),а займається марною роботою,її стан постійно змінюється&nbsp;- але,тим не менш,вона "[[зациклення |у безвихідному циклі]]",не робить ніякої корисної роботи.
 
Життєвий приклад такої ситуації: двоє зустрічаються у вузькому коридорі.Кожен з них намагається відійти,але вони не розходяться,а кілька секунд зсуваються в одну і ту ж сторону.
 
== Моделювання тупикових ситуацій ==