русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-23; просмотров: 2177; Нарушение авторских прав


Поток простоя.

Сценарий планирования.

1) Самостоятельное переключение потока

2) Вытеснение потоков

3) Завершение кванта времени

4) Завершение потока

 

Лекция № 12.

 

1) Самостоятельное переключение потока. Поток может самостоятельно освободить процессор, перейдя в состояние ожидания.

WaitForSingleObject(…)

WaitForMultipleObject(…)

Подключается любой поток очереди. После завершения ожидания происходит следующее.

а) если этот поток находится в динамическом диапазоне (от 0 до 15), то квант потока уменьшается на одну квантовую единицу, что эквивалентно 1/3 таймера.

б) если это не Windows 2000 и если это поток из диапазона RealTime (16 – 31), то потоку передаётся полный квант времени.

2) Вытеснение. Поток с более низким приоритетом вытесняется потоком с более высоким приоритетом. Такая ситуация возможна в двух случаях:

а) Завершилось ожидание потока с более высоким приоритетом, то есть произошло событие, которое он ждал.

б) Приоритет потока увеличился или уменьшился.

Потоки пользовательского режима могут вытеснять потоки ядра. Когда поток вытесняется, он помещается в начало очереди потока. Если это Windows 2000 и поток динамического диапазона, то ему будет представлен не полный квант, а остаток кванта.

3) Завершение кванта времени. Когда поток израсходует свой квант Windows снижает его динамический приоритет. Windows ставит его в конец очереди с соответствующим уровнем приоритета.

4) Завершение потока. При завершении потока ОС просматривает значение счётчика ссылок равеных 0. Регионы адресного пространства освобождаются.

TDB

 
 

 


 

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



 

 

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 не сканируются.

 



<== предыдущая лекция | следующая лекция ==>
Учёт квантов времени. | Мультипроцессорной системой (SMP).


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.