IRQL

IRQL

IRQL (англ. Interrupt ReQuest Level) — букв. уровень запроса прерывания. Механизм программно-аппаратной приоритизации, применяемый для синхронизации в операционных системах семейства Windows NT.

IRQL является программным атрибутом (из-за того, что не поддерживается аппаратно) процессора и указывает приоритет кода, исполняющегося на этом процессоре по отношению к прерываниям и другим асинхронным событиям. Для аппаратных прерываний, в большинстве случаев, IRQL реализуется аппаратно (пример: понятие приоритета прерывания в контроллере i8259A или приоритет задачи, указываемый в регистре TPR в APIC), однако код операционной системы сам может логически находиться на разных приоритетах, в таком случае дополнительные уровни IRQL реализуются программно. Например, приоритет планировщика потоков или DPC выше, чем приоритет пользовательских потоков. Если бы это было не так, тогда потоки могли бы вытеснить планировщик и тем самым «отключить» вытесняющую многозадачность, в свою очередь планировщик может быть сделан прерываемым аппаратными прерываниями. В Windows NT применяется 32 уровня IRQL (в скобках указано числовое значение):

  • High (31)
  • Power fail (30)
  • IPI (29)
  • Clock (28)
  • Profile (27)
  • Диапазон аппаратных прерываний, называемых Devices IRQL/DIRQL (от 26 до 3)
  • DPC/DISPATCH (2)
  • APC (1)
  • PASSIVE (0)

Это означает, например, что планировщик (работающий на уровне DPC/DISPATCH) может быть прерван аппаратными прерываниями, межпроцессорными прерываниями (IPI) и т. д., но не может быть прерван асинхронными процедурами (APC) и обычными потоками, работающими на уровне PASSIVE. Межпроцессорные прерывания IPI могут быть прерваны сбоем электропитания (прерывание на уровне Power fail), но не могут быть прерваны обычными аппаратными прерываниями от устройств и т. д.

Также IRQL помогает отслеживать и выявлять логические ошибки при проектировании ОС. Легендарная ошибка с сообщением IRQL_NOT_LESS_OR_EQUAL означает следующую ситуацию: драйвер или другой привилегированный код с IRQL >= DPC/DISPATCH обратился к отсутствующей в памяти странице, требуется вызов подсистемы, подгружающей страницы с диска, однако эта подсистема в соответствии с архитектурой Windows NT имеет IRQL меньше, чем DPC/DISPATCH. Следовательно, она не имеет права прерывать тот код, который вызвал ошибку страницы. В то же время привилегированный код не может продолжить выполнение, пока страница не будет загружена. Возникает логический тупик, который, собственно, и приводит к краху ОС.

В Linux применяются сходные механизмы. К примеру код обработчика прерывания может быть разделен на две «половины»: top half и bottom half, «верхняя» часть эквивалентна собственно обработчику, «нижняя» — отложенной процедуре (аналог в Windows — DPC). Bottom-half-процедура может быть прервана Top-half-процедурой, но не наоборот. Таким образом, top-half и bottom-half логически эквивалентны уровням IRQL Device IRQL и DPC/DISPATCH соответственно.

Источники



Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "IRQL" в других словарях:

  • IRQL — Interrupt Request Level (Computing » Drivers) …   Abbreviations dictionary

  • IRQL — comp. abbr. Interrupt Request Level …   United dictionary of abbreviations and acronyms

  • Deferred Procedure Call — A Deferred Procedure Call (DPC) is a Microsoft Windows operating system mechanism which allows high priority tasks (e.g. an interrupt handler) to defer required but lower priority tasks for later execution. This permits device drivers and other… …   Wikipedia

  • DPC — (англ. Deferred procedure call  отложенный вызов процедуры)  специфический механизм вызова процедур в архитектуре Windows. Содержание 1 Суть DPC 2 Управление DPC 3 …   Википедия

  • irqçilik — is. «Yüksək» və «aşağı», «kamil» və «qeyri kamil» insan irqləri olması fikrinə əsaslanan ifrat mürtəce, elmə zidd nəzəriyyə və siyasət; irqlər (xalqlar) arasında nifaq və ədavət salma. İrqçilik siyasəti …   Azərbaycan dilinin izahlı lüğəti

  • Interrupt request — IRQ redirects here. For the country with the ISO 3166 1 country code, see Iraq. The computing phrase interrupt request (or IRQ) is used to refer to either the act of interrupting the bus lines used to signal an interrupt, or the interrupt input… …   Wikipedia

  • Inter-processor interrupt — An inter processor interrupt (IPI) is a special type of interrupt by which one processor may interrupt another processor in a multiprocessor system. IPIs are typically used to implement a cache coherency synchronization point.In a Windows based… …   Wikipedia

  • Abreviations en informatique I — Abréviations en informatique I i18n : internationalisation (de logiciel) x86 : Intel Corporation Architecture x86 microprocessor Familly IA 32 : Intel Corporation Architecture 32 bit microprocessor IA 64 : Intel Corporation… …   Wikipédia en Français

  • Abréviations En Informatique I — i18n : internationalisation (de logiciel) x86 : Intel Corporation Architecture x86 microprocessor Familly IA 32 : Intel Corporation Architecture 32 bit microprocessor IA 64 : Intel Corporation Architecture 64 bit… …   Wikipédia en Français

  • Abréviations en informatique I — i18n : internationalisation (de logiciel) x86 : Intel Corporation Architecture x86 microprocessor Familly IA 32 : Intel Corporation Architecture 32 bit microprocessor IA 64 : Intel Corporation Architecture 64 bit… …   Wikipédia en Français


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»