
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 5: Архітектура ос. Управління процессами: Основні поняття. Семафори і монітори План
- •2. Керування процесами
- •Віртуальні машини - інший розповсюджений підхід до розробки операційних систем й їхніх користувальницьких інтерфейсів
- •Механізми й політики
- •Реалізація операційних систем
- •Генерація операційної системи
- •Перемикання з одного процесу на інший
- •Планувальники, що виконують диспетчеризацію процесів
- •Лекція 10. Методи синхронізації процесів План
- •Алгоритм рішення проблеми критичної секції
- •Алгоритм «в пиріжковій» (bakery algorithm)
- •Синхронізація на основі загальних семафорів
- •Реалізація семафорів
- •Рішення за допомогою семафорів завдання
- •Рішення за допомогою семафорів завдання "читачі - письменники"
- •Рішення за допомогою семафорів завдання " філософи, що обідають,"
- •Монітори
- •Лекція № 11. Управління памяттю План
- •Динамічне завантаження й динамічна лінковка
- •Оверлейна структура програми
- •Відкачка й підкачування
- •Лекція 13. Сегментна організація пам’яті. Віртуальна пам’ять
- •Оптимальний алгоритм заміщення сторінок
- •Сторінкова організація на вимогу в Windows nt
- •Лекція № 14. Системи файлів План
- •Типова організація файлової системи зображена на мал. 19.3.
- •Логічна організація директорій
- •Монтування файлових систем
- •Структура файлової системи
- •Лекція № 15. Віртуальні файлові системи План
- •Лекція 17. Системи вводу-виводу План
- •Опитування пристроїв
- •Переривання
- •Ввід-вивід із прямим доступом до пам'яті (dma)
- •Блокові й символьні пристрої
- •Мережні пристрої істотних відрізняються від блоків і символьних; мають свій власний інтерфейс і систему команд
- •Годинники й таймери
- •Блокуємий (синхронний) і не блокуємий (асинхронний) ввід-вивід
- •Структури даних для вводу-виводу в ядрі ос
- •Життєвий цикл запиту на ввід-вивід
- •Продуктивність вводу-виводу
- •Лекція 18. Мережі й мережеві структури. Класичні и сучасні мережеві комунікаційні протоколи План
- •Мережі Ethernet
- •Протокол tcp/ip
- •Функционирование Ethernet-мереж
- •Лекція 19: Безпека операційних систем і мереж. План
- •Лекція 20. Огляд архітектури й можливостей системи Linux: архітектура, ядро, поширення й ліцензування, принципи проектування, керування процесами План
- •Історія Linux
- •Ядро Linux
- •Сучасний стан Linux, дистрибутиви й ліцензування
- •Принципи проектування й компоненти системи Linux
- •Модулі ядра, що завантажують, Linux
- •Керування процесами в Linux
- •Планування завдань ядра й синхронізація в ядрі
- •Лекція 21. Огляд архітектури й можливостей системи Linux: керування пам'яттю, ресурсами, файлові системи, драйвери пристроїв, мережі, безпека План
- •Керування фізичною пам'яттю в Linux
- •Віртуальна пам'ять в Linux
- •Виконання й завантаження користувальницьких програм в Linux
- •Системи файлів Linux
- •Ввод й вивід в Linux
- •Взаємодія процесів в Linux
- •Структура мережі в Linux
- •Безпека в Linux
- •Розвиток і використання Linux
- •Лекція 22. Огляд архітектури й можливостей систем Windows 2000/xp/2003/Vista/2008/7 План
- •Система Windows 2000
- •Історія Windows
- •Принципи проектування Windows 2000 - розширюваність, переносимость, надійність, безпека, сумісність, продуктивність, підтримка інтернаціоналізації й локалізації.
- •Архітектура Windows 2000
- •Ядро Windows 2000
- •Обработка переривань у ядрі
- •Виконавча підсистема (executive) ос Windows 2000
- •Підсистеми оточення в Windows 2000
- •Лекція 23. Системні механізми Windows План
- •Система файлів Windows
- •Рограммный інтерфейс Windows
- •Програмний інтерфейс Windows: Керування процесами
- •Керування віртуальною й фізичною пам'яттю й робочими наборами в Windows
- •Лекція 24. Ос для мобільних пристроїв. Windows Mobile План
- •Особливості ос для мобільних пристроїв
- •Ринок ос для мобільних пристроїв
- •Перспективи ос для мобільних пристроїв
- •Лекція 25. Перспективи операційних систем і мереж План
- •Операційні системи інших великих фірм
- •Solaris - операційна система розробки фірми Oracle / Sun
- •Сучасні тенденції в розвитку ос
- •Нові ос сімейства Windows
- •Нові тенденції в розвитку ос
- •Графічні оболонки ос
- •Підтримка паралельних обчислень
- •Розвиток бездротових мереж
- •Перспективи розвитку ос
Принципи проектування 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).