中断系统是现代操作系统中不可获取的一个子系统,它由硬件主动触发并发送到CPU,最后由内核调用中断处理程序处理中断。
那么中断有时候需要关闭,这是为什么呢?
一般分为两种情况:
1.内核或程序的某些操作需要关中断
2.中断正在执行
下面,我来解释下第二种情况。
下面,首先看一张图:
可以看到,图中红色的中断线被触发,那么这时就需要关闭这条中断线上的所有中断(因为中断线是可以共享的且硬件在触发中断的同时可能会再次发出中断)。这样做的原因是中断处理程序是不可重入的,也就是说在一个中断处理程序在执行时,不能再次执行这个处理程序,这样做无疑会降低开发的难度。
所以,同一个中断处理程序绝对不会被同时调用以处理嵌套的中断。