Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 4 Реалізація архітектури операційної системи.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
249 Кб
Скачать
☆

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

Багаторівнева архітектура з'явилася як відповідь на обмеження монолітної архітектури в плані розширюваності, переносимісті та сумісності. Основна ідея багаторівневої архітектури полягає в наступному:

1. Повна функціональність операційної системи розділяється на рівні, наприклад рівень управління апаратурою, рівень управління пам'яттю, рівень файлової системи, рівень управління процесами і т.п.

2. Для кожного рівня визначаються інтерфейси взаємодії, тобто деякий набір правил, згідно з якими слід звертатися за послугами даного рівня.

3. Взаємодія рівнів будується таким чином, що кожен рівень може звертатися за послугами тільки до сусіднього нижчерозміщенного рівню через його інтерфейс.

4. Внутрішні структури даних кожного рівня не доступні іншим рівням, а реалізації процедур рівня приховані і не залежать від реалізацій процедур всередині інших рівнів.

Мал. 4.3. Організація багаторівневої архітектури ОС

Обов'язковою умовою для розбиття функціональності на рівні є взаємодія тільки між сусідніми рівнями. У багаторівневих системах забороняються прямі звернення до будь-яких рівнях, минаючи сусідній рівень

Мал. 4.4. Схема виконання переходу між рівнями багаторівневої ОС

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

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

Розширення інтерфейсу зазвичай пов'язане з введенням в операційну систему нової функціональності, наприклад, при появі нових апаратних засобів. Іншою причиною доповнення інтерфейсу може стати нова, більш оптимальна реалізація деякого алгоритму роботи операційної системи, при цьому старий інтерфейс необхідно зберегти в цілях сумісності.

Однією з перших операційних систем, розроблених на основі багаторівневої архітектури, стала операційна система THE, розроблена професором Дейкстрой та його студентами в 1968 році. Операційна система THE мала 6 рівнів, пронумерованих від 0 до 5:

Рівень 0. Цей рівень виконував розподіл ресурсів процесора і перемикав процеси по закінченню кванта часу або при виникненні переривання.

Рівень 1. Цей рівень здійснював управління віртуальною пам'яттю.

Рівень 2. Цей рівень забезпечував кожен запущений процес власною консоллю, тобто організовував віртуальні термінали.

Рівень 3. Цей рівень здійснював управління засобами введення-виведення і надавав вищерозміщеним рівнями апаратно незалежні засоби введення-виведення. Крім того, третій рівень здійснював буферизацію введення-виведення, тобто забезпечував кешування.

Рівень 4. На цьому рівні виконувалися призначені для користувача процеси, які забезпечувалися апаратно незалежними послугами з боку нижчих рівнів операційної системи.

Рівень 5. На цьому рівні виконувався процес системного адміністратора.

В подальшому багаторівнева архітектура отримала дуже широке поширення. На її базі були реалізовані досить складні операційні системи, які змогли втриматися на ринку протягом тривалого часу. Наприклад, на базі багаторівневої архітектури побудована широко поширена операційна система UNIX.

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

Однак, не дивлячись на видимі відмінності, багаторівнева архітектура є прямим розвитком монолітної архітектури, в яку просто введена більш чітка структуризація. Тому, по мірі подальшого ускладнення операційних систем і з ростом динаміки їх розвитку, виявилися недоліки багаторівневої архітектури.

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

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

Тому класична багаторівнева архітектура в найбільш сучасних операційних системах витісняється архітектурою типу клієнт-сервер.