Что происходит с обработчиком вытесненных прерываний?

Я не смог найти правильного ответа на следующие вопросы даже в некоторых хорошо написанных книгах по ядру:

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

  2. много раз мы будем отключать прерывание (, например :1. В критической области 2. Когда выполняется быстрое прерывание, оно отключает все прерывания в текущем процессоре ), так что произойдет с прерываниями, которые происходят когда прерывания отключены? они просто выбрасываются? или будет храниться где-то для последующего выполнения? если да то где и как?

  3. когда выполняется ISR, прерывание в текущей строке IRQ будет отключено, чтобы избежать повторного входа (, предотвращающего выполнение другого ISR в той же строке ), но почему? что не так, если ISR реентерабельный?

*ISR = Подпрограмма обслуживания прерывания

*Они=Автор книги

6
задан kool_freak 3 August 2012 в 06:30
поделиться