Обработка прерываний
Важную роль в работе современного МП играют прерывания. Они нарушают естественный ход выполнения программы для осуществления неотложных действий, связанных например с реакцией на щелчок мыши или сбой в цепи электропитания.
Прерывание - временный останов выполнения одной программы в целях оперативного выполнения другой, в данный момент более важной (приоритетной) программы. Это процедуры, которые процессор вызывает для выполнения определенной задачи.
Прерывания возникают при работе компьютера постоянно [4]. Достаточно сказать, что все процедуры ввода-вывода информации выполняются по прерываниям,
Контроллер прерываний обслуживает процедуры прерывания, принимает запрос на прерывание от внешних устройств, определяет уровень приоритета этого запроса и выдает сигнал прерывания в МП. МП, получив этот сигнал, приостанавливает выполнение текущей программы и переходит к выполнению специальной программы обслуживания того прерывания, которое запросило внешнее устройство. После завершения программы обслуживания восстанавливается выполнение прерванной программы. Контроллер прерываний является программируемым
События, вызывающие прерывания можно разделить на фатальные и нефатальные. На фатальные (неотвратимо наступающие) процессро может реагировать единственным образом: прекратить исполнение программы, проанализировать событие и принять соответствующие меры (чаще всего сообщить причину прерывания пользователю и ждать его реакции.) Однако часто можно с остановкой программы повременить: запомнить, что прерывание было и продолжить исполнять программу. Например сложение с переполнением разрядной сетки – фатальное, остановка неизбежна, а попытка вывода на принтер, не готовый к приему информации, может быть отложена (с сохранением этой информации).
Прерывания делятся на :
1. аппаратные – инициируются аппаратурой, например сигналом от принтера, нажатием клавиши на клавиатуре и т.п.
2. логические – возникают при нестандартных ситуациях в работе МП (например переполнение регистров, деление на ноль)
3. программные – инициируются программами, то есть появляются когда одна программа хочет получить сервис от другой, например доступ к определенным аппаратным средствам.
Каждое прерывание имеет уникальный номер и с ним связана определенная подпрограмма. Для IBM совместимых ПК существует команда прерывания INT с разными номерами. INT – это одна из инструкций процессора.
Аппаратные прерывания возникают аппаратно и не требуют каких-либо команд в тексте прерываемой программы. Прерывание вообще может произойти между двумя командами программы.
Схема обработки прерываний:
Вызывается прерывание |
Процессор оставляет свою работу |
Выполняет прерывание |
Загружается адрес программы обработки прерывания |
Ей передается управление |
Возврат к основной программе |
Аппаратные прерывания - низшего уровня, их обслуживает BIOS.
Программные и логические – обрабатываются операционной системой (верхний уровень).
[1] Синий Брукшир
Дата добавления: 2017-09-19; просмотров: 1018;