
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 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
- •Нові тенденції в розвитку ос
- •Графічні оболонки ос
- •Підтримка паралельних обчислень
- •Розвиток бездротових мереж
- •Перспективи розвитку ос
Монітори
Конструкція монітор запропонований в 1974 р. Ч. Хоаром. Вона є більше високорівневою і більше надійною конструкцією для синхронізації, чим семафори.
Монітор є багатовходовим модулем особливого роду. Він містить описи загальних для декількох паралельних процесів даних й операцій над цими даними у вигляді процедур P1, …, Pn... Користувачі монітора - паралельні процеси - мають доступ до описаного в ньому загальним даним тільки через його операції, причому в кожен момент часу не більш ніж один процес може виконувати яку-небудь операцію монітора; інші процеси, що бажають виконати операцію монітора, повинні чекати, поки перший процес закінчить виконувати моніторну операцію.
По суті справи, концепція монітора з'явилася розвитком запропонованої також Ч. Хоаром концепції абстрактного типу даних (АТД) – визначення типу даних як сукупності опису його конкретного подання й абстрактних операцій над ним (у вигляді процедур). Концепція монітора додає до АТД можливість синхронізації процесів за загальним даними.
Для реалізації очікування усередині монітора по різних умовах, уводяться умовні змінні (condition variables) – змінні з описами виду condition x,y, доступ до яких можливий тільки операціями wait й signal: наприклад, x.wait(); x.signal(). Операція x.wait() означає, що процес, її виконав, затримується до того моменту, поки інший процес не виконає операцію x.signal(). Операція x.signal() відновляє рівно один припинений процес. Якщо припинених процесів нема, вона не виконує ніяких дій.
Схематичне зображення монітора наведене на рис. 12.2.
Рис. 12.2. Схематичне зображення монітора.
Схема монітора з умовними змінними наведена на рис. 12.3.
Рис. 12.3. Монітор з умовними змінними.
Рішення завдання " філософи, що обідають," за допомогою моніторів
Реалізуємо рішення завдання " філософи, що обідають," ) за допомогою монітора. Для кожного філософа визначимо стану (голодний, обідає, думає), і для їхнього зберігання будемо використати масив state. Для керування переходом філософа зі стану в стан використаємо масив умовних змінних self. Для кожного філософа визначимо операції pickup - взяти паличку; putdown - звільнити паличку ; test - перевірити стан філософа й, якщо це можливо і якщо він голодний, перевести його в стан eating.
Синхронізація в ОС Solaris
Система Solaris надає різноманітні види блокіровщиків для підтримки багатозадачності, багатопоточності (включаючи потоки реального часу) і мультипроцессирования. Використовуються адаптивні мюьтексы (adaptive mutexes) – ефективний засіб синхронізації доступу до даних при їхній обробці короткими сегментами коду. Для більше довгих сегментів коду використаються умовні змінні й блокіровщики читачів-письменників (reader-writer locks; rwlocks).
Для синхронізації потоків використовуються "вертушки" (turnstiles) – синхронізуючі примітиви, які дозволяють використати або adaptive mutex, або rwlock.
Синхронізація в Windows 2000
Для захисту доступу до даних на однопроцесорних системах використовуються маски переривань. Для багатопроцесорних систем використовуються spinlocks ( замки, що вертяться). У системі реалізовані також об'єкти-диспетчери, які можуть функціонувати як мьютекси і як семафори. Об'єкти-диспетчери генерують події, семантика яких аналогічна семантиці умовної змінної.