gpt4 book ai didi

linux-device-driver - tasklet、taskqueue、work-queue——使用哪个?

转载 作者:行者123 更新时间:2023-12-04 08:01:14 25 4
gpt4 key购买 nike

最近几个月我正在经历 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 和 work-queue 通常用于下半部分,但它们可以在任何地方使用,对它们没有限制

关于区别。

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

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

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

关于linux-device-driver - tasklet、taskqueue、work-queue——使用哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14982589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com