Система обработки внешних прерываний в современных компьютерных архитектурах устроена следующим образом: 3
- Каждое устройство, в котором произошло событие (процессор, оперативная память, устройство ввода/вывода), генерирует особый сигнал прерывания (Interrupt Request) — электрический импульс. 2 Этот сигнал приходит на специальную электронную схему процессора — контроллер прерываний. 2
- Сигнал прерывания, связанный с каждым из событий, обычно имеет свой номер, чтобы процессор мог отличить его от сигналов, связанных с другими событиями. 2
- Получив сигнал прерывания, контроллер записывает его в очередь пришедших сигналов для последующей обработки этим сигналом процессором. 2
- Процессор автоматически предпринимает некоторые действия, которые называются аппаратной реакцией на этот сигнал. 2
- Если в очереди стоят несколько сигналов прерывания, процессор выбирает на обработку наиболее приоритетный из них. 2
- Обработчик прерывания, как правило, разбит на 2 части. 4 Верхняя часть выполняет только тот минимальный набор операций, который необходим, чтобы передать управление дальше. 4 Этот набор включает подтверждение прерывания, точное определение устройства, от которого пришло прерывание, и другие действия. 4
- Процедура нижней части обработчика выполняет копирование данных из буфера устройства в память. 4
- После выполнения всех необходимых действий процедура-обработчик включает (разрешает) внешние прерывания. 2 Далее производится полная программная реакция на прерывания, то есть процедура-обработчик выполняет все необходимые действия, связанные с происшедшим событием. 2
Реакция на сигнал прерывания зависит от архитектуры конкретного компьютера. 2