Взаимный приоритет внутренних прерываний следующий:
Внешние прерывания связаны с запросами на обслуживание от устройств, подключенных к Каналу. Их приоритет ниже, чем приоритет внутренних прерываний, и они могут быть замаскированы несколькими приемами:
полное маскирование — с помощью запрета прерываний в регистре состояния устройства или установкой приоритета процессора (разряды 5... 7 РСП) выше приоритета внешнего устройства (в микроЭВМ, кроме «Электроника 60-1», маска I/O);
частичное прерывание — отсрочкой полной обработки прерывания за счет перевода обработчика в режим программного прерывания (только в «Электронике 79»).
Внешние устройства подключаются к одной линии запроса прерывания (в микроЭВМ) или к одной из четырех линий запроса, имеющих различный приоритет. Программа имеет возможность замаскировать либо отдельное устройство (с помощью запрета в регистре состояния), либо все устройства, подключенные к данной линии и линиям меньшего приоритета. Такая система маскировки является весьма гибкой.
В ЭВМ «Электроника 79» введена отсроченная обработка прерываний (частичное маскирование). При этом прерывание частично обрабатывается. Полная обработка производится, если приоритет программы обработки выше приоритета, который имел процессор в момент прерывания, в противном случае она откладывается до момента, когда приоритет процессора станет ниже приоритета программы-обработчика, находящейся в состоянии ожидания. Снижение приоритета процессора ниже приоритета обработчика вызовет программное прерывание, и управление автоматически передается обработчику программных прерываний, который в свою очередь передает управление тому из ожидающих обработчиков, чей приоритет выше.
Таким образом, введен новый тип прерываний — программные прерывания и новый тип приоритета — приоритет программы-обработчика, реализуемый аппаратно. Это оригинальное средство регулирования обработки прерываний более гибкое, чем полное маскирование: оно запрещает или разрешает обработку прерывания по частям. Следует заметить, что приоритет программы-обработчика никак не связан с диспетчерским приоритетом, который в мультипрограммных операционных системах присваивается процессам, или с приоритетом FORK-программ (гл. 3). Диспетчерский приоритет учитывается регулировщиком процессов при принятии решения, какому из процессов передать управление; передача управления осуществляется затем на программном уровне.
Передача управления программе-обработчику происходит на аппаратном уровне, лишь только аппаратный приоритет процессора уменьшается в достаточной степени. Приоритет программы обработчика, подобно приоритету процессора, изменяется в диапазоне 0... 7. Соответствие между приоритетом процессора и уровнями маскируемых данных приоритетом объектов (приоритетом программы-обработчика и уровнем линии прерывания Канала) показано на рис. 1.5. В микроЭВМ, кроме «Электроника 60-1», есть только одна линия прерывания и один разряд в РСП, маскирующий эту линию; в мини-ЭВМ четыре линии прерывания от устройства, в ЭВМ «Электроника 79» — семь уровней (приоритетов) программных прерываний.