Базова архітектура UNIX
Матеріал з Вікі ЦДУ
UNIX є прикладом досить простої архітектури ОС. Більша частина функціональності цієї системи міститься в ядрі, ядро спілкується із прикладними програмами за допомогою системних викликів. Базова структура класичного ядра UNIX зображена на рисунку.
Система складається із трьох основних компонентів: підсистеми керування процесами, файлової підсистеми та підсистеми введення-виведення.
- Підсистема керування процесами контролює створення та вилучення процесів, розподілення системних ресурсів між ними, міжпроцесову взаємодію, керування пам’яттю.
- Файлова підсистема забезпечує єдиний інтерфейс доступу до даних, розташованих на дискових накопичувачах і до периферійних пристроїв. Такий інтерфейс є однією з найважливіших особливостей UNIX. Одні й ті ж системні виклики використовують як для обміну даними із диском, так і для виведення на термінал або принтер. При цьому файлова система переадресовує запити відповідним модулям підсистеми введення – виведення, а ті – безпосередньо периферійним пристроям. Крім того, файлова підсистема контролює права доступу до файлів, які значною мірою визначають привілеї користувача в системі.
- Підсистема введення – виведення виконує запити файлової підсистеми, взаємодіючи з драйверами пристроїв. В UNIX розрізняють два типи пристроїв: символьні (наприклад, принтер) і блокові (наприклад, жорсткий диск). Основна відмінність між ними полягає в тому, що блоковий пристрій допускає прямий доступ. Для підвищення продуктивності роботи із блоковими пристроями використовують буферний кеш – ділянку пам’яті, у якій зберігаються дані, зчитані з диска останніми. Під час наступних звертань до цих даних вони можуть бути отримані з кеша.
Сучасні UNIX – системи дещо відрізняються за своєю архітектурою.
- У них виділено окремий менеджер пам’яті, відповідальний за підтримку віртуальної пам’яті.
- Стандартом для реалізації інтерфейсу файлової системи є віртуальна файлова система, що абстрагує цей інтерфейс і дає змогу організувати підтримку різних типів файлових систем.
- У цих системах підтримується багатопроцесорна обробка, а також багато потоковість.
Базові архітектурні рішення, такі як доступ до всіх пристроїв введення – виведення через інтерфейс файлової системи або організація системних викликів, залишаються незмінними в усіх реалізаціях UNIX.