2. Засоби управління ресурсами
Під управлінням ресурсами в ОС розуміється розподіл ресурсів системи між різними завданнями і процессами, одночасно функціонуючими в ній.В ОС, як правило, відсутній окремий супервізор ресурсів, оскільки функції розподілу ресурсів реалізуються як на рівні зовнішнього планування, так і на рівні внутрішнього планування.
Основними функціями управління ресурсами є:
- Облік наявності та стану ресурсів;
- Прийом і облік заявок на ресурси від завдань і процесів;
- Розподіл ресурсів між завданнями та процесами;
- Організація використання ресурсів, виділених кожній задачі чи процесу;
- Повернення ресурсу в систему по мірі його звільнення споживачем.
Для реалізації функцій управління ресурсами в ОС формуються інформаційні таблиці, в яких відображаються
такі основні дані:
• для ресурсів:
- Облікова інформація про ресурс (ідентифікатор, клас, кількість каналів тощо);
- Код стану ресурсу;
- Ідентифікатор процесу-власника і т.п.;
• для заявок на ресурси:
- Ідентифікатор процесу-заявника;
- Пріоритет процесу;
- Ідентифікатор і необхідний обсяг ресурсу тощо
У ході організації використання ресурсів формуються таблиці, в яких зазначаються списки розподілених і
вільних ресурсів, зв'язку між ресурсами і процесами.
Поряд з проблемою раціонального розподілу ресурсів між процесами існує також проблема синхронізації протікання паралельних процесів і виключення виникнення тупиків в обчислювальній системі.
Процес у мультипрограмній системі знаходиться в стані тупика, якщо він очікує деякої події, яка ніколи не відбудеться.
Системна тупикова ситуація, або ситуація "зависання" системи - це ситуація, коли один або більше процесів
опиняються в стані безвиході.
В операційних системах тупики виникають в більшості випадків як результат конкуренції процесів за облада-
ня монопольно використовуваними ресурсами (рис. 3.1).
Сформульовані наступні чотири необхідних умови наявності тупика:
1) процеси вимагають надання їм монопольного права керування ресурсом, які їм виділяються (умова
взаимоисключения);
2) процеси утримують за собою ресурси, вже виділені їм, очікуючи в той же час виділення додаткових ре-
сурсов (умова очікування ресурсів);
3) ресурси не можна відібрати у процесів, що утримують їх, ці ресурси не будуть використані для завершення роботи (умова неперераспределяемості);
4) існує кільцева зв'язок процесів, в якій кожен процес утримує за собою один або більше ресурсів,
потрібних наступного процесу ланцюга (умова кругового очікування).
У проблемі тупиків виділяють наступні чотири основних напрямки: запобігання тупиків, обхід тупиків, виявлення тупиків, відновлення після тупиків.
При запобіганні тупиків метою є забезпечення умов, що виключають можливість виникнення тупикових ситуацій. Такий підхід є цілком коректним рішенням про те, що стосується самого глухого кута, проте він часто призводить до нераціонального використання ресурсів.
Обхід тупиків полягає в тому, щоб можна було передбачати менш жорсткі обмеження, ніж у випадку запобігання тупиків, і тим самим забезпечити краще використання ресурсів. За наявності засобів обходу тупиків не потрібно такий реалізації системи, при якій небезпека тупикових ситуацій навіть не виникає. Методи обходу враховують подібну можливість, однак у разі збільшення ймовірності виникнення тупикової ситуації тут приймаються заходи по акуратному обходу глухого кута. Методи виявлення тупиків застосовуються в системах, які допускають можливість виникнення тупикової ситуації як наслідок умисних або ненавмисних дій програмістів. Метою засобів виявлення тупиків є встановити сам факт виникнення тупикової ситуації і точно визначити ті процеси і ресурси, які виявились залученими в цю тупикову ситуацію.
Методи відновлення після тупиків застосовуються для усунення тупикових ситуацій з тим, щоб система могла продовжувати працювати, а процеси, що потрапили в тупикову ситуацію, могли завершитися із звільненням займаних ними ресурсів.
