Рубрики

Прерывания

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

Когда устройство вызывает прерывание, скажем, в процессе i, процессор сначала завершает выполнение команды i. Затем он загружает счетчик программ (ПК) с адресом первой инструкции ISR. Перед загрузкой счетчика программ с адресом адрес прерванной инструкции перемещается во временное местоположение. Следовательно, после обработки прерывания процессор может продолжить процесс i + 1.

Пока процессор обрабатывает прерывания, он должен сообщить устройству, что его запрос был распознан, чтобы он прекратил посылать сигнал запроса прерывания. Кроме того, сохранение регистров с тем, чтобы прерванный процесс мог быть восстановлен в будущем, увеличивает задержку между временем получения прерывания и началом выполнения ISR. Это называется прерыванием Lattency.

Аппаратные прерывания:
При аппаратном прерывании все устройства подключаются к линии запроса прерывания. Одна строка запроса используется для всех n устройств. Чтобы запросить прерывание, устройство закрывает связанный с ним коммутатор. Когда устройство запрашивает прерывания, значение INTR является логическим ИЛИ запросов от отдельных устройств.

Последовательность событий, связанных с обработкой IRQ:

  1. Устройства поднимают IRQ.
  2. Процессор прерывает программу, выполняемую в данный момент.
  3. Устройство информируется о том, что его запрос был распознан, и устройство отключает сигнал запроса.
  4. Запрошенное действие выполнено.
  5. Прерывание включено, и прерванная программа возобновляется.

Обработка нескольких устройств:
Когда более чем одно устройство генерирует сигнал запроса прерывания, тогда требуется дополнительная информация, чтобы решить, какое устройство следует рассмотреть первым. Следующие методы используются, чтобы решить, какое устройство выбрать: опрос, векторные прерывания и вложенность прерываний. Это объясняется следующим образом.

  1. Опрос:
    При опросе первое устройство, с которым встречается установленный бит IRQ, — это устройство, которое должно быть обслужено первым. Соответствующий ISR призван обслуживать то же самое. Это легко реализовать, но много времени теряется при опросе IRQ-бита всех устройств.
  2. Векторные прерывания:
    В случае векторных прерываний устройство, запрашивающее прерывание, идентифицирует себя напрямую, отправляя специальный код процессору по шине. Это позволяет процессору идентифицировать устройство, которое сгенерировало прерывание. Специальный код может быть начальным адресом ISR или местом, где ISR находится в памяти, и называется вектором прерывания.
  3. Вложенность прерываний:
    В этом методе устройство ввода-вывода организовано в структуре приоритетов. Следовательно, запрос прерывания от устройства с более высоким приоритетом распознается, когда запрос от устройства с более низким приоритетом не распознается. Для реализации этого каждый процесс / устройство (даже процессор). Процессор принимает прерывания только от устройств / процессов, имеющих приоритет выше его.

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

Рекомендуемые посты:

Прерывания

0.00 (0%) 0 votes