queue_workLinux 工作队列 的 INIT_WORK 跟 DECLARE_WORK 到底是3个参数还是2个参数?

queue_work  时间:2021-06-08  阅读:()

linux内核的工作队列任务没处理完又来一个任务怎么办?工作对列到底是个什么玩意?

来任务就加入到工作队列里了.你说的这个工作队列很模糊.........因为linux里有很多"工作队列"..................叫法虽然相同.但是概念不一样.....

tasklet 和 workqueue 有何区别

区别是: 一、中断处理的tasklet(小任务)机制 中断服务程序一般都是在中断请求关闭的条件下执行的,以避免嵌套而使中断控制复杂化。

但是,中断是一个随机事件,它随时会到来,如果关中断的时间太长,CPU就不能及时响应其他的中断请求,从而造成中断的丢失。

因此,Linux内核的目标就是尽可能快的处理完中断请求,尽其所能把更多的处理向后推迟。

例如,假设一个数据块已经达到了网线,当中断控制器接受到这个中断请求信号时,Linux内核只是简单地标志数据到来了,然后让处理器恢复到它以前运行的状态,其余的处理稍后再进行(如把数据移入一个缓冲区,接受数据的进程就可以在缓冲区找到数据)。

因此,内核把中断处理分为两部分:上半部half)和下半部(bottomhalf),上半部(就是中断服务程序)内核立即执行,而下半部(就是一些内核函数)留着稍后处理,首先,一个快速的“上半部”来处理硬件发出的请求,它必须在一个新的中断产生之前终止。

通常,除了在设备和一些内存缓冲区(如果你的设备用到了DMA,就不止这些)之间移动或传送数据,确定硬件是否处于健全的状态之外,这一部分做的工作很少。

下半部运行时是允许中断请求的,而上半部运行时是关中断的,这是二者之间的主要区别。

二、中断处理的工作队列机制 工作队列(work queue)是另外一种将工作推后执行的形式,它和前面讨论的tasklet有所不同。

工作队列可以把工作推后,交由一个内核线程去执行,也就是说,这个下半部分可以在进程上下文中执行。

这样,通过工作队列执行的代码能占尽进程上下文的所有优势。

最重要的就是工作队列允许被重新调度甚至是睡眠。

那么,什么情况下使用工作队列,什么情况下使用tasklet。

如果推后执行的任务需要睡眠,那么就选择工作队列。

如果推后执行的任务不需要睡眠,那么就选择tasklet。

另外,如果需要用一个可以重新调度的实体来执行你的下半部处理,也应该使用工作队列。

它是唯一能在进程上下文运行的下半部实现的机制,也只有它才可以睡眠。

这意味着在需要获得大量的内存时、在需要获取信号量时,在需要执行阻塞式的I/O操作时,它都会非常有用。

如果不需要用一个内核线程来推后执行工作,那么就考虑使用tasklet。

Linux 工作队列 的 INIT_WORK 跟 DECLARE_WORK 到底是3个参数还是2个参数?

INIT_WORK(structwork_struct *work, work_func_t func); INIT_DELAYED_WORK(structdelayed_work *work, work_func_t func);

丽萨主机:美国CN2 GIA精品网/KVM/9折,美国原生IP,最低27元/月

丽萨主机怎么样?丽萨主机,团队于2017年成立。成立之初主要做的是 CDN 和域名等相关业务。最近开辟新领域,新增了独立服务器出租、VPS 等业务,为了保证业务质量从一开始就选择了中美之间的 CN2 GIA 国际精品网络,三网回程 CN2 GIA,电信去程 CN2 GIA + BGP 直连智能路由,联通移动去程直连,原生IP。适合对网络要求较高的用户,同时价格也比较亲民。点击进入:丽萨主机官方网站...

Gcorelabs:美国GPU服务器,8路RTX2080Ti;2*Silver-4214/256G内存/1T SSD,1815欧/月

gcorelabs怎么样?gcorelabs是创建于2011年的俄罗斯一家IDC服务商,Gcorelabs提供优质的托管服务和VPS主机服务,Gcorelabs有一支强大的技术队伍,对主机的性能和稳定性要求非常高。Gcorelabs在 2017年收购了SkyparkCDN并提供全球CDN服务,目标是进入全球前五的网络服务商。G-Core Labs总部位于卢森堡,在莫斯科,明斯克和彼尔姆设有办事处。...

快云科技:香港沙田CN2云服务器低至29元/月起;美国高防弹性云/洛杉矶CUVIP低至33.6元/月起

快云科技怎么样?快云科技是一家成立于2020年的新起国内主机商,资质齐全 持有IDC ICP ISP等正规商家。云服务器网(yuntue.com)小编之前已经介绍过很多快云科技的香港及美国云服务器了,这次再介绍一下新的优惠方案。目前,香港云沙田CN2云服务器低至29元/月起;美国超防弹性云/洛杉矶CUVIP低至33.6元/月起。快云科技的云主机架构采用KVM虚拟化技术,全盘SSD硬盘,RAID10...

queue_work为你推荐
宝应中学江苏省宝应中学的知名校友视频技术视频监控技术的定义及特点华为总裁女儿为啥姓孟任正非女儿为什么姓孟?oa办公系统下载oa办公软件哪里可以下载?腾讯年终奖腾讯外聘员工与正式员工的区别是什么?小四号字word里的小四号字在Photoshop里是指多少点字体?jstz举手望,草上马跑,打什么数字?assemblyinfoCSE和CS有什么区别币众筹众筹是什么意思单元测试规范如何做好小学数学单元测试工作
黑龙江域名注册 域名备案只选云聚达 wordpress主机 骨干网 云网数据 zpanel 免费主机 gateone 360抢票助手 好看的桌面背景图 最好的空间 gspeed 如何用qq邮箱发邮件 流媒体加速 服务器硬件防火墙 中国电信宽带测速器 web应用服务器 个人免费邮箱 服务器防火墙 免费网络空间 更多