65
Це просто вищі пріоритети, які зарезервовані для системних по-
токів і тих потоків, яким такий пріоритет дає користувач з адміні-
стративними правами. Проте наявність пріоритетів реального
часу, а також можливість витіснення коду ядра, локалізація сто-
рінок пам’яті і ряд додаткових можливостей – все це дозволяє
виконувати в середовищі ОС Windows програми м’якого реально-
го часу, наприклад мультимедійні. Системний потік із нульовим
пріоритетом займається занулінням сторінок пам’яті. Звичайні
потоки користувача можуть мати пріоритети від 1 до 15.
Динамічне підвищення пріоритету
Планувальник ухвалює рішення на основі поточного пріорите-
ту потоку, який може бути вищим за базовий. Є кілька ситуацій,
коли має сенс підвищити пріоритет потоку.
Наприклад, після завершення операції введення-виведення
збільшують пріоритет потоку, щоб дати йому можливість швидше
почати виконання і, можливо, знов ініціювати операцію введен-
ня-виведення. У такий спосіб система заохочує інтерактивні по-
токи і підтримує зайнятість пристроїв введення-виведення. Вели-
чина, на яку підвищується пріоритет, не документована і зале-
жить від пристрою (рекомендовані значення для диска і CD – це
1, для мережі – 2, клавіатури і миші – 6 і звукової карти – 8). На-
далі протягом кількох квантів часу пріоритет плавно знижується
до базового.
Іншими прикладами подібних ситуацій можуть служити:
„пробудження” потоку після стану очікування семафора або іншої
події; отримання потоком доступу до віконного введення.
Динамічне підвищення пріоритету розв’язує також проблему
„голодування” потоків, які довго не одержували доступу до про-
цесора. Виявивши такі потоки, що простоюють протягом прибли-
зно 4 с, система тимчасово підвищує їх пріоритет до 15 і дає їм
два кванти часу. Побічним наслідком застосування цієї технології
може бути розв’язання відомої проблеми інверсії пріоритетів. Ця
проблема виникає, коли низькопріоритетний потік утримує ре-
сурс, блокуючи високопріоритетні потоки, що претендують на
цей ресурс. Рішення полягає в штучному підвищенні його пріори-
тету на деякий час.