




已阅读5页,还剩65页未读, 继续免费阅读
(计算机软件与理论专业论文)linux内核实时性的研究与改进.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着嵌入式技术的发展以及智能控制向着多领域的延伸,越来越多的设备需要高级的实 时操作系统的支持。l i n u x 操作系统由- 丁其开源、免费、应用众多、稳定安全笛特性而广受 青睐。但l i n u x 白身却有实时性不足的缺陷,这极人地阻碍了l i n u x 在嵌入式及智能设备上 的应用。 针对这一情况,本文研究了现有的各种第三方的l i n u x 实时化方案,指出了它们的优点 与不足。对于l i n u x 内核本身,则深入分析了包括调度系统、抢占系统以及高精度定时器等 与实时化相关的内核代码,并且也比较了儿个有代表性的版本的差异。 在l i n u x 实时化改进方面本文着眼丁软实时应t 【f j ,主要:l :作成果有以卜儿点: 1 、在比较了现有实时化技术以及深入分析了内核代码的基础上,针对l i n u x 对实时周期性 任务支持的不足,完善了一个与l i n u x 内核联系较为紧密的实时周期性任务调度框架, 并在此框架下对周期任务的可靠性和延迟性问题进行了改进。其关键技术包括: ( 1 ) 在l i n u x 新的调度类框架上增加了采用红黑树的静态周期调度算法r m ( 单调速 率算法) 以弥补现有的调度机制中缺少周期调度算法的不足: ( 2 ) 对底层所使川的信号机制进行了可靠性及调度延迟性方面的改进,包括可靠信 号的使用、可靠信号与不可靠信号处理顺序的改变以及周期定时器在信号处理 过程中重新挂载时机的修改等等; ( 3 )对高精度定时器中的调度延迟进行了改进,主要是将周期定时器处理的时间从 不可靠的时钟中断r 卜半部提前到了上半部中; ( 4 ) 为用户层提供了专用而方便的系统调用。 完善后的框架提供了更方便的接口、更有效的底层调度机制,周期任务的可靠性也得以 提高,调度延迟时间也有所减少。 2 、在兼顾c p u 运行效率的同时,一定程度上提高了定时器的精度,主要包括: ( 1 ) 提出了一种利用随机中断源米提高统计精度效果的方法; ( 2 ) 为了得到更有保障的周期调度精度,引入了一种轻量级时钟周期的思想,根据 本文的提高周期任务调度精度这个目的进行了相应的修改,并捉山了动态时钟 频率这一进一步改进的方案。 这儿种方法都在一定稃度上提高了定时器的精度,有助丁提高r m 周期性任务的凋度 粒度。最后也刖实验数据证实了上述的结论。 关键词:实时系统,l i n u x ,r m ,实时周期任务 东南人学颁卜学位论义 a b s t r a c t w i t ht h ed e v e l o p m e n to fe m b e d d e ds y s t e m sa n dt h ee x t e n s i o no fi n t e l l i g e n tc o n t r o l l i n gs y s t e m s , t h es u p p o r to fa d v a n c e dr e a l t i m eo p e r a t i n gs y s t e ma r er e q u i r e db ym o r ea n dm o r ee q u i p m e n t s t h el i n u xo p e r a t i n gs y s t e m ,b e c a u s eo fi t so p e ns o u r c e ,f r e eo fc h a r g e ,n u m e r o u sa p p l i c a t i o n s o f t w a r e s ,s t a b i l i t y , s e c u r i t ya n do t h e rf e a t u r e s ,i sf a v o r e db yaw i d er a n g eo fa p p l i c a t i o n s b u tt h e f e a t u r eo fr e a l t i m ei sn o ts u p p o r t e ds 0w e l li nl i n u x w h i c hw i l lg r e a t l yh i n d e rt h eu s i n go f l i n u x i nv i e wo ft h i ss i t u a t i o n ,t h ev a r i o u se x i s t i n gt h i r d p a r t ya m e l i o r a t i o n so fl i n u x sr e a l - t i m e a r es t u d i e da n dt h e i rr e l a t i v em e r i t sa r ec o m p a r e d f o rt h el i n u x sk e r n e ls o u r c et r u n k ,t h ec o d e so f t h er e l a t e d p a r t s a b o u tr e a l t i m ea r e a n a l y z e dd e e p l y ,i n c l u d i n gt h es c h e d u l i n gs y s t e m , p r e e m p t i o na n dt h eh i g h - r e s o l u t i o nt i m e r a n dt h e n ,t h ed i f f e r e n c e sb e t w e e nv a r i o u sv e r s i o n so f l i n u xa r ec o m p a r e d i nt h i sp a p e r , t h ei m p r o v m e n to fs o f tr e a l t i m ei st h ec h i e fg o a l f o l l o w i n g sa l et h em a i n w o r k s : 1 o nt h eb a s eo ft h ew o r ka b o v e ,f o rt h el a c ko fg o o ds u p p o r tf o rr e a l - t i m ep e r i o d i ct a s ki nl i n u x , t h ef r a m e w o r kf o rr e a l - t i m ep e r i o d i ct a s k s s c h e d u l i n gw h i c hi sm o r et i g h tw i t hl i n u xk e r n e li s p e r f e c t e d a n dt h ep r o b l e m so ft h er e l i a b i l i t ya n dl a t e n c yu n d e rt h ef r a m e w o r ka r ei m p r o v e d t o o m a i nt e c h n i q u e sa r el i s t e db e l o w : ( 1 ) t h en e ws t a t i cp e r i o d i cs c h e d u l i n ga l g o r i t h mr m ( r a t em o n o t o n i c ) ,w i t hr e d - b l a c kt r e e u s e d ,i sa d d e du n d e rt h en e wf r a m e w o r ko fs c h e d u l i n g - c l a s si nt h er e c e n tl i n u xk e r n e l , t oa v o i dt h el a c ko fp e r i o d i ca l g o r i t h mi nt h es c h e d u l i n gs y s t e mo fl i n u x ; ( 2 ) a i m i n ga tt h ep r o b l e m so fs c h e d u l i n gd e l a ya n dr e l i a b i l i t yo fp e r i o d i ct a s k s ,t h es i g n a l m e c h a n i s mu s e db yp e r i o d i ct a s k si si m p r o v e d ,i n c l u d i n gt h eu s eo fr e l i a b l es i g n a l s ,t h e a d j u s t m e n t o ft h ed i s p o s a ls e q u e n c ef o rr e l i a b l ea n dn o n - r e l i a b l es i g n a l s ,a n dt h e b r i n g i n gf o r w a r do ft h et i m e r se n q u e u e i n g ; ( 3 ) t h et i m eo fh i g h r e s o l u t i o nt i m e r sd i s p o s a li sc h a n g e df r o mt h eu n c e r t a i nb o t t o m - h a l f p a r tt ot h ec l o c ki n t e r r u p th a n d l i n gr o u t i n et or e s o l v et h ep r o b l e m o fs c h e d u l i n gd e l a y ; ( 4 ) as p e c i a la n dh a n d ys y s t e mc a l li sp r o v i d e df o rt h eu s e r - l e v e l w i t ht h ep e r f e c t e df r a m e w o r kf o rr e a l - t i m ep e r i o d i ct a s k s ,m o r ec o n v e n i e n ti n t e r f a c ea n dm o r e e f f e c t i v es c h e d u l i n gm e c h a n i s ma r ep r o v i d e d ,a n dt h er e l i a b i l i t ya n dl o ws c h e d u l i n gd e l a yc a n b eo b t a i n e dt o o 2 i nt h em e a n t i m eo fc o n s i d e r a t i o no ft h ec p ue f f i c i e n c y ,t h ea c c u r a c yo ft h eh i g h r e s o l u t i o n t i m e ri sh e i g h t e n e di ns o m el e v e l ,w i t ht h em e t h o d sl i s t e da sb e l o w : ( j ) t h em e t h o dt h a tr a n d o mi n t e r r u p t sa r eu s e dt oi m p r o v et h ea c c u r a c yi sp r o p o s e d ; ( 2 ) t og e tt h em o r er e l i a b l ea c c u r a c y , am e t h o dc a l l e d “l i g h t w e i g h tc l o c kp e r i o d ”i s i n t r o d u c e da n dc h a n g e df o rt h eg o a lo ft h i sp a p e r a n dan e wm e t h o dc a l l e d d y n a m i c c l o c kf r e q u e n c y i sp r o p o s e dt or e d u c et h ew a s t eo fc p u st i m e t h ea c c u r a c yo ft h eh i g h - r e s o l u t i o nt i m e ra n do fc o u r c et h es c h e d u l i n gg r a n u l a r i t yo fr e a l t i m e p e r i o d i ct a s k sa r eh e i g h t e n e di ns o m el e v e lb yb o t ho ft h et w om e t h o d sw i t he x p e r i m e n t si n t h ee n do ft h i sp a p e r a b s t r a c t k e y w o r d s :r e a l t i m es y s t e m ,l i n u x ,r m ,r e a l t i m ep e r i o d i ct a s k 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过 的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我 一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 研究生签名:监日 期: 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印 件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质 论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括 刊登) 论文的全部或部分内容。论文的公j , - ( 包括干u 登) 授权东南大学研究尘院办理。 研究生签名:j 幺监哩l 导师签名: 1 月奉p 仿日 第一章绪论 1 1 研究背景及意义 第一章绪论 随着技术的日益发展,各种嵌入式设备迅速普及,品种也越来越丰富:比如掌上电脑、 智能手机、m p 3 、m p 4 、电子阅读器等等。同时,这些设备也不再是简单的提供基本的服务, 而是向着智能、多用途、联网化方向发展。例如,手机不再光是打电话和发短信的l :具,而 越来越像一个掌上电脑,它可以上网、看视频、听音乐、阅览文档等等。冈此越来越多类似 的设备里都装有功能完备的操作系统。l i n u x 由于其廉价、开源、稳定、应用众多等特性, 而受到这些系统开发者的青睐。又如现在很流行的上网本也多倾向于安装l i n u x 系统。g o o g l e 公司更是推出了基于l i n u x 内核的a n d r o i d 手机操作系统。一些知名的手机厂家也纷纷推出 基于a n d r o i d 的手机。因此有人说2 0 0 9 年将是l i n u x 人发展的一年。 我国一直以米在操作系统的研究和开发领域就比较薄弱。开发一个完整的操作系统也不 是一件容易的事情。因此l i n u x 的出现与普及给了国产操作系统一个发展机遇。国内有实力 的一些操作系统厂商大多把l i n u x 拿来为我所用。如中科红旗,就开发出 等名的红旗l i n u x 操作系统,其嵌入式l i n u x 产品也已经用于机顶盒、路由器、交换机等领域。华为、联想、 中兴等公司也纷纷加入嵌入式l i n u x 的研究与开发。在今年的t h = 界移动通信火会上,华为就 已经展示了它们最新款的基于a n d r o i d 操作系统的手机原型机。中国移动也宣布将要推山基 于a n d r o i d 的国产手机操作系统o m s ( 开放移动系统) 。 在l i n u x 得到广泛应用的同时,也应该看剑,l i n u x 本身是一个注重于交互任务的分时操 作系统。从它的资源调度、分配来看也是处处体现了公平性原则。但许多的嵌入式系统却是 实时系统( 软实时较多) 或需要一些实时特性的支持,而l i n u x 在实时性方面则一直很薄弱。 冈而对l i n u n x 的实时性改进,一直是学术界和i :业界的一个热点。从国际国内发表的论文 来看,从很理论的调度算法,到很l 程的改造方案,所做的研究都不少。尽管如此,还是有 许多的问题朱得到很好的解决。另外,在当前经济危机日益严重的情况下,许多的1 t 企业 纷纷裁员或倒闭,而令人刮目的是,首先推山a n d r o i d 手机的台湾h t c 公司却连续多个月 保持高盈利。因此有人断言,经济危机是l i n u x 发展的机遇,而l i n u x 也给了危机中的企业 一个机遇。而止在崛起的中国l t 企业则更应该抓住这个难得的机遇。鉴y - l i n u x 实时性研 究的理论与实际意义,本文作者选取了这个课题并做了较为深入的研究。 1 2 论文主要内容及章节组织 本文的研究方向是l i n u x 的实时性研究与改进。在对l i n u x 现有的实时技术做深入的介 纠与研究的基础上,本文的创新点在丁。对一向较为忽视的l i n u x 中周期性实时任务的支持 进行了比较全面的以善,并在提高周j i 】任务底层所使川的定时器精度这一方面捉出和引入了 儿个改进的方案。需要说明的是,本文的土要改进都是针对软实时的。卜面详细的介幺f 一- 卜 各章钓具体内容。 第二章阐述了实时系统的定义以及它的特性,分析了l i n u x 与实时系统的关系及l i n u x 在实时性方面的不足点;接着详细介2 “了现有的第二方l i n u x 实时化方案,主要包括内核五正 迟、时钟精度、调度算法这儿个方面的改进技术; 第:二章详细地分析了l i n u x 内核中上j 实时化有关的部分代码,包括调度系统、中断系统 以及定时器等部分。同时住纵向上,也比较了具有代表性的儿个版本其内部机制的演变,从 东南人学顾士学位论文 而更好的理解l i n u x 主干内核的发展趋势。本部分代码的分析也为下一章实时化改进方案的 提出与分析做好理论上和:j 二程上的准备。 第四章是本文的重点。主要i :作是完善了l i n u x 对实时周 i j 性任务的支持,提出并引入 了提高周期任务调度粒度( 定时器精度) 的改进方案。具体地,在l i n u x 新的调度系统框架。卜, 加入了新的r m 算法以弥补现有内核中缺少周期调度算法的不足,使川了红黑树这一高效 的结构来坌f l 织其内部的进程队列,并对实时周期任务框架底层使川的机制信号系统和高 精度定时器进行了一些关键的修改,在川户层则为应川程序提供了方便的系统调州接口;在 定时器精度方面,引入的轻耸级时钟周期的概念,在此基础上提出了一种动态改变时钟频率 的方法,在尽量减小c p u 无功消耗的同时改善了时钟的精度,同时也提出了另一种利川随 机中断源来改善精度的方案。最后本文用实验测试证明了这些的方案的可行性与有效性。 第五章对本文的j i j 作做了总结,并讨论了后继的工作。 2 第一二章实时操作系统与l i n u x 第二章实时操作系统与l i n u x 2 1实时操作系统定义 在很多实际情况中,人们不仅关注任务的逻辑正确性,还关注任务的及时性。所谓的及 时,也可以分为对任务的响应的及时与完成的及时两种。例如,一驾飞机住突然遇剑紧急的 情况下必须第一时间执行左转的命令,如果这个命令不能在多少毫秒内得到及时的响应,那 么很有可能产生机毁人亡的后果:再例如,一个视频播放器,如果某一帧不能在0 5 秒内完 成解码,那么观看者很可能就会感到视频迟钝或是影音不同步。我们把可以满足任务的及时 性要求的系统称为实时系统。参考文献【1 】中对实时系统下了这样一个定义:“任何一个对外 界的刺激都能由计算机给出及时响应的系统就是一个实时系统。”其实,实时系统并不少见。 在现实世界里它有着j “泛的应用。从高度复杂的航天控制器,到现代化j i :厂的生产流水线, 再到我们身边的各式各样的小型手持嵌入式系统,实时系统都发挥着它应有的作用。 2 2实时操作系统的特性及性能指标 实时系统与平常所使川的桌面操作系统有着明显的区别,冈此它们的设计及具体的要求 也不尽相同。实时系统更专注于时间特性,不光是快速性,还包括可确定性。实时操作系统 通常会具有如下一些特性: 内核的低延迟性 这包括以。f ) l 个方面:( 1 ) 中断延迟时间小。中断延迟时间一般是指中断到来到c p u 响 应中断处理例科的时间。它一般由关中断时间、c p u 处理完当前指令时间、预处理时间r 包 括中断向量表的处理和跳转、压栈退栈时间以及其他一些步骤的处理时间) 所组成。其中关 中断的影响是最人的。实时系统一般都会允许内核可抢l j i ,冈此消除了关中断的影响。此外, 周期任务或是突发任务人都需要靠中断米触发。冈此中断的处理也应该及时而且迅速。为此, 中断处理例程一般尽可能的短小。( 2 ) 调度延迟时间小。调度延迟时间是指从有高优先级任 务需要调度,剑此任务真正投入运行的延迟时间。影响调度延迟的因素主要有调度挫序的执 行时间、内核中不可调度区( 包括不可中断区) 的多少及k 短。实时系统的调度程序一般都很 短小而迅速,调度算法也不会太过复杂。不可凋度区也很少出现。 高度的可抢lo i 性 可抢- 1 i 性牵涉剑资源的分配。实时系统一般都会有良好的资源分配及预留机制,以保障 包括c p u 、内核全局变鼙、其他硬1 i ,l :资源的可抢i l l 。性。同上条所述,不可调度区和不可中 断区的出现都会影响到可抢- i i - 性的性能。 时间计量的高精度性 实时系统一般都具有高精度的时钟机制。视具体的要求不同,其精度可以达剑毫秒、微 秒,共至纳秒级别。在高精度的时间机制卜,实时任务才可能得剑所要求的准确及时的调度。 上面所说的实时系统的特性同时也是设计一个实时操作系统所戍考虑的性能指标。 3 东南人学倾:f j 学位论文 2 3实时系统的分类与现有的实时操作系统 由丁实时系统使刚广泛、要求千著万别,因而也有许多种分类。土流的一般有以f ) l 种 分法。 按任务对时间限的紧迫程度来分,可以分为便实时系统和软实时系统。硬实时系统是对 时间限有1 f 常严格的要求的一类系统。在这些系统中,如果时间限得不到满足,就会发生一 些非常糟糕的事,比如重人事故、人员伤亡等。2 1 。1 了所举的那个匕机的例子就属丁硬实时 系统。而软实时系统对时间限的要求则相对缓和些。即使错过了时间限也不会有什么火难性 的事故发生,但可能造成诸如性能下降等“不可容忍”的情况。多媒体系统一股都是属丁软 实时系统。还有一种称之为同实时的系统( f i r mr e a l t i m e ,义被称为严格实时系统) ,其代表 是k u r t l i n u x 。它一般是介于软实时与硬实时之间的一种系统。但一般而言,不管软实时还 是硬实时,一个实时系统都应该尽最大努力确保任务对时间限的要求。 此外,实时系统还可以分为周期实时系统和1 卜周期实时系统。周期实时系统其内部的任 务一般都有同定的周期时间,即时间剑期值。例如i :厂的流水线控制就属于这类系统。谁周 期实时系统多用于处理突发任务。这类系统一般较难设计。但一般而言,大多数实时系统都 提供了对周期任务的支持。 通常所说的嵌入式系统也大多是实时系统。这种实时系统一般对硬件资源有比较高的要 求,如内存小、低耗能等。 目前,已经有相当数量的实时系统实例。卜面先介绍几种常见的独立内核的实时操作系 统: 1 、v x w o r k s v x w o r k s 是美国风河公司出品的一款为分布式环境设计的实时操作系统。它是一个高性 能、高可靠性的实时系统,并且也由于其高度的可裁性及开发环境的方便性而受到开发者的 欢迎。它也因此被广泛地应 l j 在军事、航天航空等高尖端技术及对实时性要求较高的领域。 v x w o r k s 的实时性做得很好,系统本身就很精简,架构合理,各个部分均可裁剪;进程 调度、中断处理所造成的延迟时间也很短。此外,v x w o r k s 对l i 业标准也提供了良好的支 持。 2 、l y n x o s l y n x o s 是由l y n x 实时系统公司开发的实时操作系统。它是一个微内核结构的操作系统, 具有可规模扩展的特性,并且较好地遵循p o s i x 实时系统标准。l y n x o s 对硬实时也提供了 较好的支持。 3 、0 n x o n x 是加拿人q n x 软什系统公司开发的一款微内核的实时操作系统。它对p o s i x 有 着良好的支持,冈此也方便了样序的移植。此外,它还具有模块化科度高、裁剪自如、易丁 扩展等特点。 4 、u c o s l l u c o s 1 1 是种免费开源、结构小巧、具有可剥夺内核的实时操作系统,最初由美国畋 入式系统专家j e a nj l a b r o s s e 开发。它的代码都是由c 利汇编语言编弓,冈此可以很方便 的移植刨各种埂f ,i :系统之上。此外它还具有执行效率高、。i 。川空间小、实时性能优良和可扩 展性强等特点。 5 、w i n d o w sc e w i n d o w sc e 是微软公司开发的一款面向移动钾能迎接设备的模块化嵌入式实时操作系 统。它与桌面w i n d o w s 系统订着类似的川户界面、系统调j t j 共至开发环境,闷此拥彳丁i 艮高 的使川率和接受度。 4 第二章实时操作系统与l i n u x 2 4l i n u x 作为实时操作系统的优势与不足 上节末所介绍的这些实时系统都是商家或组织各自开发的彼此独立的操作系统。独立开 发一个完整的操作系统是一项浩人的l :稗,并且上述的这些操作系统一般都价格昂贵。冈此 近年来,基丁免费开源的l i n u x 的实时系统也不断地涌出并得以j 。泛的廊刖。卜面详细地列 出了l i n u x 所具有的一些优势: 1 、开放源代码 l i n u x 是一个完全开放源代码的操作系统,任何人都可以对其源代码进行查看、学习、 修改甚至重新发布。开发人员可以根据自己的需要对代码进行任意地凋整,这对底层设施千 差万别的实时系统( 特别是嵌入式系统) 来说是非常重要的,也因此各式各样的l i n u x 改进版、 衍生版层出不穷,并被用于各式各样的场合。此外,l i n u x 背后强人的维护与开发社区也是 一个重要的技术支援。 2 、较高的用户基础及众多的应用软件 由于各种l i n u x 发行版的普及以及近年米手机、上网本人多采用l i n u x 的趋势,l i n u x 的 用户数量与日俱增。较高的用户基础意味着用户体验的轻松过度。此外,l i n u x 上现有的大 量应用程序也是一笔不小的资源。这都有利于提高采用l i n u x 的实时系统特别是嵌入式产品 的竞争力。 3 、较低的开发和使用成本 l i n u x 的使用是完全免费的,其上的各种主流的开发j i :具也人都可以免费使h j 。虽说免 费,其功能和可靠性也不亚于商刚的软什开发i :具。免费的使川和开发都极人地降低了系统 的开发成本。 4 、j “泛的硬件平台支持 l i n u x 支持多种体系结构的处理器,包括x 8 6 、a r m 、m i p s 、p o w e r p c 等等,这要归功 于它良好的构架。此外,它还有异常丰富的底层驱动资源,支持各种主流和最新的硬件设备。 因此各种嵌入式平台上都可以看到l i n u x 的身影。此外,i a n u x 灵活的模块机制和良好的代 码构架也方便了新驱动的开发和向新平台的移植。 5 、系统的高可靠性 l i n u x 系统一向以稳定及可靠性著称,在性能上也不逊色。在服务器领域的高采用率就 是一个很好的例子。此外,与一些专有的系统相比,l i n u x 上现有的病毒数量也少得多。 6 、高可定制性 l i n u x 上有完善的模块机制和编译配置机制,各种驱动和组件都可以通过配置米增删。 精简过的l i n u x 内核可以很小,这人人扩展了l i n u x 的使用范嗣。 尽管如此,l i n u x 毕竟是为桌面分时系统设计的,它更注重公平性和交互性,冈此实时 性就会相对不足,甚至连一些软实时的场合都不能胜任。人体米看,l i n u x 内核中主要有以 。f ) l 个方面制约了其在实时领域的应州: 1 白旋锁( s p i n l o c k ) 的人鲑使川 j 旋锁是在可抢i l i 内核雨is m p 体系结构卜对共享资源的一种同步机制。一个进样若持 有了任意一个白旋锁并且进入了白旋锁所保护的临界区,则往此临界区内抢1 - 。是大囱拊勺,其 它的进程优先级雨高也不能抢l i i 。当前进科而得以运行。冈此临界区的时间越k = ,产生的抢l i 延迟就越严重。目前内核中仍然人颦使刚亡 旋锁,并且有的白旋锁的持有时间依然很k ,抢 i 。i 延迟也1 卜常地不确定,这对一些实时廊川米说是不可以忍受的。 2 人内核锁的使h j 人内核锁是另一种形式的臼旋锁,色川丁整个内核的同步,冈此可以想见它的持有时间 是比较k 的。人内核锁任最新的内核| | j 仍然没有彻底消除,这将严重地影响抢l i 五正迟。 5 东南人学颁l j 学位论文 3 关中断操作 l i n u x 在一些同步操作中使用的中断关 j j 指令将增大中断延迟,降低系统的实时性。 4 内核不可抢r ! i 在l i n u x2 4 内核及以前的版本中,内核空间是不可抢i 的。如果个进样由丁某些原 因进入了内核空间运行,那么除非它返同川户空间或者主动放弃运行,否则高优先级的任务 是不可以抢i 它的。这势必会导致高优先级的实时进科得不到及时的调度。 2 6 内核对此进行了改进,内核空间已经可以抢1 1 i 了,这使得实时性得以增强。但是内 核中仍有人量的不可抢占区域,如由自旋锁( s p i n l o c k ) 保护的临界区,以及一些显式使h j p r e e m p t 使抢!i失效的临界区。此外,即使内核是可抢t!i的,也不是在任何地方都可_disable 以发生调度,例如在中断上下文中就是不可调度的。 5 中断总是优先执行 在l i n u x 中,虽然中断处理例程没有优先级的概念,但它却是事实上的最高优先级的任 务。除非关闭中断,否则在任何时刻,只要有中断发生,那么内核就会立即转去处理中断事 件。因此在这种情况下,实时任务优先级再高,也会被各种频发的中断所打断,从而影响其 实时性。另外虽然一般的中断处理例程都处理极快,但是处理时间相对较长且不确定的软中 断也和中断处理例程一样,是最高优先级的,它引起的问题会更加严重。如果一个系统中中 断发生非常之频繁( 如有繁重的网络负载和ii 0 负载) ,那么实时性任务将很难得以运行,此 时抢- 吁延迟将会非常的严重。 6 进程调度算的不足 在l i n u x2 4 及之前的内核版本中,进程调度器的时间复杂度是o ( n ) 的。也就是说,系 统中的进程越多,调度器的性能就会越著。这直接导致了调度器的效率低卜及运行时间的不 可预测性,影响实时进程的运行。 2 6 内核引入了全新的o ( 1 ) 调度器,调度时间不再与进程数有关,这使得调度器有一个 可以预测的运行时间,并且由于结构上的改进,使得调度器的运行时间也得以加快。此外内 核中也加入了一些可配置的调度点。 由上述分析可知,要让l i n u x 成为一个实时系统,就必须对其进行改造。现在,也有许 多实时系统是基于l i n u x 或是由l i n u x 改造而米的。这些系统人多数是软实时系统。这类系 统包括u c l i n u x 、r e d l i n u x 、l i n u x r k 、o l i n u x 、t i m e s y sl i n u x 等等。它们或是添加了新 的调度算法或调度框架,或是改进了中断机制,等等。此外也有一些硬实时系统,如r t a i 等,它们普遍采用了双内核机制。下面一。1 了将详细介绍现有的l i n u x 第二方实时化改进技术。 2 5现有l i n u x 第三方实时化技术介绍 针对l i n u x 实时性的不足,现有的官方内核外的改进技术主要着眼丁以卜的儿个方面: 内核延迟( 包括中断延迟、调度延迟等等) 、时钟精度、资源分配与凋度等等。f i 面j h1 ,将按 j ! i c 这个分类来介绍不同的解决方案,并对其中较有特点的方案进行了较详细的分析。 2 5 1 内核延迟的改进 很多内核延迟的改进都是针对锁机制的改进。冈此。卜面将会有不少是犬。r 各种锁的改进 方案。除了锁以外,针对中断( 土要是大中断引起的内核延迟) 的改进也有不少,其中的舣内 核技术其至能够实现一个硬实时内核。 白旋锁转化为m u t e x 锁 s p i n l o c k 号l 、j 川- j :s m p ( 对称多处理器) 体系卜i 的共享资源的保护,典孛资源包括内核全 6 第一二章实时操作系统jl i n u x 局变晕和只能独i 与的硬件资源等。s p i n l o c k 保持期间将使抢 失效,在单处理器上,它什么 也不做,但是加了可抢l 叶代码后,它将禁i 卜抢io i 。用s p i n l o c k 保护的区域称为临界区( c r i t i c a l s e c t i o n ) ,现今的内核中仍然人量地存在着这种使川s p i n l o c k 锁保护起爿的l 临界区,它们将 严重地影响系统的实时性。有很多实时改进方案崩丁改进s p i n l o c k 的性能。川m u t e x 来替换 s p i n l o c k 就是一种不错的方法。其基本思想是 止s p i n l o c k 暂时可以被抢占,被抢l l i 的低优先 级任务将被持到等待队列中去。待抢l b 的任务也运行剑同一个s p i n l o c k 保护区时,再将被抢 i i i 。的任务投入运行。在i n g om o l n a r 的实时补j 中,每个s p i n l o c k 都有一个按任务的优先级 排队的等待队列。如果一个进程所要持有的s p i n l o c k 已经被另一个进科所获得,则暂时未 能获得该锁的进程将被挂载剑该s p i n l o c k 的等待队列上,而原来的做法是简单地白旋。 同时,为了配合s p i n l o c k 可抢i ,使用m u t e x 锁的地方,其代码必须是可以调度的。因 此,必须将中断线程化( 见后) 。而对于不能线程化的中断,必须使刚原来的s p i n l o c k 锁。 大内核锁可抢占 大内核锁( b l 用于保护整个内核,它实质上也是s p i n l o c k 。由于它保持的时间比较长, 冈此对整个系统的实时性有较大的影响。在i n g om o l n a r 的实时补j 【2 】【3 1 中,人内核锁使用 了s e m a p h o r e 来实现,使得修改后的大内核锁可以被抢l 。 可抢占补j 在p r e e m p t 机制朱进入内核主干之前,它是作为一个单独的补丁出现的。在2 6 内核代 码中,可以在编译时配置c o n f i g p r e e m p t 参数米打开或关闭可抢r 机制。本文将在3 2 :肖详细讲述可抢, * f i b _ j 的实现机制。 低延迟补丁 义可称为v o l u n t a r yp r e e m p t i o n ( 白愿抢l i ) f 3 啤卜- j 。它包含两种形式的改进:锁分解和增 加抢r 与点。 锁分解技术用来解决临界区过人的问题的。它的基本思想是在不破坏逻辑的情况卜,将 人锁分解成一块块的小锁。比如有一卜面的程序: s p l n _ l o c k ( & x _ i o c k ; f o rl 一) s o m eo p e r a t i o n 8 _ ) s p i n u n l o c k ( & x _ l o c k ) 7 锁分解后就变为: f o ri ) ( s p l n _ l o c k ( & x _ l o c k ) ; s o m eo p e r a t i o n 8 一 s p l n _ u n l o c ki & x _ l o c k ) 7 ) 可以看到,在解锁加锁的间隙,内核会有短时间的可抢一i i 区 增加抢- i - 点即是白愿被抢i i 。它是通过住内核中运行时间可能会比较k 的段中加入调度 点来改善可抢i i 性的,例如: f o r ( ;) ( | m a n ym a n yo p e r a t o n s 一| c o n d _ r e s c h e di ) ; ) 加入的c o n d r e s c h e d ( ) 函数便实现了调度的功能: i n t s c h e d _ c o n d _ r e s c h e d ( v o i d ) i f ( n e e d _ r e s c h e d ( ) ll p r e e m p t c o u n t i ) p r e e m p ta c t i v e ) s y s t e m = = )(_state s y s t e mr u n n i n g 7 东南人学顾 :学位论文 c o n d _ r e s c h e d1 ) ; r e t u r n1 ; ) r e t u r n0 ; ) s t a t i cv o i dc o n d _ r e s c h e d ( v o i d ) ( d o ( a d d _ p r e e m p t _ c o u n t ( p r e e m p t _ a c t i v e ) ; s c h e d u l e j ;调度函数 s u b _ p r e e m p t _ c o u n t ( p r e e m p t _ a c t i v e ) ; ) w h i l e ( n e e d _ r e s c h e d i ) ) ; ) 在2 6 内核中,c o n d r e s c h e d 机制已经被加入了代码树中。编译内核时可以通过打开 c o n f i gp r e e m p tv o l u n t a r y 配置来启动这一特性。此外,在性能上,有测试表口f l j 4 1 , 可抢占补丁要好于低延迟补丁。 对b o t t o mh a l t 机制的监控 此方法 5 1 的主要思想是实时监控b o t t o mh a l f 的运行,使得系统不会因为b o t t o mh a l f 的 运行而变得颠簸。它使用二个模块米达剑这一目的:p r o c e s s i n gt i m em o n i t o r 、t h r e s h o l dt i m e c o n t r o l l e r 、p e n d i n gq u e u ec o n t r o l l e r 。p r o c e s s i n gt i m em o n i t o r 计算每个b o t t o mh a l f 所用的c p u 时间:t h r e s h o l dt i m ec o n t r o l l e r 计算每个b o t t o mh a l f 可以使削的极限时间:p e n d i n gq u e u e c o n t r o l l e r 在总时间达剑极限时间的情况卜将剩_ 卜的b o t t o mh a l f :f i :作全部移除。通过这种方 法,使得系统的c p u 利用率达剑比较稳定的状态。 延迟加锁技术 延迟加锁技术【6 l 【7 l 是另一种为了克服s p i n l o c k 临界区的问题而提出的改进方法。它的基 本原理是通过预测下一个将要发生的锁可能运行的时间,来决定是否允许当前代码进入临界 区。具体的实现是加入了s p i nl o c km o n i t o r 和s p i nl o c km a n a g e r 模块。s p i nl o c km o n i t o r 模块 用米记录和计算每个由s p i n i o c k 锁保护的临界区的执行时间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东广州市天河区培艺学校招聘1人笔试参考题库附答案解析
- 文秘工作技巧与实务指导
- 现代修辞手法训练题集及解析
- 中小学生阅读理解专项训练题
- 医院医疗器械维护管理操作指南
- 初级员工绩效考核标准及流程
- 国际贸易单证制作与法律条款解析
- 企业数字化转型规划与方案
- 幼儿园家园联系资料及安全教育指导
- 病毒感染传播机制研究方案总结
- 中医治未病健康宣教
- Ice-O-Matic CIM登峰系列制冰机培训手册
- 《穴位埋线疗法》课件
- 【大型集装箱船舶港口断缆事故预防应急处理及案例探析7500字(论文)】
- 发展汉语-初级读写-第一课-你好
- 律师事务所人事管理制度
- 高中英语完形填空高频词汇300个
- 2023-2025年世纪公园综合养护项目招标文件
- 脑梗塞并出血护理查房
- 医院感染科室院感管理委员会会议记录
- 鲁班锁制作技术
评论
0/150
提交评论