Как работает прерывание в компьютере

Организация прерываний в компьютерах IRQ

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

Недостатком метода опроса является неэффективное использование процессорного времени, поскольку, осуществляя опрос, ЦП не делает ничего другого. Процессорное время, в частности, теряется тогда, когда большая часть устройств ввода-вывода не требует частого обслуживания. Метод прерываний заключается в том, что обслуживание выполняется по запросам. Это похоже на работу почты: если клиент хочет что-то купить, он посылает запрос по почте. Для ЦП запрос прерывания является неожиданным событием, поскольку он может появиться в любое время, что порождает неопределенность в системе, однако этот метод дает возможность эффективно использовать процессорное время.

Прерывание — это процесс обработки неожиданных событий, происходящих внутри или вне вычислительной системы. Например, внутреннее прерывание вызывается, если в системе происходит переполнение в арифметико-логическом устройстве (АЛУ), сброс питания или выполнение неверной инструкции. Внешние прерывания относятся обычно к событиям, сигнализирующим о возникновении определенных условий.