Планировщик Windows выделяет потокам одинаковую длину?

Является ли временной интервал (квант), который диспетчер ядра Windows выделяет потокам одинаковой длины для каждого потока, или он основывает размер кванта на приоритете потока, как это делает Linux?

1 ответ

Решение

Со времен Windows NT приложения с более высоким приоритетом имеют больший объем, например, для потоков переднего плана.

Определены 32 уровня приоритета, от 0 до 31, причем приоритеты от 0 до 15 являются "обычными" приоритетами, а приоритеты с 16 по 31 - это мягкие приоритеты в реальном времени, требующие привилегий для назначения. 0 зарезервировано для операционной системы. Пользователи могут выбрать 5 из этих приоритетов для назначения запущенному приложению из приложения "Диспетчер задач" или через API управления потоками. Ядро может изменить уровень приоритета потока в зависимости от его ввода-вывода и использования ЦП, а также от того, является ли он интерактивным (т.е. принимает и реагирует на ввод от людей), повышая приоритет интерактивных процессов и процессов, связанных с вводом-выводом, и снижая приоритет Процессы, связанные с процессором, для повышения отзывчивости интерактивных приложений

В Vista планировщик использует регистры счетчиков циклов в современных процессорах и может оценить, сколько циклов использует поток за такт. Таким образом, планировщик может более справедливо распределять процессорное время. После прерывания потоку разрешается работать в течение другого временного интервала, в то время как до Vista планировщик предполагал, что прерванный поток работал в течение всего своего временного интервала. (Это косвенно увеличивает приоритет сильно прерванного потока.) Vista также использует планировщик приоритетов для очереди ввода / вывода, чтобы дефрагментаторы дисков и другие подобные программы не мешали операциям переднего плана.

Источники: планирование википедии, улучшения ядра Vista.

Другие вопросы по тегам