Уровень приоритета прерывания (IPL ) является частью текущей системы состояние прерывания, которое указывает на запросы прерывания, которые в настоящее время будут приняты. IPL может указываться аппаратно регистрами в программируемом контроллере прерываний или программно битовой маской или целочисленным значением и исходным кодом потоков
IPL на основе целых чисел может иметь размер всего одного бита и иметь всего два значения: 0 (все прерывания разрешены) или 1 (все прерывания запрещены), как в MOS Technology 6502. Однако некоторые архитектуры допускают больший диапазон значений, где каждое значение разрешает запросы прерывания, которые определяют более высокий уровень, и блокируют запросы с того же или более низкого уровня.
Назначение разных приоритетов запросам прерывания может быть полезно при попытке сбалансировать пропускную способность системы и прерывание задержка : на некоторые виды прерываний нужно реагировать быстрее, чем на другие, но объем обработки может быть небольшим, поэтому имеет смысл назначить прерываниям такого типа более высокий приоритет.
Контроль уровня прерывания также использовался для синхронизации доступа к структурам данных ядра. Таким образом, обработчик прерывания планировщика уровня 3 временно повысит IPL до 7 перед доступом к любым фактическим структурам данных планировщика, затем снизится до 3 перед фактическим переключением контекстов процесса. Однако обработчику прерывания не разрешалось понижать IPL ниже того, при котором он был введен, поскольку это могло нарушить целостность системы синхронизации.
Конечно, многопроцессорные системы добавляют свои сложности, которые здесь не рассматриваются.
Независимо от того, что может поддерживать оборудование, типичные системы типа UNIX используют только два уровня: минимальный (все прерывания отключены) и максимальный (все прерывания разрешены).
В качестве примера одной из наиболее сложных систем обработки IPL, когда-либо развернутых, компьютер VAX и соответствующая операционная система VMS поддерживает 32 уровня приоритета, от 0 до 31. Приоритеты 16 и выше предназначены для запросов от внешнего оборудования, а значения ниже 16 доступны для программных прерываний (используются внутри операционной системы для планирования своих собственных действий). На самом деле используются не все значения, но вот некоторые из наиболее важных:
Alpha аппаратное обеспечение содержит встроенную поддержку IPL. Когда OpenVMS был перенесен на Itanium в 2001 году, схема IPL моделировалась с использованием функций, предоставляемых аппаратным обеспечением Itanium.