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);

王小玉网-美国洛杉矶2核4G 20元/月,香港日本CN2 2核2G/119元/季,美国300G高防/80元/月!

 活动方案:美国洛杉矶 E5 2696V2 2核4G20M带宽100G流量20元/月美国洛杉矶E5 2696V2 2核4G100M带宽1000G流量99元/季香港CN2 E5 2660V2 2核2G30M CN2500G流量119元/季日本CN2E5 2660 2核2G30M CN2 500G流量119元/季美国300G高防 真实防御E5 2696V2 2核2G30M...

CloudServer:$4/月KVM-2GB/50GB/5TB/三个数据中心

CloudServer是一家新的VPS主机商,成立了差不多9个月吧,提供基于KVM架构的VPS主机,支持Linux或者Windows操作系统,数据中心在美国纽约、洛杉矶和芝加哥机房,都是ColoCrossing的机器。目前商家在LEB提供了几款特价套餐,最低月付4美元(或者$23.88/年),购买更高级别套餐还能三个月费用使用6个月,等于前半年五折了。下面列出几款特别套餐配置信息。CPU:1cor...

racknerd:美国大硬盘服务器(双路e5-2640v2/64g内存/256gSSD+160T SAS)$389/月

racknerd在促销美国洛杉矶multacom数据中心的一款大硬盘服务器,用来做存储、数据备份等是非常划算的,而且线路还是针对亚洲有特别优化处理的。双路e5+64G内存,配一个256G的SSD做系统盘,160T SAS做数据盘,200T流量每个月,1Gbps带宽,5个IPv4,这一切才389美元...洛杉矶大硬盘服务器CPU:2 * e5-2640v2内存:64G(可扩展至128G,+$64)硬...

queue_work为你推荐
mac地址克隆无线路由器mac地址克隆有什么用处?企业资源管理系统企业管理系统有哪些?视频技术学习短视频需要准备什么?怎么去做呢?印度尼西亚国家代码谁知道世界各国的国家电话代码?什么是生态系统生态系统的基础是什么?kjavaJava与KJava有什么区别吗.?河北云办税厅河北省商务厅的人员编制电子邮件软件邮件客户端软件pmp格式PMP是什么格式的视频?病毒分析网站25个最恶意的病毒网站
免费网站域名注册 绍兴服务器租用 ftp空间 blackfriday 老左博客 42u标准机柜尺寸 商家促销 小米数据库 有奖调查 seednet 服务器托管什么意思 中国电信宽带测速网 绍兴电信 网通服务器 永久免费空间 万网空间 学生服务器 七牛云存储 好看的空间 hdsky 更多