Приоритеты в обслуживании

Потоки включаются в график запуска, основываясь на их приоритете в обслуживании (scheduling priority). Каждому потоку присваивается приоритет в обслуживании. Уровни приоритета располагаются от нуля (самый низкий приоритет) до 31 (самый высокий приоритет). Только поток с нулевой страницей может иметь приоритет нуля. (Поток с нулевой страницей - системный поток, ответственный за установку нуля любых свободных страниц, когда нет никаких других потоков, которые нужно запустить.)

Система рассматривает все потоки, как потоки с равным одним и тем же приоритетом. Система назначает кванты машинного времени циклическим способом всем потокам с самым высоким приоритетом. Если ни один из этих потоков не готов запуститься, система назначает кванты машинного времени циклическим способом всем потокам со следующим самым высоким приоритетом. Если более - приоритетный поток становится доступным для запуска, система прекращает исполнять менее - приоритетный поток (не давая ему возможности закончить использовать его квант машинного времени), и назначает несокращенный квант машинного времени более - приоритетному потоку. Для получения дополнительной информации, см. статью Переключение контекста.

Приоритет каждого потока определяется в соответствии с нижеследующими критериями:

Класс приоритета и уровень приоритета объединяются, чтобы сформировать основной приоритет (base priority) потока. Информацию о динамическом приоритете потока смотри статью “Форсаж” приоритета.

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

Hosted by uCoz