Прерывания – это механизм, позволяющий координировать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе процессора. Прерывание обеспечивает принудительную передачу управления от выполняемой программы к соответствующей программе обработки прерывания (ISR – I nterrupt S ervice R outine) при возникновении определенного события. Основная цель введения прерываний – реализация асинхронного режима работы и распараллеливания работы отдельных устройств вычислительной системы.
Механизм прерываний реализуется аппаратно-программными средствами и включает следующие элементы:
1. Прием сигнала на прерывание и его идентификация.
2. Запоминание состояния прерванного процесса.
3. Управление аппаратно передается подпрограмме обработки прерывания.
4. Обработка прерывания с помощью ISR.
5. Восстановление информации, относящейся к прерванному процессу.
6. Возврат в прерванную программу.
Рис.3. иллюстрирует, что происходит при возникновении запроса на прерывание.
|
|
Рис.3. Обработка прерывания
Прерывания, возникающие при работе вычислительной системы, можно разделить на два основных класса: внешние и внутренние.
Внешние прерывания вызываются асинхронными событиями, которые происходят вне прерываемого процесса, например:
· прерывания от таймера;
· прерывания по вводу/выводу;
· прерывания по нарушению питания.
Внутренние прерывания вызываются событиями, которые связаны с работой процессора и являются синхронными с его операциями, например:
· при нарушении адресации;
· при делении на нуль;
· при наличии в поле кода операции незадействованной двоичной комбинации.
Существуют, наконец, собственно программные прерывания, происходящие по соответствующей команде прерывания: INT(«номер прерывания»).
Сигналы, вызывающие прерывания, формируются вне процессора или в самом процессоре; они могут возникать одновременно. Выбор одного из них для обработки осуществляется на основе приоритетов (рис.4).
Рис.4. Распределение прерываний по уровням приоритета
Процессор может обладать средствами защиты от прерываний: отключение системы прерываний, маскирование (запрет) отдельных прерываний. Программное управление специальными регистрами маски (маскируемые прерывания) позволяет реализовать различные дисциплины обслуживания.
Для полного понимания принципов создания и механизмов реализации современных ОС необходимо знать архитектуру 32-разрядных микропроцессоров i80×86, применяемых в персональных компьютерах.