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

Архітектура типу клієнт-сервер на основі мікроядра

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

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

Запущені в системі процеси-сервери постійно знаходиться в стані очікування клієнтських запитів.

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

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

При цьому клієнти і сервери ніколи не спілкуються безпосередньо.

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

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

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

Рис. 4.5. Організація моделі ОС клієнт-сервер на базі мікроядра.

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

Таким чином, архітектура клієнт-сервер забезпечує наступні основні переваги:

  • переносимість операційної системи, тому що сервери, що працюють в режимі користувача, апаратно незалежні;

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

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

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

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

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

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

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