3.Виявлення та усунення взаємоблокувань.
При використанні методу виявлення і усунення взаємоблокувань система не пробує уникнути попадання в тупікові ситуації. Замість цього вона дозволяє взаємоблокуванню відбутись, старається визначити, коли це трапилося і потім здійснює деякі дії до повернення системи до стану, що мав місце, коли система попала в тупік.
Побудуємо для системи граф ресурсів виду (рис.5.2).
Рис.5.2. Граф ресурсів (а); цикл, взятий з а (б).
Якщо цей граф містить один або більше циклів, то це означає, що відбулось взаємоблокування і блоковано будь-який процес, що є частиною циклу. Якщо в графові немає циклів, то система не попала в тупік.
Виникає запитання: „Чи є заблокованою ця система, і якщо так, то які процеси в цьому приймають участь?”. Граф ресурсів на рис.5.2.(а). Він містить один цикл (рис.5.2.(б)). З нього видно, що процеси D, E і G – заблоковані.
Процеси A, C і F не попали в тупік, тому що будь-якому з них можна надати ресурс S, після чого процес, який отримав ресурс, закінчить свою роботу і поверне ресурс. Потім два інших процеси по черзі можуть отримати ресурс і також успішно виконати свою роботу.
Алгоритм:
для кожного вузла N в графі виконуються наступні п’ять кроків, де N – є початковим вузлом.
задамо початкові умови: L – порожній список, всі ребра невідмічені.
поточний вузол доповнюємо в кінець списку L і перевіряємо кількість появ вузла в списку. Якщо вузол наявний в двох місцях, то граф містить цикл (записаний в список L) і робота алгоритму закінчується.
Для заданого вузла перевіряємо, чи виходить з нього хоча б одне немарковане ребро.
На даному кроці відбувається попадання в тупік. Видаляємо останній вузол з списку і повертаємося до попереднього вузла, тобто до того, який був поточним перед тупіковим вузлом. Позначаємо його поточним вузлом. Повертаємося до кроку 3. Якщо це початковий вузол, то граф не місить циклів і алгоритм закінчується.
Цей алгоритм по черзі бере кожен вузол в якості кореня того, що він надіється, виявиться деревом, і виконує в дереві пошук в глибину. Якщо в процесі обходу алгоритм повертається до вже раніше зустрінутого вузла, то він знайшов цикл. Якщо алгоритм обходить всі ребра з деякого заданого вузла, то він повертається до попереднього вузла. Якщо він повертається до кореня і не може йти далі, то підграф поточного вузла не містить циклів. Якщо дана властивість зберігається для всіх вузлів, то це означає, що повний граф не містить циклів, а система не заблокована.
- Лекція 1. Вступ до операційних систем.
- 1.Поняття про операційні системи та їх місце в загальній структурі комп’ютера.
- 2. Основні функції операційної системи : розширення можливостей комп’ютера та керування його ресурсами.
- 3. Історія операційних систем.
- Лекція 2. Структура операційної системи.
- Таблиця 2.1
- Екзоядро
- Модель клієнт-сервер
- Лекція 3. Концепція процесу
- Лекція 4. Потоки в операційних системах.
- 3. Міжпроцесна взаємодія.
- 4.Примітиви міжпроцесної взаємодії.
- 5.Семафори та їх використання.
- 6.Поняття м’ютекса.
- 7.Поняття моніторів.
- 8.Поняття про бар’єри.
- 9.Поняття про системи передачі повідомлень.
- Лекція 5. Взаємоблокування.
- 2.Умови та моделювання взаємоблокувань.
- 3.Виявлення та усунення взаємоблокувань.
- 4.Уникнення взаємоблокувань при наявності декількох ресурсів кожного типу.
- 6. Уникнення взаємоблокувань.
- 7. Алгоритм банкіра для одного та декількох видів ресурсів.
- 8. Уникнення взаємоблокувань шляхом порушення умов їх здійснення
- Лекція 6. Основні поняття керування пам’яттю.
- 1.Однозадачна система без підкачки на диск.
- 2.Багатозадачність з фіксованими розділами
- 3.Поняття про підкачку даних.
- 5.Віртуальна пам’ять. Основні поняття.
- 6.Віртуальна пам’ять. Сторінкова організація пам’яті.
- 7.Характеристика основних алгоритмів заміщення сторінок.
- Лекція 7. Принципи роботи апаратури введення-виведення.
- 1.Пристрої введення-виведення.
- 2.Переривання персональної кс.
- Лекція 8.
- Лекція 9.
- Лекція 10. Файли та їх властивості.
- 1.Поняття файлової системи.
- 2.Іменування файлів.
- 3.Структура файлу.
- 4.Типи файлів.
- 5.Доступ до файлів. Атрибути файла.
- 6.Файли, відображувані на адресній простір памяті.
- 7.Каталоги.
- Лекція 11. Реалізація файлової системи.
- 1.Структура файлової системи.
- 2.Реалізація файлів.
- 3.Реалізація каталогів.
- Лекція 12 Планування в системах з одним процесором.
- 1.Поняття про планування.
- 2.Типи планування процесора.
- 3.Планування вводу-виводу.
- Лекція 13. Критерії планування.
- 1.Критерії короткотривалого планування.
- 2.Використання пріоритетів.
- 3.Альтернтитвні стратегії планування
- Лекція 14. Стратегії планування.
- 1.Стратегія планування „першим прийшов – першим обслуговується”.
- 2.Стратегія”кругове планування” .
- 4.Вибір самого короткого процесу.
- 5.Стртегія найменшого часу, що залишився.
- 7.Зниження пріорітету.
- Лекція 15. Багатопроцесорне планування і планування реального часу.
- 1. Класифікація багатопроцесорних систем.
- 3.Задачі планування в багатопроцесорній системі.
- 4. Планування процесів.
- 5.Планування потоків.
- Лекція 16. Основні підходи до планування потоків.
- 1.Розділення навантаження.
- 2.Бригадне планування.
- 3.Призначення процесорів.
- 4.Динамічне планування.
- Лекція 17. Планування реального часу.
- Лекція 18.
- 4. Парадигми.
- 5. Реалізація операційної системи
- Лекція 19. Операційні системи типу unix.
- 1.Історичні відомості про операційні системи типу unix.
- 2.Загальна архітектура системи unix.
- 3.Сучасні системи unix.
- 4.Історія виникнення операційної системи Linux.
- 5.Модульна структура операційної системи Linux.
- 6.Традиційне планування unix.
- Лекція 20. Характеристики операційної системи Windows 2000.
- 1. Історія виникнення Windows.
- Лекція 21. Особливості архітектури Windows xp.
- 1. Основні компоненти Windows xp.