Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указ. по выпон. контр. р. по Опера...doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

Прерывания. Обработка прерываний

Прерывания – специфические сигналы, посылаемые процессору устройством или программой, когда требуется немедленное вмешательство.

П рерыванием называется ситуация, приводящая к временному или окончательному прекращению выполнения последовательности команд одной программы и переходу к выполнению команд другой программы.

Классификация: В зависимости от источника прерывания делятся на три больших класса:

  • Внешние (аппаратные);

  • внутренние

  • программные

Внешние прерывания могут возникать в результате действий пользователя или оператора за терминалом, или же в результате поступления сигналов от аппаратных устройств.

Для внешних прерываний характерны следующие особенности:

  • Внешнее прерывание обнаруживается процессором между выполнением команд (или между итерациями в случае выполнения цепочечных команд).

  • Процессор при переходе на обработку прерывания сохраняет часть своего состояния перед выполнением следующей команды.

  • Прерывания происходят асинхронно с работой процессора и непредсказуемо, программист ни коим образом не может предугадать, в каком именно месте работы программы произойдет прерывание.

Внутренние прерывания, называемые также исключениями (exception), происходят синхронно выполнению программы при появлении аварийной ситуации в ходе исполнения некоторой инструкции программы. Примерами исключений являются деление на нуль, ошибки защиты памяти, обращения по несуществующему адресу, попытка выполнить привилегированную инструкцию в пользовательском режиме и т. п.

  • Исключительные ситуации обнаруживаются процессором во время выполнения команд.

  • Процессор при переходе на выполнение исключительной ситуации сохраняет часть своего состояния перед выполнением текущей команды.

  • Исключительные ситуации возникают синхронно с работой процессора, но непредсказуемо для программиста, если только тот специально не заставил процессор делить некоторое число на ноль.

Исключительные ситуации можно разделить на исправимые и неисправимые. К исправимым относятся такие исключительные ситуации, как отсутствие нужной информации в оперативной памяти.

Неисправимые исключительные ситуации обычно возникают в результате ошибок в программах. Обычно операционная система реагирует на такие ситуации завершением программы, вызвавшей исключительную ситуацию.

Программное прерывание возникает при выполнении особой команды процессора, выполнение которой имитирует прерывание, то есть переход на новую последовательность инструкций. Программные прерывания – это удобный способ вызова процедур ОС.

Программные прерывания имеют следующие свойства:

  • Программное прерывание происходит в результате выполнения специальной команды.

  • Процессор при выполнении программного прерывания сохраняет свое состояние перед выполнением следующей команды.

  • Программные прерывания, естественно, возникают синхронно с работой процессора и абсолютно предсказуемы программистом.

Принципы обработки прерываний

Суть принятого на сегодня механизма состоит в том, что каждому возможному прерыванию процессора (будь то внутреннее или внешнее прерывание) соответствует некоторый фиксированный адрес физической оперативной памяти.

Вектор прерывания -

Каждое прерывание имеет свой номер (IRQ) и с ним связана определенная подпрограмма. Когда вызывается прерывание, процессор приостанавливает свою работу и выполняет прерывание: загружает адрес программы обработки прерывания и передает ей управление, после окончание ее работы управление передается основной программе, которая была прервана. Аппаратные прерывания относятся к прерываниям низшего уровня и им присваиваются младшие номера, обслуживает их базовая система в/в. Внутренние и программные прерывания относятся к верхнему уровню, имеют большие номера и обслуживает базовый модуль.