Прерывание - сигнал по которому процессор должен обязательно обратить внимание на что-то.
⠀
Обработчик прерываний - предназначен для выполнения ответных действий на условия.
⠀
Если нужно найти определенный обработчик нужно обратиться к таблице векторов прерывания (ТВП). В ней хранятся адреса с местоположением программ обработки прерывания. Таблица занимает 1024 первых байт оперативной памяти. Таблица состоит из 256 элементов на каждый элемент отводиться 4 байта. В элементе (ячейки) находится указатель состоящий из двух частей:
1 - смещение(помещается в регистр IP);
2 - сегмент адреса обработчика прерываний(помещается в регистр CS).
Номер прерывания 0 - адрес находится с 0 по 3 байт, 1 - адрес находится с 4 по 7 и т.д.
⠀
Пример: Происходит приглашение (сигнал) на тусовку, от которой процессор не может отказаться. Процессор оставляет все свои дела (запоминая где он был и что делал) и начинает сборы на пати (выполняет функцию "обработчика прерываний"). После сборов он понимает, что устал и остается дома заниматься своими делами (переходит в состояние, которое было до прерывания).
⠀
Рассмотрим со стороны вычислительной машины:
Работает программа и тут поступает сигнал. Программа отдает управление процессору. Он сохраняет текущее состояние и находит адрес в ТВП. После определения обработчика прерывания процессор передает управление ему. После окончания работы, обработчик отдает управление процессору, а он программе, которая выполнялась до этого.
⠀
Прерывания разделяются на виды от источника возникновения:
⠀
- Внешний(аппаратный) - происходят из внешних аппаратных устройств и могут произойти в любое время;
- Внутренние - события в самом процессоре (результат нарушения при исполнении машинного кода);
- Программные - происходят с исполнением кусочка кода в программе.