Организация процессоров
Фактически эти прерывания являются вызовом подпрограмм, но – заранее подготовленных и не являющихся частью основной программы.
3. Внутренние прерывания (исключения – exceptions), генерируемые процессором как реакция на ошибки, например, на попытку деления на 0 или обращения программы к запрещенной для нее области памяти. Исключения помогают обработать ошибку (средствами самой программы или операционной системы).
Основные этапы выполнения прерываний :
1. Запоминание состояния прерываемой программы.
2. Определение адреса подпрограммы-обработчика прерывания (вектора прерывания).
3. Переход к выполнению подпрограммы обработки прерывания.
4. Восстановление состояния прерванной программы и возврат к ней.
Важной задачей системы прерываний является определение вектора прерываний, для чего необходимо распознать источник прерываний. Это выполняется в самом процессоре, либо – с помощью специального устройства – контроллера прерываний. На контроллер прерываний может также возагаться задача управления приоритетами в соответствии с заданными программой установками.
При сохранении состояния прерываемой программы необходимо сохранить содержимое регистров процессора, состояние флагов, конвейеров процессора, состояние системы защиты памяти, различную служебную информацию и т.д.
Сохранение состояния прерываемой программы чаще всего происходит в стеке системы, поэтому зачастую количество прерывающих друг друга прерываний ограничено размером свободной части стека.
Характеристики системы прерываний:
1. Общее число возможных запросов.
2. Число уровней или классов прерываний.
3. Глубина прерываний – максимальное количество запросов, которые могут прерывать друг друга.
4. Время реакции системы прерываний – время от формирования запроса до начала выполнения подпрограммы обслуживания прерывания.
5. Эффективность системы прерываний – отношение времени выполнения п/п обработчика прерывания к общему времени, затрачиваемому на прерывание (складывается из времени реакции, времени выполнения п/п обработчика и времени восстановления).
|