欢迎来到天天文库
浏览记录
ID:5597583
大小:38.50 KB
页数:14页
时间:2017-12-19
《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]。实际上,只要涉及中断驱动的程序设计,工作队列都是一种强有力的工
此文档下载收益归作者所有