Понятие прерывания. Классы прерываний.
Во время выполнения программы внутри ЭВМ и во внешней среде могут возникать события, требующие немедленной реакции на них со стороны машины. Реакция состоит в том, что машина прерывает обработку текущей программы и переходит к выполнению некоторой другой программы, специально предназначенной для данного события. По завершении этой программы ЭВМ возвращается к выполнению прерванной программы. Такой процесс называется прерыванием.
Прерывание – реакция на входной сигнал запроса прерывания или команду прерывания.
Принципиально важным является то, что моменты возникновения событий, требующих прерывания программ, заранее неизвестны и поэтому не могут быть учтены при программировании.
Прерывания бывают:
- внешние;
- внутренние;
- программные.
Внешние (аппаратные) – прерывания могут возникать в результате действий пользователя или в результате поступления сигналов от аппаратных устройств (например, сигналов завершения ввода-вывода от принтера или винчестера). Такие прерывания возникают между выполнением двух команд программы.
Внутренние – происходят в случае возникновения программной ошибки или сбоя, после которого нельзя продолжить выполнение программы, например, деление на ноль, обращение по несуществующему адресу памяти. Возникают при выполнении команд программы.
Программные прерывания возникают при выполнении особой команды процессора, имитирующей прерывание. То есть после этой команды происходит переход на новую последовательность команд.
Прерывание работы МП по запросу внешних устройств устраняет необходимость выполнения МП неэффективных операций по проверке готовности внешних устройств к обмену данными и снижает затраты времени на ожидание готовности периферийного устройства к обмену. Прерывания необходимы при обмене данными с большим числом асинхронно работающих внешних устройств.
Каждое событие, требующее прерывания, сопровождается сигналом, оповещающим об этом событии ЭВМ, который называется запросом прерывания. Программу, затребованную запросом прерывания, называют прерывающей программой, а программу, выполнявшуюся до появления запроса, - прерываемой программой.
В сущности, запросы прерывания поступают от нескольких параллельно развивающихся во времени процессов, требующих в произвольные моменты времени обслуживания со стороны процессора. К этим процессам относится выполнение основной программы, контроль правильности работы ЭВМ, операции ввода-вывода и т.п.
Система прерываний позволяет значительно эффективнее использовать процессор при наличии нескольких протекающих параллельно во времени процессов.
Для эффективной реализации системы прерываний ЭВМ снабжается соответствующими аппаратными и программными средствами, совокупность которых называется контроллером прерываний.
Порядок обработки прерывания
Основными функциями системы прерываний являются:
· запоминание состояния прерываемой программы;
· осуществление перехода к прерывающей программе;
· восстановление состояния прерванной программы;
· возврат к прерванной программе.
Обычно прерывание допускается после завершения выполнения текущей команды. В этом случае время реакции определяется в основном временем выполнения одной команды.
Это время реакции может оказаться недопустимо большим для ЭВМ, работающих в реальном масштабе времени. В таких машинах часто допускается прерывание после любого такта выполнения команды. Однако при этом возрастает количество информации, подлежащей запоминанию и восстановлению при переключении программ, так как в этом случае необходимо сохранять состояния счетчика тактов, регистра кода операции и некоторые другие в момент прерывания.
Дата добавления: 2016-02-09; просмотров: 3130;