小编koo*_*eak的帖子

被抢占的中断处理程序会发生什么?

即使在一些写得很好的内核书籍中,我也无法找到以下问题的正确答案:

  1. 他们说ISR无法入睡,因为它不能重新安排ISR,因为它没有与任何进程相连,所以当更高优先级的中断抢占执行进程时会发生什么呢?中断的ISR不会再次重新安排(执行)?如果是的话,谁将做这项工作?

  2. 很多时候我们会禁用中断(例如:1.在关键区域2.当执行快速中断时,它会禁用当前处理器中的所有中断),那么当中断被禁用时发生的中断会发生什么?他们被简单地丢弃了?或将被存储在某处以供以后执行?如果是,在哪里以及如何?

  3. 当ISR执行时,它将禁用当前IRQ线中的中断以避免重入(防止同一线路上的另一个ISR被执行),但为什么呢?如果ISR是可重入的,那该怎么办?

*ISR =中断服务程序

*他们= Book的作者

kernel interrupt linux-device-driver linux-kernel interrupt-handling

6
推荐指数
1
解决办法
2992
查看次数