Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

19.Прерывания. Типы и классы прерываний

..docx
Скачиваний:
128
Добавлен:
16.12.2014
Размер:
13.04 Кб
Скачать

19.Прерывания. Типы и классы прерываний.

Прерывание (англ. interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.

В зависимости от источника возникновения сигнала прерывания делятся на:

- асинхронные, или внешние (аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание (англ. Interrupt request, IRQ);

- синхронные, или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение стека, обращение к недопустимым адресам памяти или недопустимый код операции;

- программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения (firmware), драйверов и операционной системы.

Существует 6 классов прерываний.

1. Программы-прерывания по системной директиве. Инициатор - активный процесс, выполнивший обращение к супервизору, то есть запрос на предоставление ОС системной вычислительной услуги.

2. Прерывания ввода-вывода. Инициируются устройством ввода/вывода (УВВ) и сигнализируют ЦП о том, что произошло изменение состояния канала ввода-вывода (КВВ) или УВВ (например: завершение операции, ошибка, переход устройства в состояние готовности).

3. Внешние прерывания. Нажатие операторами клавиш на панели ЭВМ или прием сигнала прерывания от другого ЦП в мультипроцессорной системе, сигнала от модема.

4. Прерывание по рестарту. Нажатие оператором кнопки рестарта или Reset.

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

6. Прерывания по контролю машины из-за аппаратных ошибок прерывания упорядочены по приоритетам. Определенный тип прерываний запрещает свой тип и младшие и разрешает старшие. ЦП реагирует только на разрешенные прерывания, обработка запрещенных прерываний либо задерживается, либо, в некоторых случаях, игнорируется.