мікроядерна архітектура

Утиліти, що обробляють програми і додатки - верхній шар (рис. 3.6).

Апаратура - внутрішній шар,

Багатошарова структура ОС

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

§ ядро ​​- проміжний шар,

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

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

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

Ядро може складатися з наступних шарів.

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

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

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

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

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

Наведене розбиття ядра ОС на шари є досить умовним

1. Концепція

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

Суть микроядерной архітектури полягає в наступному. У привілейованому режимі залишається працювати тільки дуже невелика частина ОС. звана мікроядром (рис. 3.10). Микроядро захищено від інших частин ОС і додатків. До складу мікроядра звичайно входять машинно-залежні модулі. а також модулі, що виконують базові (але не всі!) функції ядра з управління процесами, обробці переривань, управління віртуальною пам'яттю, пересилання повідомлень і управління пристроями введення-виведення, пов'язані з завантаженням або читанням регістрів пристроїв. Набір функцій мікроядра звичайно відповідає функціям шару базових механізмів звичайного ядра. Такі функції операційної системи важко, якщо не неможливо, виконати в просторі користувача.

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

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

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

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

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

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

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

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

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

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

Схожі статті