Задержка прерывания

редактировать

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

Содержание
  • 1 Предпосылки
  • 2 Соображения
  • 3 См. также
  • 4 Ссылки
Предпосылки

Обычно существует компромисс между задержкой прерывания, пропускная способность и загрузка процессора. Многие из методов проектирования CPU и OS, которые улучшают задержку прерывания, уменьшают пропускную способность и увеличивают загрузку процессора. Методы увеличения пропускной способности могут увеличить задержку прерывания и увеличить загрузку процессора. Наконец, попытка уменьшить загрузку процессора может увеличить задержку прерывания и снизить пропускную способность.

Минимальная задержка прерывания в значительной степени определяется схемой контроллера прерываний и ее конфигурацией. Они также могут повлиять на дрожание в задержке прерывания, что может существенно повлиять на возможность планирования системы в реальном времени . Архитектура Intel APIC хорошо известна тем, что создает огромное количество джиттера задержки прерывания.

Максимальная задержка прерывания в значительной степени определяется методами, которые ОС использует для обработки прерываний. Например, большинство процессоров позволяют программам отключать прерывания, откладывая выполнение обработчиков прерываний, чтобы защитить критические разделы кода. Во время выполнения такого критического раздела все обработчики прерываний, которые не могут безопасно выполняться в критическом разделе, блокируются (они сохраняют минимальный объем информации, необходимый для перезапуска обработчика прерывания после выхода из всех критических разделов). Таким образом, задержка прерывания для заблокированного прерывания увеличивается до конца критического раздела, плюс все прерывания с равным и более высоким приоритетом, которые поступили, пока блок был на месте.

Многие компьютерные системы требуют низкой задержки прерывания, особенно встроенные системы, которым необходимо управлять оборудованием в режиме реального времени. Иногда в этих системах используется операционная система реального времени (RTOS). RTOS дает обещание, что между выполнениями подпрограмм пройдет не более указанного максимального количества времени. Для этого ОСРВ также должна гарантировать, что задержка прерывания никогда не превысит заранее установленный максимум.

Соображения

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

  • Минимальное дрожание за счет непрерываемых инструкций
  • Состояния нулевого ожидания для системы памяти
  • Переключаемые банки регистров
  • Хвостовая цепочка
  • Ленивое стекирование
  • Позднее поступление
  • Вытеснение всплывающих окон
  • Функция перехода в спящий режим

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

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

См. Также
Ссылки
Последняя правка сделана 2021-05-24 05:05:47
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте