核心元素:
- 软中断状态寄存器
- 软中断向量表
软中断守护
流程:某一中断事件发生后,首先需要设置对应的中断标记位,触发中断事务
- 唤醒守护线程去检测中断状态寄存器
- 如果通过查询发现某一中断事务发生之后,那么通过软中断向量表调用软中断服务程序action()
一个软中断不会去抢占另一个软中断,只有硬件中断才可以抢占软中断,所以软中断可以保证对时间的严格要求
软中断守护是软中断的实现核心,通过查询软中断状态来判断事件是否发生,如果发生,那么映射到软中断向量表,执行注册的中断服务程序action()就可以了
中断处理分为上半部和下半部
- 上半部 就是中断处理函数,它能最快的响应中断,并完成一些必须在中断响应之后马上要做的事情,而一些需要在中断处理函数后执行的操作,内核建议放在下半部