rdfs:comment
| - Interrupt Request Level (IRQL) とは、コンピュータハードウェアによるすべての割り込み要求に与えられる優先度のことである。たとえばもしハードディスクドライブが割り込み要求を発生させ、USBプリンタといったほかのデバイスも割り込み要求を発生させると、2つの割り込みは同時に処理することができない。IRQLはどの割り込みをはじめに処理するかを決めるのに使われる。この例でいえば、ハードディスクドライブの割り込みはプリンタよりも高い優先度を必要とする。 IRQLの優先度を高くする基準はオペレーティングシステムにより決定され、重要なデバイスに高い優先度を割り当てる。たとえば、ゲームパッドとハードディスクドライブが同時に割り込み要求を発生させると、ハードディスクドライブはオペレーティングシステムやアプリケーションソフトウェアに必要な情報を含んでいるので、オペレーティングシステムはハードディスクドライブにより高い優先度を割り当てる。もしもハードディスクドライブの要求が遅れてしまえば、多くのアプリケーションソフトウェアやオペレーティングシステムの動作が遅くなってしまう。 (ja)
- IRQL是Interrupt Request Level的缩写,即中断请求级别。是Windows操作系统使用的处理器中断级别。 (zh)
- An Interrupt Request Level (IRQL) is a hardware-independent means with which Windows prioritizes interrupts that come from the system's processors. On processor architectures on which Windows runs, hardware generates signals that are sent to an interrupt controller. The interrupt controller sends an interrupt request (or IRQ) to the CPU with a certain priority level, and the CPU sets a mask that causes any other interrupts with a lower priority to be put into a pending state, until the CPU releases control back to the interrupt controller. If a signal comes in at a higher priority, then the current interrupt will be put into a pending state; the CPU sets the interrupt mask to the priority and places any interrupts with a lower priority into a pending state until the CPU finishes handling t (en)
- IRQL (англ. Interrupt Request Level) — букв. «уровень запроса прерывания». Механизм программно-аппаратной приоритизации, применяемый для синхронизации в операционных системах семейства Windows NT. IRQL является программным атрибутом (из-за того, что не поддерживается аппаратно) процессора и указывает приоритет кода, исполняющегося на этом процессоре по отношению к прерываниям и другим асинхронным событиям. Для аппаратных прерываний в большинстве случаев IRQL реализуется аппаратно (пример: понятие приоритета прерывания в контроллере i8259A или приоритет задачи, указываемый в регистре TPR в APIC), однако код операционной системы сам может логически находиться на разных приоритетах, в таком случае дополнительные уровни IRQL реализуются программно.Например, приоритет планировщика потоков или D (ru)
- IRQL (англ. Interrupt Request Level — рівень запиту переривання) — механізм програмно-апаратної пріоритезації, що застосовується для синхронізації в операційних системах сімейства Windows NT. IRQL є програмним атрибутом (через те, що не підтримується апаратно) процесора та вказує пріоритет коду, що виконується на цьому процесорі відносно переривань та інших асинхронних подій. Для апаратних переривань, у більшості випадків, IRQL реалізується апаратно (приклад: поняття пріоритету переривання в контролері i8259A чи пріоритет завдання, що вказується в регістрі TPR в APIC), проте, код операційної системи сам може логічно перебувати на різних пріоритетах, у такому випадку додаткові рівні IRQL реалізуються програмно.Наприклад, пріоритет планувальника потоків або DPC вищий за пріоритет користуваць (uk)
|
has abstract
| - An Interrupt Request Level (IRQL) is a hardware-independent means with which Windows prioritizes interrupts that come from the system's processors. On processor architectures on which Windows runs, hardware generates signals that are sent to an interrupt controller. The interrupt controller sends an interrupt request (or IRQ) to the CPU with a certain priority level, and the CPU sets a mask that causes any other interrupts with a lower priority to be put into a pending state, until the CPU releases control back to the interrupt controller. If a signal comes in at a higher priority, then the current interrupt will be put into a pending state; the CPU sets the interrupt mask to the priority and places any interrupts with a lower priority into a pending state until the CPU finishes handling the new, higher priority interrupt. Windows maps not only hardware interrupt levels to its internal interrupt table but also maps software interrupts. The mappings in this table are called Interrupt Request Levels, or IRQLs, and a separate IRQL is kept for each processor in a multiprocessor system. The IRQL values are specific to the x86, IA64 and AMD64 processor architectures that Windows can run on, though theoretically they can support other CPUs that use a similar interrupt scheme (such as the DEC Alpha and MIPS, which were supported briefly on early versions of Windows). What this essentially means is that APCs (asynchronous procedure calls), user threads and kernel mode operations can be interrupted, and the system must run them at an IRQL lower than the thread scheduler (or "dispatcher"). (en)
- Interrupt Request Level (IRQL) とは、コンピュータハードウェアによるすべての割り込み要求に与えられる優先度のことである。たとえばもしハードディスクドライブが割り込み要求を発生させ、USBプリンタといったほかのデバイスも割り込み要求を発生させると、2つの割り込みは同時に処理することができない。IRQLはどの割り込みをはじめに処理するかを決めるのに使われる。この例でいえば、ハードディスクドライブの割り込みはプリンタよりも高い優先度を必要とする。 IRQLの優先度を高くする基準はオペレーティングシステムにより決定され、重要なデバイスに高い優先度を割り当てる。たとえば、ゲームパッドとハードディスクドライブが同時に割り込み要求を発生させると、ハードディスクドライブはオペレーティングシステムやアプリケーションソフトウェアに必要な情報を含んでいるので、オペレーティングシステムはハードディスクドライブにより高い優先度を割り当てる。もしもハードディスクドライブの要求が遅れてしまえば、多くのアプリケーションソフトウェアやオペレーティングシステムの動作が遅くなってしまう。 (ja)
- 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. Следовательно, она не имеет права прерывать тот код, который вызвал ошибку страницы. В то же время привилегированный код не может продолжить выполнение, пока страница не будет загружена. Возникает логический тупик, который, собственно, и приводит к краху ОС. При выполнении кода с IRQL >= DPC/DISPATCH, любое состояние ожидания от (мьютекса, семафора), приводит к краху ОС; Когда нынешний поток входит в это состояние, планировщик потоков должен запланировать другой поток на текущем ядре процессора. Но, поскольку приоритет планировщика равен DPC/DISPATCH, он не сможет прервать работу нынешнего потока. В Linux применяются сходные механизмы. К примеру, код обработчика прерывания может быть разделен на две «половины»: top half и bottom half, «верхняя» часть эквивалентна собственно обработчику, «нижняя» — отложенной процедуре (аналог в Windows — DPC). Bottom-half-процедура может быть прервана Top-half-процедурой, но не наоборот. Таким образом, top-half и bottom-half логически эквивалентны уровням IRQL Device IRQL и DPC/DISPATCH, соответственно. (ru)
- IRQL是Interrupt Request Level的缩写,即中断请求级别。是Windows操作系统使用的处理器中断级别。 (zh)
- 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 застосовуються подібні механізми. Наприклад, код обробника переривання може бути розділено на дві «половини»: верхню та нижню, «верхня» частина еквівалентна власне обробнику, «нижня» — відкладеній процедурі (аналог у Windows — DPC). Верхня половина процедури може бути перервана нижньою, але не навпаки. Таким чином, верхня та нижня половини логічно еквівалентні рівням IRQL Device IRQL і DPC/DISPATCH відповідно. (uk)
|