Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pr_os_01.docx
Скачиваний:
25
Добавлен:
24.11.2019
Размер:
1 Мб
Скачать
☆

Переваги і недоліки мікроядерної архітектури

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

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

Розширюваність наявна для мікроядерної ОС у дуже високій степені. У традиційних системах навіть при наявності багатошарової структури нелегко видалити один шар і поміняти його на іншій через множинність і розмитість інтерфейсів між шарами. Додавання нових функцій і зміна існуючих вимагає хорошого знання операційної системи і великих витрат часу. У той же час обмежений набір чітко визначених інтерфейсів мікроядра відкриває шлях до упорядкованого росту й еволюції ОС. Додавання нової підсистеми вимагає розробки нового застосування, що ніяк не торкає цілісності мікроядра. Мікроядерна структура дозволяє не тільки додавати, але і скорочувати число компонентів операційної системи, що також буває дуже корисно. Наприклад, не всім користувачам потрібні засоби безпеки або підтримки розподілених обчислень, а видалення їх із традиційного ядра найчастіше неможливо. Звичайно традиційні операційні системи дозволяють динамічно додавати в ядро або видаляти з ядра тільки драйвери зовнішніх пристроїв — через часті зміни в конфігурації підключених до комп'ютера зовнішніх пристроїв підсистема введення/виведення ядра допускає завантаження і вивантаження драйверів «на ходу», але для цього вона розробляється особливим чином (наприклад, середовище STREAMS у UNIX або менеджер введення/виводу в Windows NT). При мікроядерному підході конфігурованість ОС не викликає ніяких проблем і не вимагає особливих заходів — досить змінити файл з настроюваннями початкової конфігурації системи або ж зупинити не потрібні більше сервери в ході роботи звичайними для зупинки застосувань засобами.

Використання мікроядерної моделі підвищує надійність ОС. Кожен сервер виконується у вигді окремого процесу у своїй власній області пам'яті й у такий спосіб захищений від інших серверів операційної системи, що не спостерігається в традиційної ОС, де всі модулі ядра можуть впливати один на одного. І якщо окремий сервер терпить крах, то він може бути перезапущений без зупинки або ушкодження інших серверів ОС. Більш того, оскільки сервери виконуються в користувацькому режимі, вони не мають безпосереднього доступу до апаратури і не можуть модифікувати пам'ять, у якій зберігається і працює мікроядро. Іншим потенційним джерелом підвищення надійності ОС є зменшений обсяг коду мікроядра в порівнянні з традиційним ядром — це знижує імовірність появи помилок програмування.

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

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

Рис. 4.3. Зміна режимів при виконанні системного виклику

Серйозність цього недоліку добре ілюструє історія розвитку Windows NT. У версіях 3.1 і 3.5 диспетчер вікон, графічна, бібліотека і высокорівневі драйвери графічних пристроїв входили до складу сервера користувацького режиму, і виклик функцій цих модулів здійснювався відповідно до мікроядерної схеми. Однак незабаром розробники Windows NT зрозуміли, що такий механізм звертань до часто використовуваних функцій графічного інтерфейсу істотно сповільнює роботу застосувань і робить дану операційну систему вразливою в умовах гострої конкуренції. В результаті у версію Windows NT 4.0 були внесені істотні зміни — усі перераховані вище модулі були перенесені в ядро, що віддалило цю ОС від ідеальної мікроядерної архітектури, але зате суттєво підвищило її продуктивність.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]