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

Динамическое повышение приоритета потока



Windows может динамически повышать значение текущего приоритета потока в следующих случаях.

1. После завершения операций ввода/вывода.

2. По окончанию ожидания какого-либо события.

3. При пробуждении GUI потоков при выполнении операций с окнами.

4. Если поток готов к выполнению, но не хватает времени процессора.

Динамическое повышение приоритета потока предназначено для оптимизации общей пропуск-ной способности и повышения производительности системы. ОС Windows никогда динамически не повышает приоритет потоков диапазона RealTime (то есть от 16 до 31).

1. Динамическое изменение приоритета после завершения операций ввода/вывода. Величина динамического приращения определяется драйверами.

Устройство Приращение приоритета
HDD, CD-ROM, принтер, видеокарта  
Сеть, почтовый ящик, именованный канал, устройства на COM  
Клавиатура, мышь  
Звуковая плата  

Приоритет потока всегда повышается относительно базового уровня.

приоритет

квант

Снижение приоритета по

истечению кванта


повышение

приоритета

по окончании

ожидания


выполнение приоритет снижается

до базового

вытеснение

базовый

уровень выполнение ожидание


выполнение


Поток в течение одного кванта выполняется с повышенным уровнем приоритета, приоритет уменьшается на одну единицу и после чего потоку выделяется ещё один квант. Поток с более высоким приоритетом может вытеснить поток с повышенным приоритетом. Приращение приоритета никогда не будет больше 15, то есть если к потоку с приоритетом 14 применить динамическое повышение на 6 уровней, то его приоритет станет 15.

2. По окончанию ожидания какого-либо события. Действует аналогично пункту 1.

3. Динамическое повышение приоритета GUI потоков. Приоритет потоков, владеющих окнами динамически повышается на 2 уровня после их пробуждения. Приоритет повышается для создания преимуществ интерактивным приложениям.

4. Динамическое повышение приоритета при нехватке процессорного времени. Рассмотрим следующую ситуацию. Поток с приоритетом 7 постоянно вытесняет поток с приоритетом 4, не давая ему использовать процессор. Поток с приоритетом 11 ожидает какой-либо ресурс, забло-кированный потоком с приоритетом 4. Windows выполняет следующее.

Раз в секунду Windows сканирует очередь готовых потоков и ищет потоки, которые находятся в состоянии готовности более 300 тактов системного таймера, то есть 3-4 секунды. Обнаружив такой поток, Windows повышает его приоритет до 15, а Windows 2000 предоставляет ещё двойной квант времени. По истечению предоставленного кванта приоритет потока уменьшается до исходного уровня. Такая система имеет следующие ограничения.

· Windows сканирует только 16 готовых потоков. Если потоков, готовых к выполнению больше 16, то Windows запоминает тот поток, перед которым остановилась и в следующий раз продолжает сканирование именно с него.

· Windows повышает приоритет до 15 не более, чем у 10 потоков за один проход. Если обнаружится 10 таких потоков, то остальные 6 не сканируются.

20. Синхронизация процессов и потоков. Объекты синхронизации. Синхронизация потоков без использования объектов синхронизации





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



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