
- •Операційні системи
- •Функціонування комп'ютерної системи
- •Обработка переривань
- •Структура пам'яті
- •Лекція 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
- •Нові тенденції в розвитку ос
- •Графічні оболонки ос
- •Підтримка паралельних обчислень
- •Розвиток бездротових мереж
- •Перспективи розвитку ос
Рішення за допомогою семафорів завдання "читачі - письменники"
Суть завдання читачі-письменники в наступному: є загальний ресурс і дві групи процесів: читачі (які можуть тільки читати ресурс, але не змінюють його) і письменники (які змінюють ресурс). У кожен момент працювати з ресурсом може відразу трохи читачів (коли ресурс не змінюється письменниками), але не більше одного письменника. Необхідно синхронізувати їхньої дії над ресурсом і забезпечити взаємне виключення відповідних критичних секцій.
Рішення за допомогою семафорів завдання " філософи, що обідають,"
Суть завдання філософи, що обідають, у наступному. Є круглий стіл, за яким сидять п'ять філософів (втім, їхнє число принципового значення не має – для іншого числа філософів рішення буде аналогічним). Перед кожним з них лежить тарілка з їжею, ліворуч і праворуч від кожного – дві китайські палички. Філософ може перебувати в трьох станах: голоду, думати й обідати. На голодний шлунок філософ думати не може. Але почати обідати він може, тільки якщо обидві палички ліворуч і праворуч від нього вільні. Потрібно синхронізувати дії філософів. У цьому випадку загальним ресурсом є палички. Ілюстрацією умов завдання є рис. 12.1.
Рис. 12.1. Завдання " філософи, щообідають,".
Критичні області
Критичні області (critical regions) – більше високоринева й надійна конструкція для синхронізації, чим семафори. Загальний ресурс описується у вигляді особливого опису змінної:
v: shared T
Доступ до змінного v можливий тільки за допомогою спеціальної конструкції:
region v when B do S
де v - загальний ресурс; B - булева умова, S - оператор (утримуючий дії над v ).
Семантика даної конструкції наступна. Поки B хибний, процес, її виконуючий, повинен чекати. Коли B стає щирим, процес одержує доступ до ресурсу v і виконує над ним операції S. Поки виконується оператор S, більше жоден процес не має доступу до змінного v.
Рішення за допомогою критичних областей завдання "обмежений буфер"
Опишемо буфер як структуру:
struct buffer {
int pool [n];
int count, in, out
}
buf: shared buffer;
Алгоритм процесу-виробника:
region buf when (count < n) {
pool [in] = nextp;
in = (in+1) % n;
count++;
}
Помітимо, що перевірка переповнення буфера виконується при вході в конструкцію region, і споживач чекає, поки в буфері звільниться хоча б один елемент.
Алгоритм процесу-споживача:
region buf when (count > 0) {
nextc = pool [out];
out = (out+1) % n;
count-і;
}
Не можна не відзначити, наскільки простіше й надійніше виявляється рішення завдання з використанням даної конструкції, у порівнянні з використанням семафорів.
Схема реалізації критичних областей за допомогою семафорів
Будемо використати для реалізації конструкції region x when B do S наступні семафори й цілі змінні:
semaphore mutex, first-delay, second-delay;
int first-count, second-count;
Семафор mutex використається для взаємно виключення доступу до критичної секції S. Семафор first-delay використається для очікування процесів, які не можуть увійти в критичну секцію S, тому що умова B хибна. Число таких процесів зберігається в змінної first-count. Семафор second-delay використається для очікування тих процесів, які обчислили умову B один раз й очікують, коли їм буде дозволено повторно обчислити B ( second-count - лічильник таких процесів).