ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


Багаторівневі системи (Layered systems)

Продовжуючи структуризацію, можна розбити всю обчислювальну систему на ряд дрібніших рівнів з добре певними зв'язками між ними, так щоб об'єкти рівня N могли викликати тільки об'єкти рівня N-1. Нижнім рівнем в таких системах зазвичай є hardware, верхнім рівнем – інтерфейс користувача. Чим нижче рівень, тим більше привілейовані команди і дії може виконувати модуль, що знаходиться на цьому рівні. Вперше такий підхід був застосований при створенні системи THE (Technishe Hogeschool Eindhoven) Дейкстрой (Dijkstra) і його студентами в 1968 р. Ця система мала наступні рівні:

 


Рис. 1.2. Листкова система THE

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

Віртуальні машини

На початку лекції ми говорили про погляд на операційну систему як на віртуальну машину, коли користувачеві немає необхідності знати деталі внутрішнього устрою комп'ютера. Він працює з файлами, а не з магнітними головками і двигуном; він працює з величезною віртуальною, а не обмеженою реальною оперативною пам'яттю; його мало хвилює, єдиний він на машині користувач чи ні. Розглянемо декілька інший підхід. Хай операційна система реалізує віртуальну машину для кожного користувача, але не спрощуючи йому життя, а, навпаки, ускладнюючи. Кожна така віртуальна машина предстає перед користувачем як голе залізо – копія всього hardware в обчислювальній системі, включаючи процесор, привілейовані і непривілейовані команди, пристрої введення-виводу, переривання і так далі І він залишається з цим залізом один на один. При спробі звернутися до такого віртуального заліза на рівні привілейованих команд насправді відбувається системний виклик реальної операційної системи, яка і проводить всі необхідні дії. Такий підхід дозволяє кожному користувачеві завантажити свою операційну систему на віртуальну машину і робити з нею все, що душа побажає.

 


Рис. 1.3. Варіант віртуальної машини

Першою реальною системою такого роду була система CP/CMS, або VM/370, як її називають зараз, для сімейства машин IBM/370.

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

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

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

 


Рис. 1.4. Мікроядерна архітектура операційної системи

Решта компонентів системи взаємодіє один з одним шляхом передачі повідомлень через мікроядро.

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

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

Змішані системи

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

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

Найтісніше елементи мікроядерної архітектури і елементи монолітного ядра переплетені в ядрі Windows NT. Хоча Windows NT часто називають мікроядерною операційною системою, це не зовсім так. Мікроядро NT дуже велике (більше 1 Мбайт), щоб носити приставку "мікро". Компоненти ядра Windows NT розташовуються в пам'яті, що витісняється, і взаємодіють один з одним шляхом передачі повідомлень, як і належить в мікроядерних операційних системах. В той же час всі компоненти ядра працюють в одному адресному просторі і активно використовують загальні структури даних, що властиве операційним системам з монолітним ядром. На думку фахівців Microsoft, причина проста: чисто мікроядерний дизайн комерційно невигідний, оскільки неефективний.

Таким чином, Windows NT можна з повним правом назвати гібридною операційною системою.

Класифікація ОС

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

Реалізація багатозадачності

По числу одночасно виконуваних завдань операційні системи можна розділити на два класи:

· багатозадачні (Unix, OS/2, Windows);

· однозадачні (наприклад, MS-DOS).

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

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

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти