
- •Поняття операційної системи
- •Операційна система як розширена машина
- •Операційна система як менеджер ресурсів
- •Історія розвитку операційних систем
- •Перше покоління (1945-1955): електронні лампи і комутаційні панелі
- •Друге покоління (1955-1965): транзистори і системи пакетної обробки
- •Третє покоління (1965-1980): інтегральні схеми і багатозадачність
- •Четверте покоління (з 1980 року по наші дні): персональні комп'ютери
- •Історія minix 3
- •Основні концепції
- •Процеси
- •Оболонка
- •Системні виклики
- •Системні виклики для управління процесами
- •Системні виклики для управління сигналами
- •Системні виклики для управління файлами
- •Системні виклики для управління каталогами
- •Системні виклики для захисту
- •Системні виклики для управління часом
- •Структура операційної системи
- •1.5.2. Багаторівневі системи
- •1.5.3. Віртуальні машини
- •1.5.4. Екзоядра
- •1.5.5. Модель клієнт-сервер
- •2.1.1. Модель процесів
- •2.1.2. Створення процесів
- •2.1.3. Завершення процесів
- •2.1.4. Ієрархії процесів
- •2.1.5. Стани процесів
- •2.1.6. Реалізація процесів
- •2.1.7. Програмні потоки
- •2.2. Взаємодія між процесами
- •5.1. Файли
- •5.1.1. Іменування файлів
- •5.1.2. Структура файлу
- •5.1.3. Типи файлів
- •5.1.4. Доступ до файлів
- •5.1.5. Атрибути файлів
- •5.1.6. Операції з файлами
- •5.2. Каталоги
- •5.2.1. Прості каталоги
- •5.2.2. Ієрархічні системи каталогів
- •5.2.3. Шляхи
- •5.2.4. Операції з каталогами
- •5.3. Реалізація файлової системи
- •5.3.1. Структура файлової системи
- •5.3.2. Реалізація файлів
- •5.3.4. Організація дискового простору
1.5.2. Багаторівневі системи
Узагальненням цього підходу є організація операційної системи у вигляді
ієрархії рівнів. Першою системою, побудованої таким чином, була система
THE, створена Е. Дейкстрой (Е. W. Dijkstra) і його студентами в 1968 році. Вона
була простою пакетної системою для голландського комп'ютера Electrologica X8,
пам'ять якого складалася з 32 До 27-розрядних слів.
Система включала 6 рівнів, як показано в табл. 1.2. Рівень 0 відповідав за
розподіл часу процесора, перемикаючи процеси при виникненні
переривання або при спрацьовуванні таймера. Над рівнем 0 система складалася з
послідовних процесів, кожен з яких можна було запрограмувати, не піклуючись про те, що на одному процесорі запущено декілька процесів. Іншими словами, рівень 0 забезпечував базову багатозадачність процесора.
Таблиця 1.2. Структура операційної системи THE
рівень Функція
5 Оператор
4 Користувальницькі програми
3 Управління введенням-виведенням
2 Взаємодія оператор-процес
1 Управління пам'яттю і барабаном
0 Виділення процесора і багатозадачність
Рівень 1 управляв пам'яттю. Він виділяв процесам простір в
оперативної пам'яті і на магнітному барабані об'ємом 512 К слів для тих частин
процесів (сторінок), які не містилися в оперативній пам'яті. Процеси більше
високих рівнів не дбали про те, чи знаходяться вони в даний момент в
пам'яті або на барабані. Програми рівня 1 забезпечували попадання сторінок
в оперативну пам'ять в міру необхідності.
Рівень 2 керував взаємодією між консоллю оператора і процесами.
Таким чином, всі процеси вище цього рівня мали власну консоль
оператора. Рівень 3 керував пристроями введення-виведення і буферизують
потоки інформації до них і від них. Будь-який процес вище рівня 3 замість того,
щоб працювати з конкретними пристроями, враховуючи різноманітні нюанси їх
конструкції, міг звертатися до абстрактних пристроїв введення-виведення,
володіє зручними для користувача характеристиками. На рівні 4 працювали
користувальницькі програми, яким не треба було дбати ні про процеси,
ні про пам'ять, про консолі, ні про управління пристроями введення-виведення.
Процес системного оператора розміщувався на рівні 5.
Подальше узагальнення багаторівневої концепції було зроблено в
операційній системі MULTICS. У ній рівні представляли собою серію
концентричних кілець, де внутрішні кільця були більш привілейованими, ніж
зовнішні. Коли процедура зовнішнього кільця хотіла викликати процедуру
внутрішнього, вона повинна була виконати еквівалент системного виклику, тобто
команду trap, параметри якої ретельно перевіряються перед тим, як
виконується виклик. Хоча операційна система MULTICS була частиною
адресного простору кожного користувача процесу, апаратура
забезпечувала захист даних на рівні сегментів пам'яті, дозволяючи або забороняючи доступ до окремих процедур (насправді - до сегментів пам'яті) для запису,
читання або виконання.
Варто зазначити, що в системі THE багаторівнева схема представляла собою
виключно конструктивне рішення і всі частини системи були, в кінцевому
рахунку, пов'язані в один об'єктний файл, а в MULTICS механізм поділу
кілець діяв під час виконання на апаратному рівні. Перевага
підходу MULTICS полягає в тому, що його можна розширити і на структуру
користувальницьких підсистем. Наприклад, професор може написати програму
для тестування та оцінки студентських програм і запустити її в кільці рр.,
в той час як студентські програми будуть працювати в кільці п 1, так що
вони не зможуть змінити свої оцінки. Апаратне забезпечення Pentium
підтримує кільцеву структуру MULTICS, проте в даний момент її не
використовує жодна з поширених операційних систем.