Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Учет квантов и управление их величиной



Квант – интервал процессорного времени, отведенный потоку для выполнения /11/. По его окончании Windows 2000 проверяет, готов ли к выполнению другой поток с таким же уровнем приоритета. Если на момент истечения кванта других потоков с таким же уровнем приоритета нет, Windows 2000 выделяет текущему потоку еще один квант. У каждого потока есть свое значение кванта, которое отражается полями параметра Win32PrioritySeparation. Это значение выражается не в единицах времени, а в так называемых квантовых единицах (quantum units).

По умолчанию, начальная величина кванта в Windows 2000 Professional равна 6, а в Windows 2000 Server — 36. В Windows 2000 Server величина кванта увеличена для того, чтобы свести к минимуму переключение контекста. Получая больший квант, серверные приложения, которые пробуждаются при получении клиентского запроса, имеют больше шансов выполнить запрос и вернуться в состояние ожидания до истечения выделенного кванта.

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

В Windows 2000 Professional квант по умолчанию равен двум интервалам системного таймера, а в Windows 2000 Server – двенадцати. Период таймера в большинстве однопроцессорных х86-систем равен 10 msec, а в большинстве мультипроцессорных х86-систем - 15 msec.

Относительная величина кванта (короткая или длинная) задается в реестре параметром HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl\Win32PrioritySeparation.

Этот же параметр определяет, можно ли динамически увеличивать кванты потоков (если да, то насколько), выполняемых в активном процессе. Поясним на примере, почему Windows 2000 динамически увеличивает величину кванта, а не приоритета активных потоков. Допустим, начат длительный пересчет электронной таблицы и затем произведено переключение на приложение, активно использующее процессор. Если повысить приоритет активного процесса, фоновый пересчет получит лишь очень малую часть процессорного времени. В тоже время увеличение кванта для активного потока не приведет к фактическому блокированию потока пересчета — система всего лишь будет отдавать активному потоку несколько большее предпочтение. Приложение можно запустить с различными классами приоритета, использую команду start (см. пример 2). Приоритет запущенного потока можно сменить с помощью «Диспетчера задач» (см. рис. 4).





Дата публикования: 2015-04-07; Прочитано: 420 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...