Інтерактивна довідка ESET

Виберіть тему

Взаємоблокування

Взаємоблокування — це ситуація, коли кожен комп’ютерний процес очікує на ресурс, призначений іншому процесу. У такому випадку жоден із процесів не виконується, оскільки потрібний ресурс утримується іншим процесом, який також очікує на розблокування іншого ресурсу. Перш ніж це може статися, важливо запобігти ситуації взаємоблокування. Її може виявити планувальник ресурсів, який допомагає операційній системі відстежувати всі ресурси, виділені для різних процесів. Взаємоблокування може виникати, якщо одночасно виконуються такі чотири умови:

Відсутність примусового звільнення ресурсів: ресурс може бути звільнено лише довільно тим процесом, який утримує його після завершення завдання.

Взаємне виключення: спеціальний тип двійкового семафора, який використовується для контролю доступу до спільного ресурсу. Він дозволяє блокувати поточні завдання з вищим пріоритетом у найкоротші терміни.

Утримання та очікування: процеси, які мають припинити утримувати один або кілька ресурсів, одночасно можуть робити запити на отримання нових ресурсів.

Циклічне очікування: передбачає повне впорядковування всіх типів ресурсів у послідовність. Кожен процес очікує на звільнення ресурсу, що утримується наступним процесом у послідовності.

 

Є три способи обробки взаємоблокування:

Не дозволяти системі переходити в стан взаємоблокування.

Дозволити взаємоблокування, а потім примусово звільнити потрібні ресурси.

Перезавантажити систему.