Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Операційні системи.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6.41 Mб
Скачать

Принципи проектування Windows 2000 - розширюваність, переносимость, надійність, безпека, сумісність, продуктивність, підтримка інтернаціоналізації й локалізації.

Розширюваність. Windows 2000 має багаторівневу архітектуру. Ядро і його виконавча підсистема (executive), що виконує в захищеному режимі, забезпечує базові системні сервисы. Поверх ядра реалізовані кілька серверних підсистем, що працюють у користувальницькому режимі. Модульна структура дозволяє додавати нові підсистеми оточення без модифікації ядра.

Переносимость. Завдяки своїм принципам проектування й архітектури, Windows 2000 може бути перенесена з однієї апаратної платформи на іншу з порівняно невеликими змінами. Система написана на мовах високого рівня - C й C++. Код, що залежить від процесора, ізольований у динамічно линкуемую бібліотеку (DLL), називану рівень абстрагування від апаратур - hardware abstraction layer (HAL). Ідея HAL була реалізована фірмою Microsoft, по визнанню її менеджерів, набагато раніше - при розробці в 1980-х рр. пакета Microsoft Office для різних апаратних платформ, включаючи Macintosh / MacOS (ОС Windows тоді ще не було). Ця ж ідея була використана й в Windows 2000, і ще пізніше - при реалізації академічної версії .NET - SSCLI (Rotor), що працює на трьох різних платформах.

Надійність. Windows 2000 використає апаратний захист для віртуальної пам'яті й програмні захисні механізми для ресурсів ОС.

Безпека. Як уже було сказано в попередніх лекціях, саме з поліпшення безпеки Windows 2000 була почата ініціатива trustworthy computing, і з тих пор у кожної нової ОС Microsoft приділяє особливу увагу безпеки.

Сумісність. Додатка, які розроблені з урахуванням вимог стандарту IEEE 1003.1 (POSIX), можуть компілюватися для Windows 2000 без змін у вихідному коді й виконуватися в середовищі Windows 2000.

Продуктивність. Підсистеми Windows 2000 можуть взаємодіяти один з одним за допомогою високопродуктивної передачі повідомлень. Переривання низкоприоритетных потоків дозволяє системі швидко реагувати на зовнішні події. Windows 2000 спроектована для підтримки симетричного мультипроцессирования.

Підтримка інтернаціоналізації (i18n) і локалізації (l10n). Windows 2000 підтримує різні мови й культурні середовища (locales) за допомогою спеціалізованих бібліотек - NLS API.

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

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

Схема архітектури Windows 2000 наведена на рис. 27.1.

Рис. 27.1.  Архітектура Windows 2000.

У наступній частині лекції розглянемо докладніше основні компоненти архітектури Windows 2000.

Ядро Windows 2000

Ядро в системі є основою функціонування виконавчої підсистеми (executive) і підсистем, виконуваних у користувальницькому режимі. Відмови сторінок у ядрі виключені. Його виконання ніколи не переривається.

Ядро виконує наступні основні функції:

  • Планування потоків

  • Обробка переривань і виключень

  • Низкоуровневую синхронізацію процесів

  • Відновлення після відмов електроживлення.

Особливо важливої й принципово нової в операційних системах особливістю є те, що ядро системи Windows - объектно-ориентированное. Ядро використає два набори об'єктів:

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

  • Керуючі об'єкти - асинхронні виклики процедур, оброблювачі переривань, об'єкти нотифікації про електроживлення, об'єкти стану електроживлення, об'єкти профілювання.

Підтримка потоків і процесів у ядрі. Процес має адресний простір у віртуальній пам'яті, інформацію (наприклад, базовий пріоритет) і тісний зв'язок з одним або декількома процесами. Потоки – одиниці виконання, плановані диспетчером ядра. Кожен потік має свій власний стан, включаючи пріоритет, зв'язок із процесором і статистичною інформацією. Потік може бути в наступних станах: ready, standby, running, waiting, transition й terminated.

Планування в ядрі. Диспетчер використає 32-уровневую схему пріоритетів для визначення порядку виконання потоків. Пріоритети розбиті на два класи:

  • Клас real-time містить потоки із пріоритетами від 16 до 31.

  • Клас variable містить потоки із пріоритетами від 0 до 15.

Характерними рисами стратегії пріоритетів Windows 2000 є наступні:

  • Гарний час відповіді для потоків, що використають мишу й вікна.

  • Надання можливості потокам, пов'язаним із вводом-виводом, забезпечувати зайнятість пристроїв вводу-виводу.

Планування виконується, коли потік переходить у стан ready або wait, коли потік завершується, або коли додаток змінює пріоритет потоку або зв'язок із процесором.

Потокам реального віддається перевага при виділенні процесора; але ОС не гарантує, що потік почне виконуватися протягом якого-небудь певного інтервалу часу (такий підхід відомий як soft real-time).