WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Сучасні концепії і технології проектування Операційної Системи - Реферат

Сучасні концепії і технології проектування Операційної Системи - Реферат

рішення, що і дає привід називати їх виконавчими механізмами для модулів верхніх шарів. Наприклад, рішення про те, що в даний момент потрібно перервати виконання поточного процесу А и почати виконання процесу В, приймається менеджером процесів на вищележачому шарі, а шару базових механізмів передається тількидиректива про те, що потрібно виконати переключення з контексту поточного процесу на контекст процесу В.
" Менеджери ресурсів. Цей шар складається з могутніх функціональних модулів, що реалізують стратегічні задачі по керуванню основними ресурсами обчислювальної системи. Звичайно на даному шарі працюють менеджери (названі також диспетчерами) процесів, в/в, ФС й ОП. Розбивка на менеджери може бути і трохи іншим, наприклад менеджер ФС іноді поєднують з менеджером в/в, а функції керування доступом користувачів до системи в цілому і її окремих об'єктах доручають окремому менеджеру безпеки. Кожний з менеджерів веде облік вільних і використовуваних ресурсів визначеного типу і планує їхній розподіл відповідно до запитів додатків. Наприклад, менеджер ВП керує переміщенням сторінок з ОП на диск і назад. Менеджер повинний відслідковувати інтенсивність звертань до сторінок, час перебування їх у пам'яті, стани процесів, що використовують дані, і багато інших параметрів, на підставі яких він час від часу приймає рішення про те, які сторінки необхідно вивантажити і які - завантажити. Для виконання прийнятих рішень менеджер звертається до нижчележачого шару базових механізмів із запитами про завантаження (вивантаження) конкретних сторінок. Усередині шару менеджерів існують тісні взаємні зв'язки, що відбивають той факт, що для виконання процесу потрібний доступ одночасно до декількох ресурсів - процесору, області пам'яті, можливо, до визначеного файлу чи пристрою в/в. Наприклад, при створенні процесу менеджер процесів звертається до менеджера пам'яті, що повинний виділити процесу визначену область пам'яті для його кодів і даних.
" Інтерфейс системних викликів. Цей шар є самим верхнім шаром ядра і взаємодіє безпосередньо з додатками і системними утилітами, утворити прикладний програмний інтерфейс ОС. Функції API, що обслуговують системні виклики, надають доступ до ресурсів системи в зручній і компактній формі, без указівки деталей їхнього фізичного розташування. Наприклад, в ОС UNIX за допомогою системного виклику fd = open("/doc/a.txt", 0_RDONLY) додаток відкриває файл a.txt, що зберігається в каталозі /doc, а за допомогою системного виклику read(fd, buffer, count) читає з цього файлу в область свого адресного простору, що має ім'я buffer, деяку кількість байт. Для здійснення таких комплексних дій системні виклики звичайно звертаються по допомогу до функцій шару менеджерів ресурсів, причому для виконання одного системного виклику може знадобитися кілька таких звертань.
Рис. 45. Багатошарова структура ядра ОС
Приведена розбивка ядра ОС на шари є досить умовним. У реальній системі кількість шарів і розподіл функцій між ними може бути й іншим. У системах, призначених для апаратних платформ одного типу, наприклад ОС NetWare, шар машинно-залежних модулів звичайно не виділяється, зливаючи із шаром базових механізмів і, частково, із шаром менеджерів ресурсів. Не завжди оформляються в окремий шар базові механізми - у цьому випадку менеджери ресурсів не тільки планують використання ресурсів, але і самостійно реалізують свої плани.
Спосіб взаємодії шарів у реальної ОС також може відхилятися від описаної вище схеми. Для прискорення роботи ядра в деяких випадках відбувається безпосереднє звертання з верхнього шару до функцій нижніх шарів, минаючи проміжні. Типовим прикладом такої "неправильної" взаємодії є початкова стадія обробки системного виклику. На багатьох апаратних платформах для реалізації системного виклику використовується інструкція програмного переривання. Цим додаток фактично викликає модуль первинної обробки переривань, що знаходиться в шарі базових механізмів, а вже цей модуль викликає потрібну функцію із шару системних викликів. Самі функції системних викликів також іноді порушують субординацію ієрархічних шарів, звертаючи прямо до базових механізмів ядра.
Вибір кількості шарів ядра є відповідальною і складною справою: збільшення числа шарів веде до деякого уповільнення роботи ядра за рахунок додаткових накладних витрат на міжшарову взаємодію, а зменшення числа шарів погіршує розширюваність і логічність системи. Звичайно ОС, що пройшли довгий шлях еволюційного розвитку, наприклад багато версій UNIX, мають неупорядковане ядро з невеликим числом чітко виділених шарів, а в порівняно "молодих" ОС, таких як Windows NT, ядро розділене на більше число шарів і їхня взаємодія формалізована в набагато більшому ступені.
5. Монолітні операційні системи
Монолітні ОС є прямою протилежністю мікроядерним ОС. При цьому можна погодитися з тим, як трактується архітектура монолітних ОС. У монолітної ОС, незважаючи на її можливу сильну структуризацію, дуже важко видалити один з рівнів багаторівневої модульної структури. Додавання нових функцій і зміна існуючих для монолітних ОС вимагає дуже гарного знання всієї архітектури ОС і надзвичайно більших зусиль. Тому більше сучасний підхід до проектування ОС, що може бути умовно названий як "клієнт-серверна" технологія, дозволяє в більшій мері й з меншими трудозатратами: реалізувати перераховані вище принципи проектування ОС.
Модель клієнт-сервер припускає наявність програмного компонента, що є споживачем якого-небудь сервісу - клієнта, і програмного компонента, що служить постачальником цього сервісу - сервера. Взаємодія між клієнтом і сервером стандартизується, так що сервер може обслуговувати клієнтів, реалізованих різними способами й, може бути, різними розроблювачами. При цьому головною вимогою є використання однакового інтерфейсу. Ініціатором обміну звичайно є клієнт, що надсилає запит на обслуговування серверу, що перебуває в стані очікування запиту. Той самий програмний компонент може бути клієнтом стосовно одного виду послуг і сервером для іншого виду послуг. Модель клієнт-сервер є скоріше зручним концептуальним засобом ясного подання функцій того або іншого програмного елемента в якої-небудь ситуації, ніж технологією. Ця модель успішно застосовується не тільки при побудові ОС, але й на всіх рівнях ПЗ й має в деяких випадках більше вузький, специфічний зміст, зберігаючи, природно, при цьому всі свої загальні риси.
За підтримкою монолітних ОС виникає ряд проблем, пов'язаних з тим, що всі функції макроядра працюють у єдиному адресному просторі. По-перше, це небезпека виникнення конфлікту між різними частинами ядра; по-друге - складність підключення до ядра нових драйверів. Перевага мікроядерної архітектури перед монолітною полягає в тім, що кожний компонент системи являє собою самостійний процес, запуск або зупинка якого не відбивається на працездатності інших процесів.
Loading...

 
 

Цікаве