Вопрос:

Прерывания (Interrupts) – сигнализация от устройства (его контроллера) центральному процессору (процессорам в мультипроцессорных системах) о некоторых событиях, требующих программных действий хоста. Эти события асинхронны по отношению к программному коду, исполняемому процессором. Что требуют прерывания?

Ответ:

Решение:

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

Рассмотрим варианты:

  • Приостановки выполнения текущего потока инструкций (с сохранением состояния) и запуска исполнения процедуры-обработчика прерывания ISR (Interrupt Service Routine). — Этот вариант точно описывает, что требует прерывание.
  • Запуска выполнения текущего потока инструкций и запуска исполнения процедуры-обработчика прерывания ISR (Interrupt Service Routine). — Запуск выполнения текущего потока инструкций происходит после обработки прерывания, а не вместо него.
  • Приостановки выполнения текущего потока инструкций (без сохранения состояния) и запуска исполнения процедуры-обработчика прерывания ISR (Interrupt Service Routine). — Сохранение состояния текущего потока обязательно для возможности возобновления работы.
  • Запуска выполнения текущего потока инструкций (с сохранением состояния) и приостановки исполнения процедуры-обработчика прерывания ISR (Interrupt Service Routine). — Этот вариант описывает, что происходит *во время* обработки прерывания, но не то, что *требует* само прерывание как таковое. Прерывание требует временного отвлечения процессора от текущей задачи.

Ответ: Приостановки выполнения текущего потока инструкций (с сохранением состояния) и запуска исполнения процедуры-обработчика прерывания ISR (Interrupt Service Routine).