3

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

1 ответ1

1

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .