Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



“Інформаційні управляючі системи та технології” 080402 “Інформаційні технології проектування” Одеса 2010

“Інформаційні управляючі системи та технології” 080402 “Інформаційні технології проектування” Одеса 2010




Сторінка5/24
Дата конвертації10.03.2017
Розмір1.41 Mb.
1   2   3   4   5   6   7   8   9   ...   24

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


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

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


2.1 Базові поняття архітектури операційних систем

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


Базові компоненти ОС, які відповідають за найважливіши її функції, зазвичай перебувають у пам’яті постійно і виконуються у привілейованому режимі, називають ядром операційної системи (operating system kernel).

Існуючі на сьогодні підходи до проектування архітектури ОС по-різному визначають функціональність ядра.

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

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

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

Для реалізації таких привілеїв потрібна апаратна підтримка: процесор має підтримувати принаймні два режими роботи – привілейований (захищений режим, режим ядра, kernel mode) і режим користувача (user mode). У режимі користувача недопустимі команди, які є критичними для роботи системи (перемикання задач, звертання до пам’яті за заданими межами, доступ до пристроїв введення-виведення тощо).

Розглянемо, яким чином використовуються різні режими процесора під час взаємодії між ядром і застосуваннями.

Після завантаження ядро перемикає процесор у привілейований режим і отримує цілковитий контроль над комп’ютером.

Контроль (фр. contrôle, от contrerôle - подвійний список): Перевірка, облік, спостереження за чим-небудь. Установи, особи, що перевіряють діяльність будь-якої іншої організації або відповідальної особи, звітність тощо.
Кожне застосування запускається і виконується в режимі користувача, де воно не має доступу до ресурсів ядра й інших програм. Коли потрібно виконати дію, реалізовану в ядрі, застосування робить системний виклик (system call). Ядро перехоплює його, перемикає процесор у привілейований режим, виконує дію, перемикає процесор назад у режим користувача і поветрає результат застосування.

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


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


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

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


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

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

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


2.2.2 Багаторівневі системи


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

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

Практика (грец. πράξις «діяльність») - доцільна і цілеспрямована діяльність, яку суб'єкт здійснює для досягнення певної мети. Практика має суспільно-історичний характер і залежить від рівня розвитку суспільства, його структури.

Рівні можуть виділятися й у монолітному ядрі; у такому разі вони підтримуються програмно і спричиняють спрщення реалізації системи. У монолітному ядрі визначають рівні:


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

  • базові засоби ядра, які відповідають за найфундаментальніші, найпростіші дії ядра, такі як запис блоку даних на диск.
    Обла́днання (устаткування) (англ. equipment, нім. ausrüstung) f) - сукупність пристроїв, механізмів, приладів, інструментів або конструкцій, що використовуються в певній сфері діяльності, або з певною метою.
    Найпростіші (лат. Protozoa, від дав.-гр. πρῶτος «перший» і ζῷα, форми множини ζῷον - «жива істота») - парафілетична або поліфілетична група одноклітинних або колоніальних еукаріотів, які мають гетеротрофний тип живлення.
    За допомогою цих засобів виконуються вказівки верхніх рівнів, пов’язані з керуванням ресурсами;

  • засоби керування ресурсами (або менеджери ресурсів), що реалізують основні функції ОС (керування процесами, пам’яттю, введення—виведенням тощо). На цьому рівні приймаються найважливіші рішення з керування ресурсами, які виконуються з використанням базових засобів ядра;

  • інтерфейс системних викликів, який служить для реалізації зв’язку із системним і прикладним програмним забезпеченням.
    Застосунок, застосовна програма, прикладна програма (англ. application, application software; пол. aplikacja; рос. приложение, прикладная программа) - користувацька комп'ютерна програма, що дає змогу вирішувати конкретні прикладні задачі користувача.

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


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

Мікроядро здійснює зв’язок між компонентами системи і виконує базовий розподіл ресурсів. Щоб виконати системний виклик, процес (клієнтський процес, клієнт) звертається до мікроядра. Мікроядро посилає серверу запит, сервер виконує роботу і пересилає відповідь назад. А мікроядро переправляє його клієнтові. Клієнтами можуть бути не лише процеси користувача, а і інші модулі ОС.

Перевагами мікроядрового підходу є:


  • невеликі розміри мікроядра, що спрощує його розробку й налагодження;

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

  • більша гнучкість і розширюваність системи (непотрібні компоненти не займають місця в пам’яті, розширення функціональності системи зводиться до додавання в неї нового сервера);

  • можливість адаптації до умов мережі (спосіб обміну даними між клєнтом і сервером не залежить від того, зв’язані вони мережою чи перебувають на одному комп’ютері).

Головним недоліком мікроядрового підходу є зниження продуктивності. Замість двох перемикань режиму процесора у разі системного виклику відбувається чотири (два - під час обміну між клієнтом і мікроядром, два – сервером і мікроядром).

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

Продукти́вність англ. productivity, нім. Produktivität f) - у широкому розумінні - здатність давати продукцію.


2.2.4 Концепція віртуальних машин


У системах віртуальних машин програмним шляхом створюють копії апаратногозабезпечення (відбувається його емуляція).
Ство́рення (англ. Creation, нім. Schöpfung, івр. בריאת העולם‎) - доктринальна позиція у багатьох релігіях та філософських системах вірувань, яка твердить, що за створенням всесвіту стоїть Божество. Богословські пояснення створення всесвіту можуть мати різноманітні форми, однією з основних є релігійна догма створення.
Ці копії (віртуальні машини) працюють паралельно, на кожній із них функціонує програмне забезпечення, з яким взаємодіють прикладні програми і користувачі.
1   2   3   4   5   6   7   8   9   ...   24



  • 2.1 Базові поняття архітектури операційних систем
  • 2.2 Реалізація архітектури операційних систем
  • 2.2.1 Монолітні системи
  • 2.2.2 Багаторівневі системи
  • 2.2.3 Системи з мікроядром
  • 2.2.4 Концепція віртуальних машин