Квант (Windows)
В операційній системі Windows квант – це інтервал процесорного часу, відведений потоку для виконання. Після його закінчення Windows перевіряє, чи очікує виконання інший потік з таким же рівнем пріоритету. Якщо на момент закінчення кванта інших потоків з тим же рівнем пріоритету немає, Windows виділяє активному потоку ще один квант[1].
Огляд
За замовчуванням у Windows 2000 Professional і Windows ХР потоки виконуються протягом 2 інтервалів таймера (clock intervals), а в системах Windows Server – 12 інтервалів. У серверних системах величина кванта збільшена для того, щоб звести до мінімуму перемикання контексту потоків. Отримуючи більший квант, серверні програми, які активуються при надходженні клієнтського запиту, мають більше шансів виконати запит і повернутися в стан очікування до закінчення виділеного кванта. Тривалість інтервалу таймера залежить від апаратної платформи й визначається HAL, а не ядром. На більшості однопроцесорних х86-систем цей інтервал становить 10 мс, а на більшості багатопроцесорних х86-систем – близько 15 мс.
Керування величиною кванта
Величину кванта для потоків усіх процесів у системі можна змінити, але вибір обмежений усього двома значеннями: короткий квант (2 такти таймера, використовується за замовчуванням для клієнтських комп'ютерів) або довгий (12 тактів таймера, використовується за замовчуванням для серверних систем)[1].
У Windows XP це можна зробити, клацнувши правою кнопкою миші My Computer (мій комп'ютер), вибравши Properties (властивості), далі перейти на вкладку Advanced (додатково), клацнути кнопку Settings (параметри) у розділі Performance (швидкодія), а потім перейти на вкладку Advanced (додатково). Відповідне діалогове вікно зображене на рис.
У цьому вікні в розділі "Розподіл часу процесора" можна вибрати два значення. Значення Programs (програми), яке в Windows 2000 називалося Applications (програми), відповідає використанню коротких квантів змінної величини – цей варіант встановлюється для Windows 2000 Professional і Windows ХР за замовчуванням. Працюючи з Windows Server як з персональною операційною системою, також можна вручну вибрати цей параметр.
Параметр Background Services (фонові служби) має на увазі застосування довгих квантів фіксованого розміру, що пропонується за замовчуванням у системах Windows Server. Єдина причина, за якою має зміст використання цього параметра на робочій станції, – застосування її як серверної системи[2].
Динамічне збільшення кванта
У Windows, коли на робочій станції або в клієнтській системі якесь вікно стає активним, пріоритет усіх потоків активного процесу (якому належить потік, що володіє вікном у фокусі вводу) динамічно підвищується. Завдяки цьому, коли процес, що інтенсивно використовує процесорні ресурси, виявляється фоновим, новий активний процес отримує пропорційно більший процесорний час (передбачається, що пріоритети потоків однакові як в активному, так і у фоновому процесі).
Ця зміна квантів стосується лише процесів із пріоритетом вище Idle у системах із установленим параметром Programs у діалоговому вікні Performance Options (Параметри швидкодії), як пояснювалося раніше. Кванти потоків активного процесу в системах із установленим параметром Background Services (налаштування за замовчуванням у системах Windows Server) не змінюються.
Див. також
Примітки
- Коноваленко І.В., Федорів П.С. Системне програмування у Windows з прикладами на Delphi, Т:ТНТУ.- 2012.
- Руссинович М. Внутреннее устройство Microsoft Windows : Windows Server 2003, Windows XP и Windows 2000. Мастер-класс / М.Руссинович, Д.Соломон ; пер. с англ. – 4-е изд. – М : Издательско-торговый дом "Русская редакция" ; СПб : Питер, 2005.