Прерывание представляет собой механизм, позволяющий координировать параллельную работу
отдельных устройств, реагировать на особые состояния при работе процессора.
С точки зрения передачи управления, прерывание – принудительная передача управления от
выполняющейся программы к операционной системе.
Механизм обработки прерываний:
1) установка факта прерывания
На этом этапе осуществляется прием запросов на прерывание и выбор наиболее привилегированного
из них.
2) запоминание состояния прерванного процесса
Происходит сохранение значения счетчика команд, содержимого регистров процессора, сохранение
информации о режимах работы процессора.
3) управление аппаратно передается подпрограмме обработки прерываний
4) сохранение информации о прерванной программе. которую не удалось сохранить на шаге 2).
5) непосредственная обработка прерывания
Осуществляется специальной процедурой (подпрограммой) обработки прерываний.
восстановление информации, относящейся к прерванному про цессу
Осуществляется в порядке, обратном запоминанию.
6) возврат в прерванную программу.
Шаги 1) – 3) осуществляются аппаратно, остальные – программно.
Подпрограмма обработки прерываний включает в себя 3 части: начальную. завершающую и
собственно тело подпрограммы. Начальная часть обеспечивает следующие действия:
1) отключение прерываний в соответствии с принятой стратегией,
2) сохранение контекста прерванного процесса,
3) установка режима работы системного прерывания.
Завершающая часть выполняет 2 функции:
1) восстановление контекста прерванной ранее программы,
2) восстановление прежнего режима работы.
Все прерывания можно разделить на 2 группы:
внешние – это прерывания, асинхронные по отношению к работе процессора.
внутренние – прерывания, вызываемые событиями, которые происходят во время работы процессора
и являются синхронными по отношению к работе процессора.
Среди внутренних прерываний выделяют группу программных прерываний, к которым относятся
прерывания, связанные с нарушением адресации, делением на 0, наличием в поле кода операции
недействительной двоичной комбинации. Также выделяют прерывания по обращению к супервизору
(они имеют место при изменении режима работы системы – из привилегированного в пользовательский
и обратно). Относят к ним и прерывания, связанные с обнаружением ошибок четности, ошибок в работе
различных устройств, обнаруженных средствами контроля («прерывания от схем контроля»).