55
ошибках аппаратуры (например, ошибка памяти, ошибка передачи по шине и т.
п.) или об аварийном отключении питания. Во втором случае иногда такие
прерывания называют исключительными ситуациями (exceptions).
Реагируя на аппаратное прерывание, процессор должен идентифицировать
его источник, сохранить минимальный контекст прерываемой программы и
переключаться на специальную программу – обработчик прерывания (interrupt
handler), который может
быть оформлен как процедура или задача.
Действия обработчика прерывания, называемые обслуживанием
прерывания, заключается в том, чтобы правильно отреагировать на прерывание
конкретного источника (например, поместить символ нажатой клавиши в буфер,
произвести инкремент системных часов и т. п.).
После завершения обслуживания прерывания процессор возвращается к
выполнению прерванной программы, и она должна продолжиться таким
образом, как будто прерывания не было.
К основным ситуациям, возникающим вне процессора и приводящим к
прерыванию, относятся:
1. Запросы от управляемого объекта (являются типичными для
управляющих систем), т.е. запросы от ВУ:
• ВУ, готовые к обмену, требуют реакции процессора для организации
программно управляемой передачи данных.
• Завершение работы ВУ
или КВВ по передаче данных.
• Особая (аварийная) ситуация в ВУ или КВВ.
2. Запросы прерываний от других процессоров для обеспечения
синхронизации вычислительных процессов, протекающих в рамках
многопроцессорной системы.
Программные прерывания, в отличие от аппаратных, появляются
синхронно по отношению к выполняемой программе.
Причинами программных прерываний могут служить особые ситуации,
возникающие при выполнении программы, препятствующие нормальному
продолжению программы и требующие специального обслуживания
(переполнение, нарушение защиты памяти, отсутствие нужной страницы в
оперативной памяти и т.п.), а также специальные команды типа INT n ( n –
номер прерывания), являющиеся генераторами программных прерываний. Эти
команды обычно используются для вызова определенных функций ОС.
Обработка исключительных ситуаций (exception handling) – механизм
языков программирования, предназначенный
для описания реакции программы
на ошибки времени выполнения и другие возможные проблемы (исключения),
которые могут возникнуть при выполнении программы и приводят к
невозможности (бессмысленности) дальнейшей отработки программой её