linux内核新旧工作队列机制剖析与比较

linux内核新旧工作队列机制剖析与比较

ID:5597583

大小:38.50 KB

页数:14页

时间:2017-12-19

linux内核新旧工作队列机制剖析与比较_第1页
linux内核新旧工作队列机制剖析与比较_第2页
linux内核新旧工作队列机制剖析与比较_第3页
linux内核新旧工作队列机制剖析与比较_第4页
linux内核新旧工作队列机制剖析与比较_第5页
资源描述:

《linux内核新旧工作队列机制剖析与比较》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Linux内核新旧工作队列机制剖析与比较  摘要:在中断驱动的程序设计中,工作队列是一种强有力的工具。但是在Linux2.6.35及其以前的内核版本中,每创建一个工作队列就创建与CPU数目相同的内核线程,耗费大量的内核资源;工作只能严格串行的处理,效率低。为了适应大规模多处理器硬件平台,提高处理效率,Linux2.6.36内核开发了受控并发工作队列机制。这种新机制由内核根据需要创建或销毁线程,工作可以并发的处理,可望替代之前长期使用的专用线程工具。文章详细介绍和剖析新工作队列机制,并通过实验,对比新旧工作队列机制的资源消耗和工作

2、效率。结果表明,新工作队列机制大大减少内核资源的耗费,提高了处理效率。关键词:Linux内核;中断驱动;工作队列;受控并发工作队列中图分类号:TP316.81文献标识码:A文章编号:1009-3044(2014)06-1227-04AnalysisandComparisonoftheNewandOldWorkQueueinLinuxKernelMAJun-qiang(SchoolofInformationScienceandEngineering,XiamenUniversity,Xiamen361005,China)14Abs

3、tract:WorkQueueisapowerfultoolininterrupt-drivenprogramming.ButinLinuxkernelsof2.6.35andbefore,itconsumesalotofkernelresourcesinthatwheneveraWorkQueueiscreated,thesamenumberofkernelthreadsasCPUsarecreated.TheefficiencytoprocessingworksinWorkQueueislowduetostrictlyseq

4、uentialprocessing.Inordertoadaptthehardwareplatformswithlarge-scalemultiprocessorsandincreasetheprocessingefficiency,theLinuxkernelof2.6.36developedConcurrencyManagedWorkqueue.Withthisnewmechanism,thekernelcreatesanddestroysthethreadsaccordingtotheprocessingrequireme

5、nts,andworkscanbeconcurrentlyprocessed.ThenewWorkQueueishopedtoreplacetheprivatethreadtoolsthathadbeenusedlongtime.Thepaperintroducesandanalysesthisnewmechanismindetail,andcomparestheresourceconsumesandprocessingefficiencybetweenthenewandoldmechanismsbyexperiments.Th

6、eresultsshowthatthenewmechanismofWorkQueuegreatlyreducesconsumesofkernelresourcesandincreasestheprocessing14efficiency.Keywords:Linuxkernel;interrupt-driven;workqueue;concurrencymanagedworkqueue当一个中断发生时,并不是相关的各个操作都具有相同的急迫性,把所有的操作都放进中断处理程序本身也不合适。Linux内核将整个中断处理流程简单分为两个

7、部分,第一部分是中断处理程序,称为上半部(TopHalf),在运行时禁止可屏蔽中断,用于完成关键性的、紧急的处理;其余部分称为下半部(BottomHalf),在运行时开中断,主要完成与中断处理密切相关的工作,即延后执行工作(DeferringWork)。Linux内核提供三种不同形式的下半部实现机制:软中断(Softirq)、Tasklet和工作队列(WorkQueue)。其中软中断和Tasklet运行在中断上下文中,不可阻塞。而工作队列由特殊的内核线程—工作者线程(Worker14Thread)来执行,运行在进程上下文,可以阻

8、塞。但是由于旧工作队列机制的缺陷,其应用并不普遍,取而代之的是使用专用线程池,如flush-x:y,bdi-default等。新工作队列机制为内核提供一种通用的线程池机制,以替代这些专用线程池[1]。实际上,只要涉及中断驱动的程序设计,工作队列都是一种强有力的工

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。