logo
ZH ос 20 вопр 36 стр

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

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

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

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

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

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

WaitForSingleObject(…)

WaitForMultipleObject(…)

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

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

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

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

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

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

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

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

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