Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
05.06.2015
Размер:
23.31 Кб
Скачать

Міністерство освіти і науки, молоді та спорту України

Кіровоградський національний технічний університет

МТФ

Кафедра Програмного забезпечення

Дисципліна СПЗ

Лабораторна робота №1

Виконав ст. гр. КІ-10-1

Перевірив викладач

Бісюк В.А.

Кіровоград 2013

Завдання: Скласти звіт - описати архітектуру ОС Windows її особливості та відмінності. У висновках проаналізувати її переваги та недоліки, можливо запропонувати власні пропозиції щодо операційних систем.

Архітектура Windows NT має модульну структуру і складається з двох основних рівнів – компоненти, що працюють в режимі користувача та компоненти режиму ядра. Програми і підсистеми, що працюють в режимі користувача мають обмеження на доступ до системних ресурсів. Режим ядра має необмежений доступ до системної пам'яті і зовнішніх пристроїв. Ядро системи NT називають гібридним ядром або макроядром. Архітектура включає в себе саме ядро, рівень апаратних абстракцій (HAL), драйвери та ряд служб (Executives), які працюють в режимі ядра (Kernel – mode drivers) або в режимі користувача (User – mode drivers).

Користувацький режим Windows NT складається з підсистем, що передають запити введення/виведення відповідного драйверу режиму ядра за допомогою менеджера введення/виведення. Є дві підсистеми на рівні користувача: підсистема оточення (запускає програми, написані для різних операційних систем) та інтегрована підсистема (управляє особливими системними функціями від імені підсистеми оточення). Режим ядра має повний доступ до апаратної частини і системних ресурсів комп'ютера. І також запобігає доступ до критичних зон системи з боку користувача служб і додатків.

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

Контрольні запитання :

  1. Режим користувача та режим ядра їх особливості.

  2. Головні функції ядра ОС.

  3. Системні сервіси – їх функції та використання.

  4. Особливості архітектури ОС Windows (витісняюча багатозадачність, кросплатформність, динамічна конфігурованість, багатопоточність).

1. Програмний код, який виконується в режимі користувача, не має прямого доступу до апаратного забезпечення і має обмежений доступ до пам’яті. Це найменш привілейований режим. CPU перемикається в режим RING 3. В цьому режимі набір машинних інструкцій обмежений.

Програмний код, що виконується в режимі ядра має прямий доступ до апаратних засобів (через драйвери) і пам’яті. Це найбільш привілейований режим. CPU перемикається в режим RING 0 – доступні всі команди.

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

3. Системні сервіси – це модульні компоненти ОС, які завантажуються під час запуску ОС, працюють в режимі ядра і експортують власні набори функцій. Виконуються в системних робочих потоках або створюють власні потоки.

Сс

Диспетчер кешу

Dbg

Підтримка від лагодження

Ex

Підтримка виконавчої підсистеми Ex(ecutive)

FsRtl

Бібліотека часу виконання для підтримки файлової системи (File System Run-Time Library)

Hal

Диспетчер рівня апаратних абстракцій, the Hardware Abstraction Layer (HAL)

Inbv

Драйвер ініціалізації системи VGA

Init

Ініціалізація системи

Interlocked

Потокобезпечне оперування змінними

Io

Диспетчер вводу/виводу Io (I/O Manager)

Kd

Підтримка Kernel Debugger

Ке

Підпрограми ядра (Kernel)

Ki

Обробка ядра

Ldr

Завантажник образу

Lpc

Локальний виклик процедур (Local Procedure Call)

Lsa

Local Security Authority

Mm

Менеджер памяті (Менеджер Виртуальной памяти, VMM)

Nls

Лінгвістична підтримка (National Language Support)

Nt

NT Native API

Ob

Менеджер обектів (Object Manager)

Pfx

Обробка префіксів

Po

Менеджер електроживлення

Ps

Підтримка процесів (Process Structure)

Rtl

Бібліотека часу виконання (Run-Time Library)

Se

Управління безпекою

Zw

Альтернативний ітерфейс Native API

другие

Допоміжні функції

4. Витісняюча багатозадачність (preemptive multitasking)

NT дозволяє декільком одиницям виконання - потокам - виконуватися одночасно, швидко перемикаючись між ними. Така поведінка називається багатозадачністю (multitasking).

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

Багатопоточність

Кожна що виконується в NT програма представляється як процес.

Процес (process) - це програма (статична послідовність команд і дані) і системні ресурси, необхідні для її роботи. Ос надає кожному процесу адресний простір, виділений для програми, і гарантує, що програма кожного процесу прямуватиме на виконання в певному порядку і в потрібний час. Щоб процес зміг запрацювати, він повинен включати, принаймні, один потік виконання (thread execution).

Потік (thread) - одиниця виконання в NT. Потік - це єство усередині процесу, яке ядро направляє на виконання, він може належати тільки одному процесу. Потік складається з покажчика поточної команди, призначеного для користувача стека, стека ядра і набору значень регістрів. Всі потоки процесу мають однаковий доступ до його адресного простору, описувачів об'єктів і інших ресурсів. Потоки реалізовані як об'єкти-потоки.

Початковий потік виникає при створенні процесу, і потім він може створити додаткові потоки.

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

Кросплатформенність

Кросплатформенне програмне забезпечення –  програмне забезпечення, що працює  на жекількох апаратних  платформах або операційних системах.

Соседние файлы в папке СПЗ