7.2.2 Продожительность работы ISR

Предыдущая  Содержание  Следующая V*D*V

Продолжительность работы ISR это время, необходимое обработчику прерывания для выполнения, и оно находится под контролем автора ISR. Однако, может возникнуть недетерминизм, если ISR имеет также компонент программного прерывания. Что же такое программное прерывание? Мы все знаем, что для того, чтобы иметь меньшее время реакции на прерывание, обработчик прерывания должен делать минимальную работу (например, копирование каких-либо буферов ввода-вывода в оперативную память), а остальная часть работы (такая как обработка данных ввода-вывода, задачи пробуждения) должна быть выполнена вне обработчика прерываний. Так что обработчик прерывания был разделён на две части: верхняя половина, которая делает минимальную работу, и программное прерывание, которое делает остальную часть обработки. Задержка, внесённая в обработку программного прерывания неограничена. В обработке программного прерывания участвуют следующие задержки:

 

Программное прерывание работает с разрешёнными прерываниями и может прерываться аппаратными прерываниями (за исключением некоторых критических секций).

Программное прерывание также может выполняться в контексте службы ядра ksoftirqd, которая не является потоком реального времени.

 

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

 

Предыдущая  Содержание  Следующая