即使在一些写得很好的内核书籍中,我也无法找到以下问题的正确答案:
他们说ISR无法入睡,因为它不能重新安排ISR,因为它没有与任何进程相连,所以当更高优先级的中断抢占执行进程时会发生什么呢?中断的ISR不会再次重新安排(执行)?如果是的话,谁将做这项工作?
很多时候我们会禁用中断(例如:1.在关键区域2.当执行快速中断时,它会禁用当前处理器中的所有中断),那么当中断被禁用时发生的中断会发生什么?他们被简单地丢弃了?或将被存储在某处以供以后执行?如果是,在哪里以及如何?
当ISR执行时,它将禁用当前IRQ线中的中断以避免重入(防止同一线路上的另一个ISR被执行),但为什么呢?如果ISR是可重入的,那该怎么办?
*ISR =中断服务程序
*他们= Book的作者
kernel interrupt linux-device-driver linux-kernel interrupt-handling