Прерывание — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания, который выполняет работу по обработке события и возвращает управление в прерванный код. Бывают прерывания аппаратные и программные в зависимости от того, аппаратура или программа инициирует прерывание.
В простейшем случае для реализации прерываний необходимо к имеющимся шинам локальной магистрали добавить еще одну линию, соединяющую процессор и устройства ввода-вывода – линию прерываний. По завершении выполнения операции внешнее устройство выставляет на эту линию специальный сигнал, по которому процессор после выполнения очередной команды (или витка цикла) изменяет свое поведение. Вместо выполнения очередной команды из потока команд он частично сохраняет содержимое своих регистров и переходит на выполнение соответствующей программы обработки прерывания. При наличии только одной линии прерываний процессор при выполнении этой программы должен опросить состояние всех устройств ввода-вывода (режим polling), чтобы определить, от какого именно устройства пришло прерывание, выполнить необходимые действия (например, вывести в это устройство очередную порцию информации или перевести соответствующий процесс из состояния ожидание в состояние готовность) и сообщить устройству, что прерывание обработано (снять прерывание).
Так как режим опроса снижает быстродействие, то взаимодействие устройства с процессором осуществляют не прямым опросом, а через специальный контроллер прерываний, и не через одну линию, а через шину прерываний. При этом каждому устройству присваивается свой номер прерывания, который обычно служит индексом в специальной таблице прерываний, содержащей адреса программ обработки прерываний. От каждого устройства (или от группы устройств) к контроллеру прерываний идет специальная линия, соответствующая одному номеру прерывания.
Имеются команды ОС при выполнении которых прерывания должны быть запрещены. Для этого существуют специальные команды, которые могут маскировать все или некоторые из прерываний устройств ввода-вывода. В то же время имеются немаскируемые прерывания (например, неустранимый сбой в работе оперативной памяти), которые поступают в процессор по специальной линии немаскируемых прерываний.
Прерывания различаются по приоритетам. Обычно реализуется режим с абсолютными приоритетами.
Список литературы
1. Основы операционных систем / Интернет университет информационных технологий. — http://metod.ce.cctpu.edu.ru/edu/os/1/1.html