В операційній системі Windows квант – це інтервал процесорного часу, відведений потоку для виконання. Після його закінчення Windows перевіряє, чи очікує виконання інший потік з таким же рівнем пріоритету. Якщо на момент закінчення кванта інших потоків з тим же рівнем пріоритету немає, Windows виділяє активному потоку ще один квант[1].

Огляд ред.

За замовчуванням у Windows 2000 Professional і Windows ХР потоки виконуються протягом 2 інтервалів таймера (clock intervals), а в системах Windows Server – 12 інтервалів. У серверних системах величина кванта збільшена для того, щоб звести до мінімуму перемикання контексту потоків. Отримуючи більший квант, серверні програми, які активуються при надходженні клієнтського запиту, мають більше шансів виконати запит і повернутися в стан очікування до закінчення виділеного кванта. Тривалість інтервалу таймера залежить від апаратної платформи й визначається HAL, а не ядром. На більшості однопроцесорних х86-систем цей інтервал становить 10 мс, а на більшості багатопроцесорних х86-систем – близько 15 мс.

Керування величиною кванта ред.

 
Зміна кванта у Windows

Величину кванта для потоків усіх процесів у системі можна змінити, але вибір обмежений усього двома значеннями: короткий квант (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) не змінюються.

Див. також ред.

Примітки ред.

  1. а б Коноваленко І.В., Федорів П.С. Системне програмування у Windows з прикладами на Delphi, Т:ТНТУ.- 2012 [Архівовано 8 Грудня 2012 у Wayback Machine.].
  2. Руссинович М. Внутреннее устройство Microsoft Windows : Windows Server 2003, Windows XP и Windows 2000. Мастер-класс / М.Руссинович, Д.Соломон ; пер. с англ. – 4-е изд. – М : Издательско-торговый дом "Русская редакция" ; СПб : Питер, 2005.