Что происходит в процедуре обработки прерывания?

Кто-то может объяснить мне, что происходит в процедуре обработки прерывания (хотя она зависит от определенной стандартной программы, общее объяснение достаточно)? Это всегда используемое быть черным квадратом для меня.

21
задан Thomas Owens 3 August 2010 в 01:03
поделиться

1 ответ

Есть хорошая страница в Википедии о обработчиках прерываний.

"Обработчик прерываний, также известный как подпрограмма обслуживания прерываний (ISR), - это подпрограмма обратного вызова в операционной системе или драйвере устройства, выполнение которой инициируется приемом прерывания. Обработчики прерываний имеют множество функций, которые зависят от причины, по которой было сгенерировано прерывание, и от скорости, с которой обработчик прерывания выполняет свою задачу."

В основном, когда аппаратному устройству (аппаратное прерывание) или какой-либо задаче ОС (программное прерывание) необходимо запуститься, это вызывает прерывание. Если эти прерывания не замаскированы (проигнорированы), ОС остановит свою работу и вызовет специальный код для обработки нового события.

Один из хороших примеров - чтение с жесткого диска. Диск медленный, и вы не хотите, чтобы ваша ОС ждала возврата данных; вы хотите, чтобы ОС занялась другими делами. Поэтому вы настраиваете систему таким образом, что когда диск получает запрашиваемые данные, он поднимает прерывание. В подпрограмме обслуживания прерывания для диска процессор возьмет данные, которые теперь готовы, и вернет их запрашивающему.

ISR часто должны происходить быстро, поскольку аппаратное обеспечение может иметь ограниченный буфер, который будет перезаписываться новыми данными, если они не будут извлечены достаточно быстро. Также важно, чтобы ISR завершался быстро, поскольку пока CPU обслуживает один ISR, другие прерывания будут замаскированы, а это значит, что если CPU не сможет добраться до них достаточно быстро, данные могут быть потеряны.

21
ответ дан 29 November 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: