Компонентний склад операційної системи визначається набором функцій, для виконання яких вона призначена. Всі її програми можна розбити на дві групи: управляючі і системно-оброблювальні (рис. 6.5). Блок управляючих програм - невід’ємний компонент будь-якої операційної системи, це основна її частина (ядро), без якого вона не може існувати. Їх функції - планування проходження безперервного потоку завдань, управління розподілом ресурсів, реалізація прийнятих методів організації даних, управління операціями вводу-виводу, організація мультипрограмної роботи, управління працездатністю системи після збоїв та інше.
Блок управляючих програм складається з чотирьох основних компонентів:
- управління статичними ресурсами (управління завданнями);
- управління динамічними ресурсами (управління задачами);
- управління даними;
- управління відновленням.
Рис. 6.5. Склад операційної системи
Програми управління завданнями здійснюють попереднє планування потоку завдань для виконання і статичного розподілу ресурсів між одночасно виконуваними завданнями у процесі підготовки до виконання (ініціалізації). До таких ресурсів зазвичай відносять розділи пам’яті (основна, віртуальна, зовнішня), доступні для використання завданнями, пристроями, що допускають тільки монопольне використання, наборів даних і т.п. Ці ресурси закріплюються за завданням або його частиною з моменту його ініціалізації до моменту завершення і використовуються зазвичай у монопольному режимі.
Програми управління задачами здійснюють динамічний розподіл ресурсів системи між декількома задачами, що вирішуються одночасно в мультипрограмному режимі для виконуваного потоку завдань.
Програми управління даними забезпечують всі операції вводувиводу (обмін між оперативною пам’яттю і периферійними пристроями), які надходять як від програм користувача, так і від програм операційної системи та реалізують різні структури даних і можливість доступу до них. Управління даними призначене для виконання наступних функцій:
- централізоване здійснення операцій вводу-виводу (операцій обміну) з використанням зовнішніх (периферійних) пристроїв;
- забезпечення зберігання даних на пристроях зовнішньої пам’яті;
- забезпечення різних способів організації і ідентифікації даних;
- управління каталогом даних, що дозволяє здійснювати їх пошук, використовуючи символічне ім’я без вказівки місцезнаходження;
- автоматичний розподіл пам’яті на пристроях прямого доступу;
- автоматичний пошук даних по їх символічному імені;
- забезпечення незалежності програм від характеристик даних, які вони обробляють і типів використовуваних зовнішніх пристроїв;
- забезпечення різних методів доступу до даних у залежності від їх організації і логічного рівня способу доступу.
Всі функції управління даними, перераховані вище, можна розділити на два види:
- управління процесами вводу-виводу у обчислювальній системі;
- організація даних, що зберігаються в обчислювальній системі (ця функція має відношення тільки до даних, що зберігаються на зовнішніх запам’ятовуючих пристроях).
Програми управління відновленням реєструють машинні збої і відмови, а якщо це можливо, відновлюють працездатність системи. Системні оброблювальні програми виконуються під управлінням блоку управляючих програм так само як будь-яка оброблювальна програма, наприклад програма автоматизованого проектування. Це означає, що вони у повному об’ємі можуть користуватися послугами управляючих програм і не можуть самостійно виконувати системні функції. Так, оброблювальні програми не можуть самостійно здійснювати ввід-вивід. Операції вводу-виводу оброблювальні програми реалізують за допомогою запитів до управляючих програм. Централізоване виконання системних функцій управляючою програмою дозволяє виконувати їх ефективніше і забезпечує високий рівень послуг для користувача.
До системних оброблювальних програм відносяться програми, що входять до складу операційної системи: асемблери, транслятори, сервісні програми обслуговування і ряд інших.
Асемблери- машинно-орієнтовані мови низького рівня і програмні засоби для їх перетворення у мову машинних кодів.
Tpaнcлятори - програмні засоби, що служать для перетворення програми, написаної на одній з мов програмування високого рівня (Fortran, Pascal, PL/1, С, C++ та ін.) у мову машинних кодів.
До сервісних програм можна віднести компонувальник програм, завантажувач, програми виявлення несправностей і т.п.