"Форсаж" приоритета


Каждый поток имеет динамический приоритет (dynamic priority). Этот приоритет используется диспетчером, чтобы установить какой поток исполнять. Первоначально, динамический приоритет потока точно такой же, что и его основной приоритет. Система может повысить и понизить динамический приоритет, гарантируя этим, что поток быстро отреагирует на события и что потоки не испытают недостатка в процессорном времени. Система не повышает приоритет потоков с основным уровнем приоритета между 16 и 31. Только потоки с основным приоритетом между 0 и 15 получают повышение динамического приоритета.

Система повышает динамический приоритет потока, чтобы улучшить его ответную реакцию следующим образом.

Windows NT/2000/XP: пользователь может управлять "форсированием" процессов, которые используют NORMAL_PRIORITY_CLASS через приложение Системная панель управления.

Windows NT/2000/XP: Вы можете отключить повышающую приоритет функцию путем вызова функции SetProcessPriorityBoost или SetThreadPriorityBoost. Чтобы выявить, была ли эта функция заблокирована, вызовите функцию GetProcessPriorityBoost или GetThreadPriorityBoost.

После подъема динамического приоритета потока, диспетчер уменьшает этот приоритет на один уровень, каждый раз, когда у потока завершается квант машинного времени и до тех пор, пока у потока не произойдет снижения назад к его основному приоритету. Динамический приоритет потока никогда не становится меньше, чем его основной приоритет.

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz