Прерывание

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

Эта диаграмма показывает, что происходит при вызове прерыванияZoom
Эта диаграмма показывает, что происходит при вызове прерывания

Как работают прерывания

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

Многие контроллеры прерываний современных процессоров используют вектор прерывания для сортировки прерываний, в том числе и по тому, откуда оно пришло. Вектор обычно содержит код, который должен быть выполнен при возникновении прерывания. ISR обычно отвечает за обработку, или "обслуживание", прерывания, а также за поддержание себя в рабочем состоянии.

Использование прерываний

  • Запуск задач через регулярные промежутки времени
  • Обслуживание внешнего устройства, которое может произойти в любое время
  • Устранить необходимость в синхронном опросе
  • Запуск операционной системы (ОС) для выполнения действий

Вопросы и ответы

В: Что такое прерывание?


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

В: Что приводит к тому, что прерывания возникают чаще всего в процессоре?


О: Прерывания чаще всего возникают в процессоре из-за получения сигналов от аппаратного обеспечения.

В: Могут ли прерывания быть вызваны программным обеспечением?


О: Да, прерывания могут быть вызваны программным обеспечением, которое работает параллельно с выполняемой программой.

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

В: Зависит ли прерывание от того, где выполняется программа?


О: Нет, прерывание может произойти в любое время во время выполнения программы, независимо от того, где находится программа в исходном коде.

В: Является ли прерывание желательным событием для микропроцессора?


О: Прерывания обычно являются нежелательными событиями для микропроцессора, поскольку они нарушают выполнение программы и требуют немедленного внимания.

В: Как микропроцессор реагирует на прерывание?


О: Микропроцессор временно приостанавливает выполняемую программу и выполняет процедуру обслуживания прерывания (ISR) для обработки прерывания, прежде чем вернуться к выполняемой программе.

AlegsaOnline.com - 2020 / 2023 - License CC3