В работе компьютера часто возникают ситуации, когда процессору необходимо отложить на время выполнение основной программы и обработать нажатие клавиши на клавиатуре, щелчок кнопкой мыши или другое событие, возникшее в одном из устройств.
Для реализации этой задачи во всех компьютерах используют механизм прерываний. Прерывание (INT) — это приостановка процессором выполнения основной программы для обработки события, поступившего от внешнего устройства. В общем случае обработка прерывания происходит следующим образом:
- когда возникает ситуация, требующая вмешательства процессора (например, была нажата клавиша), устройство посылает специальный сигнал — запрос на прерывание (IRQ);
- запрос на прерывание обрабатывается контроллером прерываний, после чего передается процессору;
- процессор, получив запрос на прерывание, приостанавливает выполнение основной программы, сохраняет в оперативной памяти текущее состояние своих регистров и запускает подпрограмму обработки данного прерывания;
- завершив обработку прерывания, процессор восстанавливает из памяти свое исходное состояние и продолжает выполнять основную программу.
Прерывания могут накладываться друг на друга, и если во время обработки одного прерывания возникнет другое с более высоким приоритетом, то выполнение текущего будет приостановлено, и процессор перейдет к более важному.
Процессор может обрабатывать тысячи прерываний в секунду, но пользователи не замечают этого, поскольку скорость его работы достаточно высока.