中断很大一部分是硬件相关的:比如中断控制器,支持的中断数等。
下图简单描述一下内核中与中断管理有关的一些结构:
中断下半部
中断下半部实际上是为了减少禁止中断的中断处理程序的执行时间,实际上下面的机制不仅适用于中断下半部,也可以用于其他的回调机制。
一、软中断与tasklet(tasklet是基于软中断的):
关于上图的一些说明:
1. 上图的上半部分描述的是软中断,下半部分描述的是tasklet;
2. 软中断的实现是由内核线程 ksoftirqd() 管理的,它会一直去判断有没有软中断被触发,有就执行相应的处理函数;
3. 当我们调度一个tasklet的时候,实际上也是通过触发软中断(TASKLET_SOFTIRQ)
二、工作队列(workqueue)
.