Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вступ, ст 22-93.doc
Скачиваний:
5
Добавлен:
02.09.2019
Размер:
1.62 Mб
Скачать

Багаторівневі системи

Узагальненням підходу, зображеного на рис. 1.21, є організація операційної системи у вигляді ієрархії рівнів. Першою системою, побудованої таким

чином, була система THE, створена в Technische Hogeschool Eindhoven

(Нідерланди) Е. Дейкстри (Е. W. Dijkstra) і його студентами в 1968 році. Вона булла простий пакетної системою для голландського комп'ютера Electrologica X8, пам'ять якого складалася з 32 До 27-розрядних слів. Система включала б рівнів, як показано в табл. 1.3. Рівень 0 займався розподілом часу процесора, переми-каючи процеси при виникненні переривання або при спрацьовуванні таймера. Над рівнем 0 система складалася з послідовних процесів, кожен з яких можна було запрограмувати, не піклуючись про те, що на одному процесорі запущено кілька процесів. Іншими словами, рівень 0 забезпечував базову багатозадачність процесора.

Таблиця 1.3. Структура операційної системи THE

Він виділяв процесам простір в оперативної пам'яті і на магнітному барабані об'ємом 512 До слів для тих частин процесів (сторінок), які не поміщалися в оперативній пам'яті. Процеси більше високих рівнів не дбали про те, чи знаходяться вони в даний момент в пам'яті або на барабані. Програмне забезпечення рівня 1 забезпечувало потрапляння сторінок в оперативну пам'ять в міру необхідності.

Рівень 2 керував зв'язком між консоллю оператора і процесами. Таким

чином, всі процеси вище цього рівня мали свою власну консоль оператора. Рівень 3 керував пристроями введення-виведення і буферізованние потоки інформації до них і від них. Будь-який процес вище рівня 3, замість того щоб працювати з конкретними пристроями, з їх різноманітними особливостями, мігзвертатися до абстрактних пристроїв введення-виведення, що володіє зручними для користу-вача характеристиками. На рівні 4 працювали користувача програми, яким не треба було дбати ні про процеси, ні про пам'ять, ні про консолі, ні про управління пристроями введення-виведення. Процес системного оператора розміщувався на рівні 5.

Подальше узагальнення багаторівневої концепції було зроблено операційній системі MULTICS. У ній рівні представляли собою серію концентричних

кілець, де внутрішні кільця були більш привілейованими, ніж зовнішні.

Коли процедура зовнішнього кільця хотіла викликати процедуру кільця, що лежить всередині, вона повинна була виконати еквівалент системного виклику, тобто команду TRAP, параметри якої ретельно перевіряються перед тим, як виконується виклик. Хоча операційна система в MULTICS була частиною адресного простору кожного користувача процесу, апаратура забезпечувала захист даних на рівні сегментів пам'яті, дозволяючи чи забороняючи доступ до

індивідуальним процедурам (насправді до сегментів пам'яті) для запису, читання

або виконання. Варто відзначити, що в системі THE багаторівнева схема представляла собою виключно конструкційне рішення і всі частини системи були, в кінцевому рахунку, пов'язані в один об'єктний файл, а в MULTICS механізм поділу кілець діяв під час виконання на апаратному рівні.

Перевага підходу MULTICS полягає в тому, що його можна розширити і на структуру користувальницьких підсистем. Наприклад, професор може написати програму для тестування та оцінки студентських програм і запустити її в кільці п, в той час як студентські програми будуть працювати в кільці п 1, так що вони не зможуть змінити свої оцінки.