Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операцiйнi системи та середовища6.05.07(Антонов...doc
Скачиваний:
11
Добавлен:
04.05.2019
Размер:
801.79 Кб
Скачать

4.5 Архітектура Windows 2000

Операційна система Windows 2000 підтримує користувацький режим та режим ядра (захищений режим, режим супервізора). Користувацький режим – це найменш привілейований режим, в якому може виконуватись код додатків. Код, виконуваний у цьому режимі, не може прямо звертатись до апаратного забезпечення, а також має обмежений доступ до пам’яті. Програма, виконувана у користувацькому режимі, існує у власному вимірюванні, межі якого чітко визначено. Така програма не може прямо звернутися до апаратного пристрою і не може працювати з пам’яттю, яка їй не належить. У користувацькому режимі працюють також деякі частини ОС [4].

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

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

Архітектура Windows 2000 поєднує в собі концепцію мікроядра та монолітних систем, тобто вона передбачає, що підсистеми DOS, Win 16,

Win 32, OS/2 та POSIX функціонують у користувацькому режимі, а базові компоненти ОС – диспетчер процесів, диспетчер віртуальної пам’яті – в режимі ядра.

Для виконання процедур, які не може бути виконано у користувацькому режимі, підсистеми Windows 2000 звертаються до системних викликів, експортованих з режиму ядра. Вони належать до так званого натурального АРІ і складаються з 250 функцій. Системні виклики ґрунтуються на програмних вилученнях, що є одним із засобів перемикання режиму виконання програмного коду з користувацького режиму до режиму ядра. Цей засіб має апаратну підтримку сучасних мікропроцесорів.

Запити до натурального АРІ переспрямовуються системним сервісам, які поєднують функції режима ядра, що входять до складу одного чи кількох компонентів модуля Windows NT Executive.

Модуль Windows NT Executive складається з компонентів, які виконують більшість традиційних функцій операційної системи і реалізовані у вигляді окремих програмних потоків (threads).

Ядро (kernel) є підгрунтям усієї архітектури Windows 2000. Це процес, має ексклюззивні права на доступ до обладнання системи. Ядро відповідає за надання пам’яті для додатків й обмін даними з апаратною платформою. До його складу входить планувач потоків, який призначає кожному з потоків один з

32 рівнів пріоритету. Рівень пріоритету 0 зарезервовано для системного потоку, рівні з 1...15 призначено для виконуваних програм, а рівні з 16...31 є доступними лише для адміністратора системи. Планувач потоків здійснює перемикання поміж виконуваними процесами відповідно до пріоритетної багатозадачності. Процесорний час розподіляється на кванти. Якщо за наданий йому квант часу процес не завершується, планувальник перериває його виконання і перемикає процесор на виконання іншого потоку, який має такий

Рисунок 4.7 – Архітектура Windows 2000

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

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

Диспетчер введення/виведення – інтегрує до системи драйвери пристроїв, які додаються зі списку сумісності HCL (Hardware Compatibility List). Драйвери, які входять до складу диспетчера введення/виведення, додаються та вилучаються динамічно.

Диспетчер об’єктів – керує усіма фізичними та логічними ресурсами комп’ютера.

Монітор звертань до системи безпеки – забезпечує функціонування механізмів захисту, вбудованих у Windows 2000. Цей компонент тісно пов’язаний з диспетчером об’єктів, який для перевірки того, чи може якийсь додаток відкрити об’єкт, звертається до монітора безпеки.

Диспетчер процесів – взаємодіє з ядром для забезпечення механізмів керування процесами і потоками. Він оперує такими поняттями, як PID – ідентифікатор процесу, права доступу, карта адрес та таблиця дескрипторів, а також статистичними даними. Диспетчер процесів має інтерфейс, за допомогою якого решта компонентів Windows NT Executive, а також додатки можуть маніпулювати процесами та потоками.

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

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

Диспетчер кеша – обслуговує файловий кеш ОС Windows 2000. Кеш є файлово-орієнтованим. Якщо пам’ять, в якій зберігаються модифіковані файли, передається від диспетчера кеша до диспетчера віртуальної пам’яті, диспетчер введення/виведення звертається до драйверів файлових систем з метою запису модифікованих файлів на твердий диск комп’ютера.

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

Диспетчер Plug and Play – сповіщає драйвери приладів та диспетчер введення/виведення про підмикання та вимикання апаратних пристроїв.

Диспетчер електроживлення – керує енергоспоживанням комп’ютера. За необхідності переводить систему до режиму зниженого енергоспоживання.

Win32 User та GDI – виконує пересилання системних повідомлень та відбивання інформації на екрані. Сюди входять серверні частини GDI, диспетчер вікон, драйвери графічних пристроїв.

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

На верхньому рівні Windows NT Executive розташовано системні сервіси, які функціонують як посередники поміж компонентами користувацького режиму та компонентами режиму ядра (натурального API). Він використовується різними підсистемами (DOS, Win32, OS/2), які є часткою Windows 2000, але додатки можуть звертатися до цього API прямо, а не через API підсистеми. Останнє не рекомендується, тому що натуральний API не є документовано.

Підсистеми ОС – підсистема безпеки, підсистема Win32,забезпечують роботу програм Win32, Win16, DOS, OS/2 тощо, і є операційними середовищами, котрі емулюють ОС, відрізняювані від Windows 2000. Ці середовища додають до Windows 2000 додаткові можливості і нові системні виклики, відрізняювані від викликів натурального АРІ, які забезпечуються компонентами ОС, працюючими в режимі ядра. Можливість емуляції інших операційних систем є вельми висока, можна, наприклад, емулювати Linux.

Підсистеми операційних середовищ створено на підгрунті клієнт-серверної архітектури. У перебігу компілювання додаток компонується з використанням викликів одного з операційних середовищ. Додаток автоматично зв’язується з тією бібліотекою DLL, яка відповідає обраному операційному середовищу і працює на клієнтському боці. Бібліотеки DLL операційних середовищ, які працюють на боці клієнта, функціонують як частина клієнтського процесу та взаємодіють з серверними частинами АРІ. Наприклад, програма Win 32 є клієнтом сервера операційного середовища Win 32, тому вона скомпонована з клієнтською DLL Win 32.

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

Вище підсистеми Win 32 розташовано віртуальні машини VDM (Virtual DOS Machine): MS-DOS та Win 16. Усі ці підсистеми захищено від решти підсистем і додатків так само, як і останні захищені від VDM [4].