加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux-device-driver – tasklet,taskqueue,work-queue – 要使

发布时间:2020-12-13 13:48:03 所属栏目:Linux 来源:网络整理
导读:我过去几个月经历了ldd3.我先读了几章. 这两个链接使用不同的方式,一个是使用工作队列,另一个是使用任务队列.实施下半部分. http://www.tldp.org/LDP/lkmpg/2.4/html/x1210.html http://www.linuxtopia.org/online_books/linux_kernel/linux_kernel_module_p
我过去几个月经历了ldd3.我先读了几章.

这两个链接使用不同的方式,一个是使用工作队列,另一个是使用任务队列.实施下半部分.
http://www.tldp.org/LDP/lkmpg/2.4/html/x1210.html
http://www.linuxtopia.org/online_books/linux_kernel/linux_kernel_module_programming_2.6/x1256.html

我对tasklet,taskqueue,work-queue有一些疑问似乎都是在空闲时间做一些任务: –

a)这三者之间的差异到底是什么?

b)哪个应该用于中断处理程序的下半部分?

困惑…… ???

解决方法

Tasklet和工作队列通常在下半部分使用,但它们可以在任何地方使用,它们对它们没有限制

关于差异.

1)Tasklet用于中断上下文.所有tasklet代码必须是原子的,因此应用于原子上下文的所有规则都应用于它.
例如.他们无法入睡(因为他们无法重新安排)或长时间保持锁定.

2)与Tasklet不同,工作队列执行是在进程上下文中意味着它们可以长时间睡眠并保持锁定.

简而言之,tasklet用于快速执行,因为它们无法在正常执行下半部分时使用工作队列的情况下休眠.两者都在以后由内核执行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读