我知道在中断处理期间有两个“掩码”,PIC中的IMR(中断掩码寄存器)掩盖特定的中断,CPU中的IF(中断标志)掩盖除NMI之外的所有中断。
[我认为当IMR屏蔽(禁止)特定中断时,将记录该中断(因为它设置了中断位),并且一旦IMR取消屏蔽(启用)该中断将由PIC触发。
但是,我想知道当IMR取消屏蔽特定中断但清除IF时会发生什么?该中断肯定会被CPU忽略。但是它已经被PIC触发,并且PIC正在等待CPU确认。那么一旦设置了IF,中断会再次触发吗?
阅读更多材料后,我认为该中断将不会再次触发。但是,它不是“丢失”的,而是在取消屏蔽该标志时由CPU选择。
有用的链接:
https://unix.stackexchange.com/questions/5788/how-is-an-interrupt-handled-in-linux
https://hkn.illinois.edu/wiki/pic_interactions
https://alex.dzyoba.com/blog/os-interrupts