logo
СПЗ_лекції

5. Реалізація операційної системи

Першим рішенням при розробці операційної системи яке повинні прийняти розробники це – рішення про структуру системи.

Монолітно неструктуроване влаштування представляє собою невдалу ідею.

Добре зарекомендувала себе на протязі багатьох років багаторівнева система.

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

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

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

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

Статичні і динамічні структури.

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