В зависимости от источника возникновения сигнала прерывания делятся на:
· асинхронные или внешние (аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: нажатие клавиш клавиатуры, движение мыши;
· внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение;
· программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы.
Вектор прерывания — закреплённый за устройством номер, который идентифицирует соответствующий обработчик прерываний. Векторы прерываний объединяются в таблицу векторов прерываний, содержащую адреса обработчиков прерываний. Местоположение таблицы зависит от типа и режима работы процессора.
В компьютерной системе прерывание – это запуск специальной подпрограммы (называемой «обработчиком прерывания» или «программой обслуживания прерывания»), который вызывается сигналом аппаратуры. На время выполнения этой подпрограммы реализация текущей программы останавливается. Термин «запрос на прерывание» (interrupt request) используется потому, что иногда программа отказывается подтвердить прерывание и выполнить обработчик прерывания немедленно.
Обработчик прерывания всегда обеспечивает следующую последовательность действий:
1. Сохранить содержимое регистров контекста.
2. Сбросить контроллер прерываний и оборудование, вызвавшее запрос.
3. Обработать данные.
4. Восстановить содержимое регистров контекста.
5. Вернуться к прерванной программе.