Взаємне блокування: відмінності між версіями
[неперевірена версія] | [неперевірена версія] |
Вилучено вміст Додано вміст
→Моделювання тупикових ситуацій: доповнення |
|||
Рядок 17:
== Моделювання тупикових ситуацій ==
[[Зображення:Sample-resource-allocation-graph.svg|thumb|250px|right|Приклад графу виділення ресурсів. В цьому прикладі всі процеси отримають доступ до необхідних ресурсів, отже, взаємне блокування неможливе.]]
Ситуації взаємного блокування можливо описати точніше з допомогою спеціального засобу — ''графу виділення ресурсів'' ({{lang-en|system resource-allocation graph}}). В цьому орієнтованому [[Граф (математика)|графі]], множина вершин складається із двох підмножин —
Ребро від процесу <math>P_i</math> до ресурсу <math>P_j</math> позначається як <math>P_i \to P_j</math>; означає, що процес <math>P_i</math> подав запит на одну одиницю ресурсу типу <math>R_j</math> та очікує на цей ресурс (скорочено, ребро запиту). Ребро від ресурсу типу <math>R_j</math> до процесу <math>P_i</math> позначається як <math>R_j \to P_i</math>; означає, що одиницю ресурсу типу <math>R_j</math> було надано процесу <math>P_i</math> (скорочено, ребро виділення).
Оскільки може існувати декілька одиниць ресурсів одного типу, вершини з ресурсами позначаються у вигляді прямокутників із крапками в середині. Кількість крапок позначає кількість одиниць ресурсу цього типу.
Маючи таке визначення графу виділення ресурсів, можна довести, що за умови відсутності [[Цикл (теорія графів)|циклів]] в графі жоден із процесів не потрапляє в тупик. За умови наявності циклу в графі, існує можливість для виникнення тупиків.<ref>(Abraham 2005) розділ 7.2.2, стор. 249.</ref>
Якщо кожен тип ресурсів має лише один екземпляр, то із наявності циклу випливає наявність тупика. Кожен процес в циклі потрапляє в тупик.<ref>(Abraham 2005) розділ 7.2.2, стор. 249.</ref>
Якщо є типи ресурсів з декількома екземплярами, то із наявності циклу наявність типика не випливає. В цьому випадку наявність циклу є необхідною, але не достатньою умовою для виникнення тупиків.<ref>(Abraham 2005) розділ 7.2.2, стор. 249.</ref>
== Обробка тупикових ситуацій ==
|