Механизм автоматической обработки прерываний в программировании работает следующим образом: arch.altspu.ru
- Установление факта прерывания. arch.altspu.ru Контроллер принимает и идентифицирует сигнал прерывания. arch.altspu.ru
- Запоминание состояния прерванного процесса. arch.altspu.ru Состояние процесса определяется значением счётчика команд, содержимым регистра процессора, спецификацией режима (пользовательский или привилегированный). arch.altspu.ru
- Приостановка текущей последовательности команд. arch.altspu.ru Управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код. arch.altspu.ru
Программный код, обрабатывающий прерывания, может выполняться: www.swd.ru
- На уровне потока. www.swd.ru В этом случае для присоединения прерывания используется библиотечная функция InterruptAttachEvent(). www.swd.ru
- На уровне сверхприоритетной функции-обработчика ISR. www.swd.ru Она выполняет самую необходимую работу по идентификации источника прерываний и его очистке. www.swd.ru Последующие, связанные с прерываниями действия, если они необходимы, выполняет специально предназначенная для этого нить, запускаемая из ISR с помощью события-уведомления. www.swd.ru
Например, нажатие клавиши на клавиатуре компьютера или перемещение мыши запускает прерывания, которые вызывают обработчики прерываний, которые считывают клавишу или положение мыши и копируют соответствующую информацию в память компьютера. en.wikipedia.org