Реферат на тему:

Архітектура Windows NT/2000/XP. DLL

План

1 Рівень апаратних абстракцій

2 Ядро.

3. Виконавча система NT.

4. Диспетчер кеша.

5. Драйвери файлової системи.

6. Мережні драйвери. 2.7 Модель безпеки NT

7 Програмне середовище Windows.

8 Інтерфейс викликів функцій у Windows.

9. Бібліотеки динамічного завантаження (DLL)

10. Winl6 і Win32.

11. Інтерфейс GDI.

12. Багатозадачність у Windows.

13. Взаємодія програм і Windows.

Архітектура Windows NT/2000/XP

Оскільки лінійка операційних систем Windows 9x більш не розвивається, ми
розглядатимемо архітектуру Windows NT (на ній побудовані сучасні ОС
Windows 2000/XP)

NT представляє собою модульну (більш досконалу, ніж монолітна)
операційну систему, що складається з окремих взаємопов’язаних порівняно
простих модулів. Основними модулями NT є (перелічені в послідовному
порядку від нижнього рівня архітектури до верхнього): рівень апаратних
абстракцій HAL (Hardware Abstraction Layer), ядро (Kernel), виконуюча
система (Executive), захищені підсистеми (protected subsystems) і
підсистеми середовища (environment subsystems)

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

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

Виконавча система включає до свого складу набір програмних конструкцій
привілейованого режиму (kernel-mode), що представляють базовий сервіс
операційної системи підсистемам середовища. Виконавча система
складається з кількох компонентів; кожен із них призначений для
підтримки певного системного сервісу. Так, один із компонентів — монітор
безпеки (Security Reference Monitor) — функціонує разом із захищеними
підсистемами і забезпечує реалізацію моделі безпеки системи.

Підсистеми середовища являють собою захищені сервери режиму користувача
(user-mode), що забезпечують виконання й підтримку програм, розроблених
для різного операційного оточення (різних операційних систем) Прикладом
підсистем середовища можуть служити підсистеми Win32, OS/2 і POSIX

Рівень апаратних абстракцій

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

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

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

Рівень апаратних абстракцій дозволяє також «приховувати» від інших
рівнів операційної системи особливості апаратної реалізації симетричних
мультипроцесорних систем.

Ядро

Ядро (Kernel) є «серцем» NT і працює в тісному контакті з рівнем
апаратних абстракцій. Цей модуль насамперед займається плануванням дій
комп’ютерного процесора. Якщо комп’ютер містить кілька процесорів, то
ядро синхронізує Я їхню роботу з метою досягнення максимальної
продуктивності системи.

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

Ядро здійснює диспетчеризацію ниток управління таким чином, щоб
максимально завантажити процесори системи і забезпечити першочергову
обробку ниток із вищим пріоритетом. (Усього існує 32 значення
пріоритету, які згруповані у два класи пріоритетів: real-time і
variable). Подібний підхід дозволяє досягти максимальної ефективності
операційної системи.

Під компоненти виконавчої системи, такі як диспетчер введення/виведення
й диспетчер процесів, використовують ядро для синхронізації дій. Вони
також взаємодіють із ядром для вищих рівнів абстракції, що називаються
об’єктами ядра; деякі з цих об’єктів експортуються всередині викликів
інтерфейсу користувача прикладних програм (АРІ).

Ядро керує двома типами об’єктів: об’єкти диспетчеризації і керуючі
об’єкти.

Об’єкти диспетчеризації (dispatcher objects) характеризуються сигнальним
станом (signaled або nonsignaled) і керують диспетчеризацією й
синхронізацією, системних операцій. Ці об’єкти включають події, мутанти,
мутекси, семафори, нитки управління й таймери (events, mutants, mutexes,
semaphores, threads, timers).

Керуючі об’єкти (control objects) використовуються для операцій
управління і ядра, але не впливають на диспетчеризацію або
синхронізацію. Керуючі об’єкти 1 включають асинхронні виклики процедур,
переривання, повідомлення і стан І джерела живлення, процеси й профілі
(asynhcronous procedure calls, interupts, 1 power notifies, power
statuses, processes, profiles).

Виконавча система NT

Виконавча система (Executive), до складу якої входить ядро й рівень
апаратних абстракцій HAL, забезпечує загальний сервіс системи, який
можуть використовувати всі підсистеми середовища. Кожна група сервісу
знаходиться під управлінням однієї з окремих складових виконавчої
системи:

— диспетчера об’єктів (Object Manager);

— диспетчера віртуальної пам’яті (Virtual Memory Manager);

— диспетчера процесів (Process Manager);

— засобу виклику локальних процедур (Local Procedure Call Facility);

— диспетчера введення/виведення (I/O Manager);

— монітора безпеки (Security Reference Monitor).

Монітор безпеки разом із процесором входу в систему (Logon) і захищеними
І підсистемами реалізує модель безпеки NT.

Верхній рівень виконавчої системи називається системним сервісом (System
1 Services).

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

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

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

Диспетчер кеша підтримує служби типу лінивого запису (lazy write) і
лінивої фіксації (lazy commit), що можуть значно збільшити ефективність
файлової системи У процесі лінивого запису зміни реєструються в кеші
файлової структури що забезпечує більш швидкий доступ Пізніше, коли
завантаження центрального процесора знижене, диспетчер кеша заносить
зміни на диск. Лінива фіксації подібна до лінивого запису.

Драйвери файлової системи

В архітектурі введення/виведення NT управління драйверами файлової сік
геми здійснює диспетчер введення/виведення допускає використання безлічі
файлових систем, включаючи існуючі файлові системи типу AT і ІАІ32 Для
забезпечення сумісності знизу вгору з операційними системами MS OS
Windows 3 х і OS/2. NT підтримує файлові системи FAT. FAT 32 і HPIS

Крім того. NT також підтримує NTFS — нову файлову систему, розроблену
спеціально для використання з NT NTFS забезпечує безліч можливостей
включаючи засоби відновлення файлової системи, підтримку Unicode довгих
імен файлів і підтримку для POS1X.

Архітектура введення-виведення NT не тільки підтримує традиційні файлові
системи, але й забезпечує функціонування мережного редактора й сервера
я» Драйверів файлової системи З точки зору диспетчера введення/виведення
не має ніякої різниш між роботою з файлом, збереженим на віддаленому
комп’ютері мережі, і роботою з файлом на локальному жорсткому диску.
Редиректори і сервери можуть бути завантажені й вивантажені динамічно,
так само як і будь які інші драйвери, на одному комп’ютері може
одночасно знаходитися велика кількість редиректорів і серверів

Мережні драйвери

Ще одним типом драйверів, що присутні як компонент в архітектурі
введення/виведення. є мережні драйвери NT включає інтегровані можливості
роботи 1 мережами й підтримку для розподілених додатків Як правило,
робота і мережами забезпечується рядом мережних драйверів

Редиректори і сервери функціонують як драйвери файлової системи і
виконуються на рівні інтерфейсу постачальника або нижче, де знаходяться
NetBIOS і Windows-сокет.

Драйвери транспортного протоколу спілкуються з редиректорами і серверами
через рівень, що називається інтерфейсом транспортного драйвера (TDI — »
Transport Driver Interface). NT включає такі транспортні засоби:

— протокол управління передачею / міжмережний протокол TCP/IP, що
забезпечує можливість роботи із широким діапазоном існуючих мереж;

— NBF,- нащадок розширеного інтерфейсу користувача NetBIOS (NetBEUI), що
забезпечує сумісність з існуючими локальними обчислювальними мережами на
базі LAN Manager, LAN Server i MS-Net;

— управління передачею даних (DLC — Data Link Control), що забезпечує
інтерфейс для доступу до мейнфреймів і підключених до мережі принтерів;

— NWLink, реалізація IPX/SPX, що забезпечує зв’язок із Nowell NetWare. У
нижній частині мережної архітектури знаходиться драйвер плати мережного
адаптера. NT сьогодні підтримує драйвери пристроїв, виконані у
відповідності зі специфікацією NDIS (Network Device Inerface
Specification) версії 3.0. NDIS надає гнучке середовище обміну даними
між транспортними протоколами і мережними адаптерами. NDIS 3.0 дозволяє
окремому комп’ютеру мати кілька встановлених у ньому плат мережного
адаптера. У свою чергу, кожна плата мережного адаптера може підтримувати
кілька транспортних протоколів для доступу до різних типів мережних
станцій.

Модель безпеки NT

Модель безпеки NT представлена монітором безпеки (Security Reference
Monitor), а також двома іншими компонентами: процесором входу в систему
(Logon Process) і безпечними захищеними підсистемами.

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

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

Процес входу в систему в NT передбачає обов’язковий вхід у систему
безпеки для ідентифікації користувача. Кожен користувач повинен мати
бюджет і повинен використовувати пароль для звертання до цього бюджету.

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

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

NT також пропонує засоби контролю, які дозволяють адміністраторові
фіксувати дії користувачів.

Програмне середовище Wіndows

Розглянемо найважливіші моменти роботи Windows і принципи взаємодії
програм із нею.

Інтерфейс викликів функцій у Windows

Завдяки цьому інтерфейсу доступ до системних ресурсів здійснюється через
цілий ряд системних функцій. Сукупність таких функцій називається
прикладним програмним інтерфейсом, або API (Application Programming
Interface). Для взаємодії з Windows програма запитує функції АРІ, за
допомогою яких реалізуються всі необхідні системні дії, такі як
виділення пам’яті, виведення на екран, створення вікон і т. ін.

Бібліотека MFC інкапсулює багато функцій АРІ. Хоча програмам і дозволено
звертатися до них прямо, усе-таки частіше це здійснюється через
відповідні функції-члени. Як правило, функції-члени або аналогічні до
функцій АРІ, або безпосередньо звертаються до потрібної частини
інтерфейсу.

Бібліотеки динамічного завантаження (DLL)

Оскільки АРІ складається з великого числа функцій, може скластися
враження, що при компіляції кожної програми, написаної для Windows, до
неї підключається код досить значного обсягу. Насправді це не так.
Функції АРІ знаходяться в бібліотеках динамічного завантаження (Dynamic
Link Libraries, або DLL), які завантажуються в пам’ять тільки в той
момент, коли до них надходить запит, тобто при виконанні програми.
Розглянемо, як здійснюється механізм динамічного завантаження.

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

Win16 і Win32

Сьогодні широко розповсюджені дві версії АРІ. Перша називається Winl6 і
являє собою 16-розрядну версію, що використовується у Windows «3.1.
Друга, 32-розрядна версія, називається Win32 і використовується в
Windows 9x і Windows NT/2000/XP. Win32 є надмножиною для Winl6 (тобто
фактично містить у собі Цей інтерфейс), тому що більшість функцій має ту
ж назву і застосовується аналогічним чином. Однак, будучи в принципі
схожими, обидва інтерфейси все-таки відрізняються один від одного. Win32
підтримує 32-розрядну лінійну адресацію, тоді як Winl6 працює тільки з
16-розрядною сегментованою моделлю.

пам’яті. Це призвело до того, що деякі функції були модифіковані у такий
спосіб, щоб приймати 32-розрядні аргументи і повертати 32-розрядні
значення. Частину з них довелося змінити з урахуванням 32-розрядної
архітектури. Була реалізована підтримка потокової багатозадачності,
нових елементів інтерфейсу й інших нововведень Windows.

Інтерфейс GDI

Одним із підмножин АРІ є GDI (Graphics Device Interfase — інтерфейс
графічного пристрою). GDI — це та частина Windows, що забезпечує
підтримку апаратно-незалежної графіки. Завдяки функціям GDI
Windows-додаток може виконуватися на будь-яких комп’ютерах.

Багатозадачність у Windows

Як відомо, усі версії Windows підтримують багатозадачність. У Windows
3.1 Я тільки один тип багатозадачності — -заснований на процесах. У
нових системах Windows підтримується два типи багатозадачності:
заснований на процесах і заснований на потоках. Розглянемо їх трохи
докладніше.

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

Потік — це окрема частина коду, що виконується. Назва утворилася від
поняття «напрямок протікання процесу». У багатозадачності цього типу
окремі потоки усередині одного процесу також можуть виконуватися
одночасно. Усі процеси мають, принаймні, один потік, але в Windows 95 і
Windows NT їх може бути кілька.

Звідси можна зробити висновок, що в Windows 95 і Windows NT допускається
існування процесів, кілька частин яких виконуються одночасно.
Виявляється, таке припущення правильне. Отже, при роботі в цих
операційних системах можливим є паралельне виконання як програм, так і
окремих частин самих программ Це дозволяє писати дуже ефективні
програми.

Є й інше істотне розходження між багатозадачностями Windows 3.1 і
Windows 95/NT. У Windows 3.1 використовується непріоритетна
багатозадачність. Це означає, що процес, який виконується в цей момент,
одержує доступ до ресурсів центрального процесора й утримує їх протягом
необхідного йому часу. Таким чином, програма, що виконується
неправильно, може захопити всі ресурси процесора і не дає виконувати
інші процеси. На відміну від цього в Windows 95 і Windows NT
використовується пріоритетна багатозадачність. У цьому випадку кожному
активному потокові надається певний проміжок часу роботи процесора.
Після закінчення цього терміну управління автоматично передається
наступному потоку. Це не дозволяє програмам повністю захоплювати ресурси
процесора. Інтуїтивно ви розумієте, що такий спосіб кращий.

Взаємодія програм і Windows

У багатьох операційних системах взаємодію між системою й програмою
ініціалізує програма. Наприклад, у DOS програма запитує дозвіл на
введення й виведення даних. Інакше кажучи, не Windows-програми самі
викликають операційну систему. Зворотного процесу не відбувається. У
Windows усе абсолютно навпаки: саме система викликає програму. Це
здійснюється в такий спосіб: програма очікує одержання повідомлення від
Windows. Коли це відбувається, то виконується певна дія. Після її
завершення програма чекає наступного повідомлення. Windows може посилати
програмі повідомлення різних типів. Наприклад, щоразу при клацанні мишею
у вікні активної програми посилається відповідне повідомлення. Інший тип
повідомлень посилається, коли необхідно обновити вміст активного вікна.
Повідомлення посилаються також при натисканні клавіші, якщо програма
очікує введення з клавіатури. Необхідно запам’ятати одне: для програми
повідомлення з’являються випадково. От чому Windows-програми схожі» на
програми обробки переривань: неможливо передбачити, яке повідомлення
з’явиться в наступний момент.

Похожие записи