Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pr_os_01.docx
Скачиваний:
24
Добавлен:
24.11.2019
Размер:
1.26 Mб
Скачать
  1. Типи архітектур операційних систем. Ядро операційною системи [1, с. 57-64]

Архітектура операційної системи.

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

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

При розробці ОС дотримуються наступних принципів:

  1. Концепція багаторівневої ієрхічної обчислювальної системи;

  2. Розподіл модулів ОС на дві групи: ядро (осн ф-ї) та інші (додат ф-ї);

  3. Розподіл модулів ОС щодо реалізації у пам’яті (под. на резидентні “постійні” і транзитні «зав у пам на час викон ф-й);

  4. Реалізація двох режимів роботи: привілейованого і користувацького;

  5. Обмеж ф-я ядра до мінім необхідних;

  6. Модульна побудова (ф-й які надходять повторно: привілейовані, повторновходжуванні);

  7. Параметрична універсальність (можл заст ОС в різних конфігураціях);

  8. Відкритість можл модифікація в ОС у прийнятний спосіб);

  9. Мобільність (можл перен на інших апарат платформах).

Ядро системи. Привілейований режим і режим користувача

До складу операційної системи входять:

  • Ядро операційної системи, що забезпечує розподіл і управління ресурсами обчислювальної системи;

  • базовий набір прикладного програмного забезпечення, системні бібліотеки та програми обслуговування.

Ядро системи — це набір функцій, структур даних і окремих програмних модулів, які завантажуються в пам'ять комп'ютера при завантаженні операційної системи і забезпечують три типи системних сервісів:

  • управління введенням-виведенням інформації (підсистема вводу-виводу ядра ОС);

  • управління оперативною пам'яттю (підсистема управління оперативною пам'яттю ядра ОС);

  • управління процесами (підсистема управління процесами ядра ОС).

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

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

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

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

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

Реалізація архітектури операційних систем

ОС розрізняють по типам ядер:

  • монолітні ядра-такий підхід де усі компоненти ядра запускаються в одній ділянці пам’яті, вони можуть мати модульну архітектуру і багатошарову;

  • багаторівневі ядра;

  • віртуальні машини-такий підхід при якому в привілейованому режимі знаходяться мін набір ф-й (планувальник задач, менедж памяті, диспетчер задач, диспетчер сист викликів);

  • екзоядро-це такий тип ядра, який неабстрагрує апарат засоби у теоретичну модель. У екзоядрі апарат ресурси розпад між усіма програмами.

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

Монолітні системи

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

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

Системи з мікроядром

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

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

Переніс основного обсягу функцій ядра в користувацький простір

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

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

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

Реалізація системного виклику б мікроядерній архітектурі

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