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