- •З лабораторних робіт з предмету:
- •Лабораторна робота № 1
- •Контрольні запитання
- •Лабораторна робота № 2 Дослідження особливостей організації ресурсів інтерфейсу користувача для Windows-додатків
- •Лабораторна робота № 3. Вікна діалогу у Windows-додатках
- •Контрольні запитання та завдання
- •Лабораторна робота № 4. Дослідження особливостей використання арі-функцій для роботи із процесами та потоками у Windows
- •Контрольні запитання та завдання
- •Лабораторна робота № 5 Дослідження особливостей планування потоків у операційній системі Windows Контрольні запитання та завдання
- •Пріоритети
- •Динамічне підвищення пріоритету
Лабораторна робота № 5 Дослідження особливостей планування потоків у операційній системі Windows Контрольні запитання та завдання
1. Що собою являє процес планування потоків у операційних системах?
Вибір поточного потоку з кількох активних потоків, що намагаються отримати доступ до процесора, називається плануванням.
Планування – дуже важлива і критична для продуктивності операція, тому система надає багато інструментів для її гнучкої настройки.
Вибраний для виконання потік працює протягом якогось періоду, званого квантом, після закінчення якого потік витісняється, тобто процесор передається іншому потоку. Передбачається, що потік не знає, в який момент він буде витіснений. Потік також може бути витіснений, навіть якщо його квант ще не закінчився. Це відбувається, коли до виконання готовий потік із вищим пріоритетом. Процедура планування зазвичай пов’язана з досить витратною процедурою диспетчеризації – перемиканням процесора на новий потік, тому планувальник повинен піклуватися про ефективне використання процесора. Приналежність потоків до процесу при плануванні не враховується, тобто одиницею планування в ОС Windows є саме потік.
Запуск процедури планування зручно проілюструвати на спрощеній (у порівнянні з діаграмою, зображеною на рис. 3.3 лабораторної роботи № 3) діаграмі станів потоку (див. рис. 4.1).
Рис. 4.1. Спрощена діаграма станів потоків в ОС Windows
2. Чим викликається запуск процедури планування?
У ОС Windows запуск процедури планування викликається однією з наступних подій.
Це, по-перше, події, пов’язані зі звільненням процесора.
(1) Завершення потоку
(2) Перехід потоку в стан готовності у зв’язку з тим, що його квант часу закінчився
(3) Перехід потоку в стан очікування
По-друге, це події, в результаті яких поповнюється або може
поповнитися черга потоків у стані готовності.
(4) Потік вийшов зі стану очікування
(5) Потік щойно створений
(6) Діяльність поточного потоку може мати наслідком виведення іншого потоку зі стану очікування. У останньому випадку виведений зі стану очікування потік може відразу ж почати виконуватися, якщо має високий пріоритет.
Нарешті, процедура планування може бути запущена, якщо змінюється пріоритет потоку в результаті виклику системного сервісу або самої Windows, а також якщо змінюється прив’язка (affinity) потоку до процесора, через що потік не може більше виконуватися на поточному процесорі.
3. Які алгоритми планування ви знаєте? Опишіть їх.
Пріоритети
У ОС Windows реалізовано витісняюче пріоритетне планування, коли кожному потоку привласнюється певне числове значення – пріоритет, відповідно до якого йому виділяється процесор.
Потоки з однаковими пріоритетами плануються згідно з алгоритмом Round Robin (карусель). Важливою перевагою системи є можливість витіснення потоків, що працюють у режимі ядра – код виконавчої системи повністю реєнтерабельний. Не витісняються лише потоки, що утримують спін-блокування
Тому спінблокування використовуються з великою обережністю та встановлюються на мінімальний час.
