Программирование драйверов Windows


Приоритеты выполнения программного кода - часть 2


/p>

В приведенной схеме значения IQRL аппаратных прерываний лежат в интервале выше DISPATCH_LEVEL и ниже PROFILE_LEVEL. Эти уровни еще встречаются в литературе под названием 'device IRQL', DIRQL &#8212 уровни IRQL устройств. Уровни выше PASSIVE_LEVEL называются повышенными (elevated IRQLs). Программные потоки, работающие на повышенных уровнях, могут быть вытеснены только потоками с более высоким уровнем IRQL. Такой способ работы с потоками называется в литературе dispatching, диспетчеризация.

Потоки, работающие на уровне PASSIVE_LEVEL, попадают под управление планировщика заданий (sheduler). Приоритеты, которые различает планировщик заданий для потоков с уровнем PASSIVE_LEVEL, принимают значения от 0 до 32 (MAXIMUM_PRIORITY) и называются в ряде источников 'приоритетом планирования'

(sheduler priority, 'приоритет планировщика').

Между потоками PASSIVE_LEVEL, имеющими приоритеты планирования Real-Time и Normal имеется существенное различие. Первые продолжают свою работу до тех пор, пока не появится поток с большим приоритетом, так что потоки низких приоритетов должны дожидаться, пока текущий поток RealTime не завершит работу естественным путем. Потоки с приоритетами Normal планируются по другим правилам. Для работы им выделяется определенный квант времени, после чего управление передается другим потокам такого же приоритета. Время от времени планировщик может повышать приоритет отложенного потока в пределах диапазона Normal, в результате чего все программные потоки среди потоков этой группы, даже имеющие самые низкие приоритеты, рано или поздно получают управление.

Таблица 6.2. Приоритеты планирования для потоков уровня PASSIVE_LEVEL IRQL

Приоритеты Наименование Назначение
RealTime

(Приоритеты реального

времени)

HIGH_PRIORITY (31)

:

Приоритеты системных программных потоков (программного кода режима ядра)
:

LOW_REALTIME_PRIORITY (16)

 
Normal

(Динамические приоритеты)

Normal maximum (15)

:

Приоритеты потоков пользовательских приложений
:

Normal Idle (1)

 
LOW_PRIORITY (0) Системный поток обнуления страничной памяти
<


Начало  Назад  Вперед



Книжный магазин