Составители:
Рубрика:
рис. 6.9 дан формат этого параметра для Windows 2000-2003, а в таблице
6.1 приводятся длительности квантов в условных единицах для разных
значений полей параметра Win32PrioritySeparation.
Рис. 6.9. Управление квантованием в Windows (длительность кванта
показана в табл. 6.1)
Таблица 6.1. Длительность кванта
Этот параметр может быть изменен с помощью панели управления,
однако, лишь в очень ограниченных рамках:
«System Properties|Advanced|Performance:Settings|Advanced|Adjust for
best performance of:» позволяет выбрать только:
«applications»
короткие кванты переменной длины, значение 0x26 т.е. 10 01 10 (ко-
роткие кванты переменной длительности, 18 ед.).
Основы многозадачности
197
При выборе потока для выполнения учитываются приоритеты пото-
ков (абсолютные приоритеты) – система начинает выполнять код потока
с наибольшим приоритетом из числа готовых к исполнению.
Процесс выбора потока для выполнения усложняется в случае SMP
систем, когда помимо приоритета готового к исполнению потока учиты-
вается, на каком процессоре ранее выполнялся код данного потока.
В Windows выделяют понятие «идеального» процессора – им назна-
чается процессор, на котором запускается приложение в первый раз. В
дальнейшем система старается выполнять код потока именно на этом про-
цессоре – для SMP систем это решение улучшает использование кэш-па-
мяти, а для NUMA систем позволяет, по большей части, ограничиться ис-
пользованием оперативной памяти, локальной для данного процессора.
Заметим, что диспетчер памяти Windows при выделении памяти для запу-
скаемого процесса старается учитывать доступность памяти для назначен-
ного процессора в случае NUMA системы.
В многопроцессорной системе используется либо первый простаива-
ющий процессор, либо, при необходимости вытеснения уже работающего
потока, проверяются идеальный процессор, последний использовавший-
ся и процессор с наибольшим номером. Если на одном из них работает по-
ток с меньшим приоритетом, то последний вытесняется и заменяется но-
вым потоком; в противном случае выполнение потока откладывается (да-
же если в системе есть процессоры, занятые потоками с меньшим приори-
тетом).
Современные реализации Windows в рамках единого дерева кодов
могут быть использованы для различных классов задач – от рабочих стан-
ций, обслуживающих преимущественно интерфейс пользователя, до сер-
верных установок на многопроцессорных машинах. Чтобы можно было
эффективно использовать одну ОС в столь разных классах систем, плани-
ровщик Windows динамически изменяет длительность квантов и приори-
теты, назначаемые потокам. Администратор системы может в некоторой
степени изменить поведение системы при назначении длительности кван-
тов и приоритетов потоков.
6.1.2.1. Управление квантованием
Квантование потоков осуществляется по тикам системного таймера,
продолжительность одного тика составляет обычно 10 или 15 мс, больший
по продолжительности тик назначают многопроцессорным машинам. Ка-
ждый тик системного таймера соответствует 3 условным единицам; вели-
чина кванта может варьироваться от 2 до 12 тиков (от 6 до 36 единиц).
Параметр реестра
HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl\
Win32PrioritySeparation предназначен для управления квантованием. На
196
CIL и системное программирование в Microsoft .NET
HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl\Win32PrioritySeparation
... 5 4 3 2 1 0
Динамическое приращение длительности кванта
допустимые значения 0, 1 и 2
1 := переменная длительность кванта
2 := фиксированная длительность кванта
0 или 3 := значения по умолчанию
(1 для рабочих станций и 2 для серверов)
1 := длинный квант
2 := короткий квант
0 или 3 := значения по умолчанию
(1 для рабочих станций и 2 для серверов)
Короткий квант Длинный квант
Значение младших 2-х бит 0 1 2 0 1 2
параметра Win32PrioritySeparation
Переменная длительность 6 12 18 12 24 36
Фиксированная длительность 18 18 18 36 36 36
196 CIL и системное программирование в Microsoft .NET Основы многозадачности 197 При выборе потока для выполнения учитываются приоритеты пото- рис. 6.9 дан формат этого параметра для Windows 2000-2003, а в таблице ков (абсолютные приоритеты) – система начинает выполнять код потока 6.1 приводятся длительности квантов в условных единицах для разных с наибольшим приоритетом из числа готовых к исполнению. значений полей параметра Win32PrioritySeparation. Процесс выбора потока для выполнения усложняется в случае SMP систем, когда помимо приоритета готового к исполнению потока учиты- HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl\Win32PrioritySeparation вается, на каком процессоре ранее выполнялся код данного потока. В Windows выделяют понятие «идеального» процессора – им назна- ... 5 4 3 2 1 0 чается процессор, на котором запускается приложение в первый раз. В дальнейшем система старается выполнять код потока именно на этом про- цессоре – для SMP систем это решение улучшает использование кэш-па- Динамическое приращение длительности кванта мяти, а для NUMA систем позволяет, по большей части, ограничиться ис- допустимые значения 0, 1 и 2 пользованием оперативной памяти, локальной для данного процессора. Заметим, что диспетчер памяти Windows при выделении памяти для запу- 1 := переменная длительность кванта скаемого процесса старается учитывать доступность памяти для назначен- 2 := фиксированная длительность кванта ного процессора в случае NUMA системы. 0 или 3 := значения по умолчанию В многопроцессорной системе используется либо первый простаива- (1 для рабочих станций и 2 для серверов) ющий процессор, либо, при необходимости вытеснения уже работающего потока, проверяются идеальный процессор, последний использовавший- 1 := длинный квант ся и процессор с наибольшим номером. Если на одном из них работает по- 2 := короткий квант ток с меньшим приоритетом, то последний вытесняется и заменяется но- 0 или 3 := значения по умолчанию вым потоком; в противном случае выполнение потока откладывается (да- (1 для рабочих станций и 2 для серверов) же если в системе есть процессоры, занятые потоками с меньшим приори- тетом). Рис. 6.9. Управление квантованием в Windows (длительность кванта Современные реализации Windows в рамках единого дерева кодов показана в табл. 6.1) могут быть использованы для различных классов задач – от рабочих стан- ций, обслуживающих преимущественно интерфейс пользователя, до сер- Таблица 6.1. Длительность кванта верных установок на многопроцессорных машинах. Чтобы можно было Короткий квант Длинный квант эффективно использовать одну ОС в столь разных классах систем, плани- Значение младших 2-х бит 0 1 2 0 1 2 ровщик Windows динамически изменяет длительность квантов и приори- теты, назначаемые потокам. Администратор системы может в некоторой параметра Win32PrioritySeparation степени изменить поведение системы при назначении длительности кван- Переменная длительность 6 12 18 12 24 36 тов и приоритетов потоков. Фиксированная длительность 18 18 18 36 36 36 6.1.2.1. Управление квантованием Этот параметр может быть изменен с помощью панели управления, Квантование потоков осуществляется по тикам системного таймера, однако, лишь в очень ограниченных рамках: продолжительность одного тика составляет обычно 10 или 15 мс, больший «System Properties|Advanced|Performance:Settings|Advanced|Adjust for по продолжительности тик назначают многопроцессорным машинам. Ка- best performance of:» позволяет выбрать только: ждый тик системного таймера соответствует 3 условным единицам; вели- «applications» чина кванта может варьироваться от 2 до 12 тиков (от 6 до 36 единиц). короткие кванты переменной длины, значение 0x26 т.е. 10 01 10 (ко- Параметр реестра роткие кванты переменной длительности, 18 ед.). HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl\ Win32PrioritySeparation предназначен для управления квантованием. На
Страницы
- « первая
- ‹ предыдущая
- …
- 103
- 104
- 105
- 106
- 107
- …
- следующая ›
- последняя »