【003 中断】tasklet和workqueue的区别和底层实现的区别

一、tasklet和workqueue的区别和底层实现的区别

(1)softirq和tasklet都属于软中断,tasklet是softirq的特殊实现;workqueue是普通的工作队列。 

(2)tasklet和workqueue,两者都是中断下半部的一种实现方法。区别在于tasklet属于中断上下文,没有进程的切换,不可睡眠和阻塞(原因详见【003 中断】);workqueue基于线程的封装,属于进程上下文,因此支持睡眠、阻塞。


二、什么时候申请中断?

Linux 会在硬件设备首次加载对应的驱动并初始化时,内核才会为该设备申请中断。


三、参考内容

The difference between SOFTIRQ, Tasklet and Workqueue _SOFTIRQ

猜你喜欢

转载自blog.csdn.net/qq_41709234/article/details/131207495
003