logo
СПЗ_лекції

2.Умови та моделювання взаємоблокувань.

Група процесів знаходиться у тупіковій ситуації, якщо кожен процес з групи очікує події, яка може викликати тільки другий процес з тієї ж групи.

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

Ребро направлене від процесу до ресурсу означає, що процес в даний момент блокований і знаходиться в стані очікування доступу до ресурсу. На рис.5.1(в) видно взаємоблокування: процес С очікує ресурс Т, утримуваний в даний момент процесом D. Процес D не планує звільняти ресурс Т, тому що він чекає ресурс U, який використовується процесом С. Обидва процеси будуть чекати до безмежності. Цикл в графі означає наявність взаємоблокування, що циклічно включає процеси і ресурси.

При виникнені взаємоблокувань використовують 4 стратегії:

  1. ігнорування проблемою в цілому;

  2. виявлення і відновлення. Дозволити взаємоблокуванню відбутись, виявити його і прийняти певні дії;

  3. уникнення за допомогою структурного відкидання однієї з 4 умов, необхідних для взаємоблокування.

Більша частина операційних систем, включаючи Unix та Windows, ігнорують проблеми взаємоблокування. Це пов’язано з тим, що більшість користувачів швидше погодяться на випадкове, час від часу взаємоблокування, ніж на правило, за яким всім користувачам дозволяється тільки один процес, один відкритий файл і т.д.