Иллюстрированный самоучитель по программированию систем защиты

Система приоритетов

Windows NT имеет двухуровневую модель приоритетов (см. рис. 4).

  • Приоритеты высшего уровня (уровни запросов прерываний – Interrupt ReQuest LevelIRQL) управляются аппаратными и программными прерываниями.
  • Приоритеты низшего уровня (приоритеты планирования) управляются планировщиком.

Иллюстрированный самоучитель по программированию систем защиты › Общая архитектура Windows NT › Система приоритетов
Рис. 4. Система приоритетов

Уровни запросов прерываний (IRQL)

В любое время исполняющийся код будет иметь определенный уровень IRQL. Этот уровень определяет, что позволено делать коду, применяется ли к коду механизм квантования времени планировщика и каковы его взаимосвязи с другими потоками исполнения.

Наивысшие из уровней IRQL – уровни запросов прерываний устройств (Device Interrupt Request LevelsDIRQLs). Это уровни IRQL, соответствующие аппаратным прерываниям. Другие уровни IRQL реализованы программно.

Уровень IRQL прерывания контролирует то, когда прерывание может быть обработано. Прерывание никогда не будет обработано, пока процессор занят обработкой прерывания более высокого уровня. Уровни IRQL располагаются в порядке убывания от HIGH_LEVEL до PASSIVE_LEVEL.. Уровни в подмножестве от HIGH_LEVEL до APC_LEVEL называют повышенными (elevated IRQLs). DISPATCH_LEVEL и APC_LEVEL реализованы программно.

Модель приоритетов низшего уровня управляет исполнением потоков, выполняющихся на уровне IRQL PASSIVEJLEVEL. Этот уровень контролируется планировщиком (scheduler) (его также называют диспетчеромdispatcher), который планирует исполнение потоков (но не процессов). Планировщик планирует исполнение прикладных и системных потоков, используя для наблюдения и контроля исполнения потоков системные часы.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.