




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、国防科学技术大学硕士学位论文基于单触发时钟的嵌入式Linux实时技术研究与优化姓名:王文竹申请学位级别:硕士专业:计算机科学与技术指导教师:吴庆波20091201国防科学技术大学研究生院硕士学位论文摘要近年来,嵌入式系统在军事、工业、航天等重要领域得到了广泛应用,同时这些领域对系统的实时性也提出了越来越高的要求。相对于其它嵌入式操作系统,L i n u x 具有开放源代码、可裁剪、性能稳定、可靠性高、支持S M P 体系结构等特点,目前基于L i n u x 的嵌入式系统应用案例越来越丰富。本文对嵌入式L i n u x 中的时钟机制、计时系统、时间戳系统、定时器系统以及调度框架和调度算法进行
2、了深入的分析。在此基础上,针对嵌入式L i n u x 在实时性能上所面临的问题,基于单触发时钟对其进行了实时优化。在时钟系统方面,本文首先实现了单触发时钟,并基于单触发时钟设计了资源控制器O T I 比( O n e s h o tT i m e rB a s e dR e s o u r c eC o n t r o l l e r ,O T R C ) 。O T R C 主要用于管理系统中的资源( 如C P U 等) ,并根据具体的实时需求来控制时钟中断的时间。另外,改造了计时系统,保证了系统在单触发时钟下计时的正确性。在定时器系统方面,设计了高精度定时器系统。该系统基于O T R C
3、对定时器队列的管理,可以得到微秒级的时钟精度。另外利用时间戳计数器设计了细粒度的时间戳系统,为高精度定时器系统提供了准确的时间度量。改造后的高精度定时器系统能够达到微秒级的定时精度。在调度算法上,提出了O B E D ( O T R CB a s e dE D FS c h e d u l i n g ,O B E D ) 实时调度算法,并设计了新的实时调度框架。该框架将实时进程和非实时进程分开管理,对实时进程使用E D F 调度算法,而对非实时进程使用L i n u x 原有的调度算法,并利用O T R C 对进程的执行进行管理和控制。O B E D 算法综合了两种算法的优点,既能够保证实时
4、进程的时间约束条件,又可以提高非实时进程的性能,达到了提高系统吞吐率的目的。最后,本文在P o w e r P C 嵌入式平台上实现了单触发时钟系统、细粒度时间戳系统、O T I 汇资源控制器和高精度定时器系统,并实现了O B E D 实时调度框架的原型系统。测试结果显示,改进后的系统在实时性方面有了很大的提高。主题词:嵌入式L in L I X ,实时,单触发时钟,高精度定时器,实时调度算法,P o w e r P C第i 页国防科学技术大学研究生院硕士学位论文A B S T P A C TI nr e c e n ty e a r s e m b e d d e ds y s t e m
5、sh a v eb e e nw i d e l ya p p l i e di nt h em i l i t a r y ,i n d u s t r i a l ,a e r o s p a c ea n do t h e ri m p o r t a n ta r e a s A tt h es a m et i m e ,t h er e a l - t i m ea l S Or a i s e dh i g h e ra n dh i g h e rr e q u i r e m e n t si nt h e s ea r e a s C o m p a r e dw i t
6、ho t h e re m b e d d e do p e r m i n gs y s t e m s ,L i n u xh a sm a n ya d v a n t a g e sw h i c hC a nb ec u t t i n g ,s t a b l ep e r f o r m a n c e ,h i g hr e l i a b i l i t y 。s u p p o r tf o rS M Pa r c h i t e c t u r e ,a n dS Oo n I nv i e wo ft h e s e ,t h i sa r t i c l ee m p
7、 h a s i z e so nh o wt oi m p r o v et h er e a lt i m et e c h n o l o g yo fe m b e d d e dL i n u x T l l i SP a p e rh a sd e e p l ya I l a l y s i s e dt h ec l o c km e c h a n i s m ,t i m i n gs y s t e m ,t i m es t a m ps y s t e m ,t i m e rs y s t e m ,s c h e d u l e r ,a n ds c h e d
8、 u l i n ga l g o r i t h m T h e ni tp r e s e n t st h ec o r r e s p o n d i n gs o l u t i o n sa g a i n s tt h e s ek e yp r o b l e m sb a s e do nt h eo n e s h o tt i m e rf o re m b e d d e dr e a l t i m eL i n u x I nt h ec l o c ks y s t e m t h i sa r t i c l ed e s i g n st h er e s o
9、 u r c ec o n t r o l l e rO T I 犯( O n e s h o tT i m e rB a s e dR e s o u r c eC o n t r o l l e r ,0 T R C ) b a s e do nt h eo n e s h o tt i m e r O T l 地i su s e dt oc o n t r o lt h ei n t e r r u p to ft h eo n e s h o tc l o c k ,m a n a g et h er e s o u r c ei nt h es y s t e m a n dc o
10、n t r o lt h eo n e s h o tc l o c ka c c o r d i n gt ot h es p e c i f i cn e e d so fr e a l t i m er e q u j i r e m e n t s I no r d e rt om a i n t a i nt h ea c c u r a c yo ft i m i n g ,t h et i m i n gs y s t e mi sr e b u i l t I nt h et i m e rs y s t e m ,t h eh i g hr e s o l u t i o n
11、t i m e ri Sd e s i g n e d T h el l i g l lr e s o l u t i o nt i m e rs y s t e mC a nr e q u i r em i c r o s e c o n d 1 e v e lc l o c ka c c u r a c yb a s e do nt h eO T R Cw h i c hm a n a g et h eq u e u eo ft i m e r I na d d i t i o n ,t h et i m es t a m ps y s t e mw h i c hC a np r o v
12、 i d ea c c u r a t et i m em e a s u r e m e n tt oh i g hr e s o l u t i o nt i m e rs y s t e mi Sd e s i g n e d a n di tw o r k sb a s e do nt h et i m es t a m pc o u n t e r T h el l i g I lr e s o l u t i o nt i m e rs y s t e mC a na c h i e v em i c r o s e c o n d - l e v e lt i m i n ga
13、c c u r a c y I nt h es c h e d u l i n ga l g o r i t h m ,t h eO B E D ( O T I 配B a s e dE D FS c h e d u l i n g ,O B E D )r e a l t i m es c h e d u l i n ga l g o r i t h mi Sd e s i g n e d a n dt h er e a l t i m es c h e d u l i n gf r a m e w o r kb a s e do n0 T I 比i Sd e s i g n e d T h e
14、f r a m e w o r ks e p a r a t e st h er e a l - t i m ep r o c e s sa n dg e n e r a lp r o c e s s T h er e a l t i m ep r o c e s si ss c h e d u l e dw i t hE D Fa l g o r i t h m w h i l et h eg e n e r a lp r o c e s si Ss c h e d u l e dw i t ht h et r a d i t i o n a lL i n u xs c h e d u l
15、i n ga l g o r i t h m O B E Da l g o r i t h mc o m b i n e st h ea d v a n t a g e so ft h et w oa l g o r i t h m s ,a n dc o n t r o l st h ep r e e m p t i o no fp r o c e s s e s T h eO B E Ds c h e d u l i n gf r a m e w o r kC a l ln o to n l yg u a r a n t e et h et i m ec o n s t r a i n t
16、 so fr e a l t i m ep r o c e s s b u ta l S Oi m p r o v et h ep e r f o r m a n c eo fn o n r e a l t i m ep r o c e s s S o t h i sf r a m e w o r kc a ni m p r o v et h et h r o u g h p u ti nt h er e a l t i m es y s t e m F i n a l l y ,t h i sp a D e ri m p l e m e n t st h eo n e - s h o tc
17、l o c ks y s t e m ,t i m e s t a m ps y s t e m ,O T R C ,a n dh i g hr e s o l u t i o nt i m e rs y s t e m a n dt h e ni m p l e m e n tas i m p l es y s t e mo fO B E Ds c h e d u l i n gf r a m e w o r ki nL i n u xk e r n e l ,n l ee x p e r i m e n t a lr e s u l t ss h o wt h a tt h ei m p
18、r o v e ds y s t e mi Sg r e a t l yi m p r o v e di nt h er e a l - t i m ep e r f o r m a n c e K e yW o r d s :e m b e d d e dL i n u x ,r e a l - t i m e ,o n e s h o tc l o c k ,h i g hr e s o l u t i o nt i m e r s ,r e a l t i m es c h e d u l i n ga l g o r i t h m ,P o w e r P C第i i 页国防科学技术
19、大学研究生院硕士学位论文表目录表3 1P I T 的工作模式1 9表5 1 进程符号定义4 l表6 1 实验环境5 5第1 V 页国防科学技术大学研究生院硕士学位论文图目录图3 1L i n u x 计时系统1 8图3 2 单触发计时系统2 0图3 3时钟设备的管理2 1图3 4 单触发时钟系统。2 2图3 5O T R C 结构2 5图3 6O n 屺与单触发时钟2 6图4 1L i n u x 定时器链表2 8图4 2O T R C 控制定时器原理3 l图4 3 时间戳函数结构3 4图4 4 高精度定时器框架3 5图4 5O T R C 设置时钟设备3 7图5 1L i n u x 的进程
20、运行队列3 8图5 2L i n u x 的调度框架4 l图5 3 对L i n u x 调度器的改进4 3图5 4O B E D 改进非实时进程性能4 3图5 5 进程调度策略4 4图5 6O T R C 对进程的控制4 7图5 7 基于O T R C 的实时调度框架4 8图6 1 红黑树数据结构4 9图6 2O T R Ch r t i m e r s 结构5 0图6 3 定时器处理流程图。5l图6 4O T R Ct a s k 结构图5 2图6 5O T R C 结构5 3图6 6 原定时器系统5 6图6 7 基于O T R C 的定时器系统5 6图6 8O B E D 调度器执行实验
21、一5 7图6 9L i n u x 调度器执行实验一5 7图6 1 0O B E D 调度器执行实验二5 8图6 1 lL i n u x 调度器执行实验二( F I F O ) 5 8图6 1 2L i n u x 调度器执行实验二( R R ) 5 8第V 页独创性声明本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学位或证书而使用过的材料与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意学位论文题目
22、:基王望触发时鱼的邀式L i 型兰塞吐盐苤砑窥生佐焦-,- J学位论文作者签名:叁圣垒当日期:2 a r D 呷年I - 2 月2 9 日学位论文版权使用授权书本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文( 保密学位论文在解密后适用本授权书。)学位论文题目:基王皇触发吐鲑鲍送式垦i 业茎塞吐垫苤珏究皇选焦一学位论文作者签名I至垂笪一日期:二一吁年饺月2 阴作者指导教师签名:
23、塑型垒日期:如9年2 月冲日国防科学技术大学研究生院硕士学位论文第一章绪论1 1 引言随着我国工业、航天、军事等领域的迅速发展,嵌入式系统正得到越来越多的应用,同时对它的实时性也提出了更高的要求。例如我国的嫦娥绕月卫星在进行调整轨道和飞行纠正的时候,由于卫星的飞行速度很快,失之毫厘则谬之千里。如果轨道参数的计算结果不满足时间的约束条件,将会导致卫星轨道的偏离。因此,该系统需要具有较高的可靠性和实时性。随着嵌入式领域的发展,对实时技术的研究逐渐成为了一大热点。近年来,嵌入式L i n u x 逐步走向成熟,越来越多的企业和研究者喜欢使用L i n u x来开发嵌入式系统,这主要是因为L i n
24、u x 具有跨平台、开放源代码、安全稳定等优点。但是,嵌入式L i n u x 的实时性还有一定的不足,包括两方面的原因:一是嵌入式系统的时钟精度较低,无法满足实时应用对内核的及时抢占和高精度定时等操作;二是缺少高效的实时调度算法,以保证实时进程的时间约束条件。有效提高时钟精度的方法是提高系统的时钟频率,但提高时钟频率将会增加系统处理时钟中断的时间,继而影响系统的整体性能。另外频繁的时钟中断也会影响进程执行的连续性和降低c a c h e 命中率。嵌入式系统往往功率低、性能有限,因此,以牺牲系统性能而提高时钟精度的方法显然不适用。自从美国的K a n s a s 大学最早利用时钟芯片的单次触发
25、模式( O n eS h o tM o d e ) 来提高时钟精度后【l 】,利用单触发时钟已经成为了提高时钟精度的主要方法之一。该模式在每次时钟中断时对时钟芯片设置一个超时值,以此决定下一次时钟中断的时间。单触发时钟方法既保证了特定实时任务的精度需求,又避免了频繁的时钟中断,因此得到了广泛的应用。而后R T l i n u x 以及M o n t aV i s t a 等基于L i n u x 的嵌入式操作系统都利用单触发时钟来提高系统的时钟精度 2 1 。实时系统是一种时间敏感的系统。作为一种典型应用,外部的一种或多种物理设备给了计算机一个输入,计算机必须在一个确定的时间范围内恰当地做出反
26、映,正确而迟到的应答往往比没有应答还要糟糕 3 1 。常用的实时调度算法有速率单调调度( R a t eM o n o t o n i cS c h e d u l i n g ,R M S ) 和最早最终时限优先调度( E a r l i e s tD e a d l i n eF i r s t ,E D F ) ,它们都是以实时进程的时间因素作为基本的调度参数的。但L i n u x 的调度器的实时调度算法以进程的优先级为调度参数,没有考虑进程的时间因素,因此在很大程度上无法满足实时进程的时间约束条件 4 1 。因此,基于L i n u x而进行改造的实时系统都加入了实时调度算法,如R
27、T L i n u x 增加了R M S 和E D F调度算法,K U R T 也引入了混合调度模式,红旗实时操作系统也增加了基于预留第1 页国防科学技术大学研究生院硕士学位论文资源机制的实时调度算法【4 J 。相对于非实时系统而言,实时系统对时钟精度、进程调度等方面有了更高的要求,目前的实时操作系统都在这些方面做了大量的工作。如M o n t aV i s t a 实时系统发起了基于单触发时钟的H R T 项目 3 1 ,该项目主要开发一种高精度的定时器;而后L i n u x 内核又出现了h r t i m e r s 模块,该模块在H R T 基础上做了进一步改进。本文对嵌入式L i n
28、 u x 的实时技术优化展开了研究,分析了改进L i n u x 内核实时性的关键技术,并提出了具体的优化方案。基于时钟芯片的单触发工作模式,设计了资源控制器O T R C ( O n e s h o tT i m e rB a s e dR e s o u r c eC o n t r o l l e r ) 。O T R C 控制时钟设备产生单触发时钟中断,因此可以对具有时间约束的系统资源进行控制,使其在时间约束范围内得到执行。利用O T R C 对嵌入式L i n u x 进行了两方面的改进:一方面基于O T R C 设计了高精度定时器系统,另一方面对L i n u x 的调度器进行了实
29、时改进。在设计高精度定时器系统时,由于单触发时钟对计时系统造成影响,因此对计时系统进行了改造:为了给定时器对象提高细粒度的时间戳,利用时间戳计数器对时间戳系统进行了改造;最后提出了嵌入式系统中的高精度定时器框架。在对L i n u x 调度器进行实时性改进时,为了增强调度器对实时进程的时间进行约束,设计了一种新的调度算法。最后在P o w e r P C 嵌入式平台上进行了实时性改进。测试结果表明,高精度定时器的定时精度达到微秒,新的实时调度器在实时调度上也表现出了较好的性能。1 2 嵌入式系统中的实时概念实时系统可以定义为对外部事件及时响应的系统,例如,实时系统在时间约束范围内完成对外部输入
30、的处理,并将结果返回给用户,实时系统并非是指“快速”的系统,更重要的是它有限定的响应时间,从而使系统具有可预测性【5 J 。嵌入式系统是指设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统 6 1 ,主要的嵌入式系统有Q r C X 和V x w o r k s 等。如果把实时系统和嵌入式系统看做两个集合的话,那么它们之间会有一部分交集,这部分交集就是实时嵌入式系统( r e a l t i m ee m b e d d e ds y s t e m s ) 。设想一个实时武器防御系统,其作用是对导弹进行拦截,以保护海军驱逐舰免受破坏,理想的情况是将飞来的导弹在接近驱逐舰以前将其击
31、碎。防御系统由雷达系统、命令决策系统、武器火力控制系统组成。其中决策系统必须快速地计算出入侵导弹的预期飞行路径,在它进行破坏前将其摧毁。如果决策系统用太长的时间进行飞行路径的计算,则导弹将达到预定的目标而没有被摧毁;如果计算结果不够精确,则仍无法有效拦截目标。从这个例子可以看出实时系统的两个基本特征:实时系统必须产生正确的结果,称为逻辑或功能正确( 1 0 9 i c a lo rf u n c t i o n a l第2 页国防科学技术大学研究生院硕士学位论文c o r r e c m e s s ) ;计算必须在预定的时问内完成,称为时间正确( t i m i n gc o r r e c
32、 m e s s ) 。由此可见,对于实时系统来说,时间正确和功能正确是同等重要的,而非实时系统只要求功能的正确性。在上面的例子中,如果决策系统不在规定的时间内计算出结果,则导弹将对驱逐舰造成致命的摧毁,因此决策系统必须在某个规定的时刻以前( 或规定的时间范围) ,这就是硬实时系统,它在时间上有严格的限制。另一类系统是软实时系统,在这种系统中,偶尔违反时间上的限制是可以接受的,并且不会引起永久性的损伤。例如数字音频、数字电话或多媒体系统就是软实时系统。实际上,实时操作系统可以定义为是一个程序,它按时序方式调度执行、管理系统资源,并为开发应用代码提供一致的基础。大多数的实时操作系统一般由以下几个
33、部分组成:调度器、对象和服务。调度器用来决定执行哪个任务;对象是特殊的内核构件,帮助开发者创立实时系统的应用,如任务、信号量、消息队列等;而服务是内核在对象上执行的操作或通用的操作,如计时、中断处理和资源管理。嵌入式实时操作系统一般具有如下特点【6 】:( 1 ) 确定性( D e t e r m i n i s m ) :实时软件对于外部事件的响应时间必须是实时的、确定的和可以重复实现的,不管当时系统内部状态如何,都是可预测的。一个测量操作系统确定性能力的指标之一就是中断延迟时间。( 2 ) 响应性( R e s p o n s i v e n e s s ) :这是与确定性相关但是不同的特
34、征。确定性考虑的是在应答一个中断前操作系统延时的长短;而响应性考虑的是在应答中断后,操作系统服务中断的时间长短。( 3 ) 可靠性( R e l i a b i l i t y ) :是指在规定时间内及条件下,系统能正确完成其功能的概率。系统可靠性的量化指标之一是周期内系统平均无故障运行时间。( 4 ) 性能( P e r f o r m a n c e ) :这是指一个嵌入式实时系统必须执行得足够快,以满足时间需求。虽然硬件可以指出系统的处理能力,但是软件也是影响系统性能的关键。( 5 ) 紧凑性( C o m p a c t n e s s ) :应用设计约束和费用约束有助于决定一个系统应
35、该如何紧凑,因为在嵌入式系统中,硬件资源是有限的,因此嵌入式实时操作系统必须小巧而有效。( 6 ) 伸缩性( S c a l a b i l i t y ) :由于实时系统可以广泛应用于各种嵌入式平台中,所以必须能够上下剪裁以满足特定的应用需求,依据所要求的功能,实时系统应当具有增加或减少模块化部件的功能,如文件系统和协议栈等。虽然目前已经有很多成熟的嵌入式操作系统,但L i n u x 因其可靠性、高效性以及源码公开等特点,正被广泛应用于嵌入式领域。L i u n x 目前获得最大的成功除了第3 页国防科学技术大学研究生院硕士学位论文作为服务器操作系统,就是在嵌入式领域的应用了。经过了二十多
36、年的持续开发,嵌入式L i n u x 拥有非常广泛的客户群,也具有丰富的开发资源,尤其在稳定性、开发速度和多处理器支持等方面都非常优秀。同时,嵌入式实时L i n u x 也正在逐步得到发展,对提高其实时性方法的研究已经成为业界非常关注的问题【7 J 。随着信息技术的飞速发展,实时系统已经渗透到日常生活的各个层面,包括传统的数控领域、军事、制造业和通信业,甚至连潜力巨大的信息家电、媒体广播系统和数字影像设备都对实时性提出了愈来愈高的要求。1 3 本文工作嵌入式操作系统是实现嵌入式系统中任务调度和资源管理的基础软件,也是应用开发的基础平台。L i n u x 凭借其优异的可靠性和性能而被广泛应
37、用于嵌入式领域,但目前L i n u x 对实时技术的支持还很有限,且对非实时进程的性能影响较大。因此,本文针对嵌入式L i n u x 的时钟精度进行改进,并设计了高精度定时器和新型的调度算法。操作系统的计时系统是整个系统得以正常工作的基础,进程时间片、驱动程序、内核定时器和用户计时等都依赖于操作系统的计时系统,因此对系统的时钟进行改造时需要注意计时系统的正确性。原有的计时系统是基于周期性的时钟中断,每个时钟中断到来时内核的j i f f i e s 变量加1 。但是提高时钟精度后,时钟中断不是周期性的,而是随机的,因此必须考虑在这种情况下如何处理计时系统。提高时钟精度是实现高精度定时器的基
38、础,同时时间戳是判断定时器到期与否的依据,因此还需要实现细粒度的时间戳系统。实时进程调度是管理实时系统中进程资源的基础,因此需要考虑实时调度器的设计。本文深入分析了嵌入式L i n u x 的内核,并研究了当前主流的实时技术,进行了如下工作:( 1 ) 设计了资源控制器O T R C ( O n e s h o tT i m e rB a s e dR e s o u r c eC o n t r o l l e r ) ,O T R C 能够根据系统中当前的实时需求来控制时钟,以提供微秒级的时钟精度,为实时资源( 如定时器对象和实时进程) 提供精确的内核抢占点。同时,对系统性能的影响也较小。
39、( 2 ) 设计了单触发时钟下的计时系统。单触发时钟打乱了系统中原有的计时系统,如果不加以修改,则系统的计时系统将产生严重的错误,使系统无法正常运行。对计时系统的改造,保证了系统计时的正确性,确保了系统的正确运行。( 3 ) 设计了细粒度时间戳系统。时间戳是操作系统中与时间有关操作的重要数据,也是定时器判断到期与否的基础。原有的时间戳过于粗糙,只能精确到毫秒。改造后的细粒度时间戳可以精确到微秒,为高精度定时器的设计第4 页国防科学技术大学研究生院硕士学位论文提供了保障。( 4 ) 设计了高精度定时器系统。定时器是实时系统中广泛应用的操作系统对象。改造后的嵌入式L i n u x 高精度定时器能
40、够将定时精度由原来的毫秒级提高到微秒级。( 5 ) 设计了基于O T R C 的实时调度器,为了增强对实时进程的管理,提出了O B E D ( O T R CB a s e dE D FS c h e d u l i n g ,O B E D ) 调度算法。该算法能够在系统资源充足的情况下,保证实时进程的时间约束条件,同时兼顾了非实时进程的性能。随着我国军事、航天等事业的不断发展,对嵌入式系统的实时性能提出了更高的要求。嵌入式L i n u x 为实现嵌入式系统提供了很好的解决方案。但嵌入式L i n u x实时性能的发挥有赖于进一步的研究,因此,嵌入式实时L i n u x 操作系统如何更好
41、地支持嵌入式系统以及如何充分发挥实时性能是一个值得研究的问题。本文通过对嵌入式L i n u x 进行实时性研究和优化,实现了高精度定时器和实时调度器,而且也为将来的进一步研究打下了良好的基础。1 4 论文结构全文共分为六章,各章内容如下:第一章绪论对嵌入式操作系统和实时概念作了概要性介绍,阐述课题背景以及研究内容。第二章相关研究首先概要介绍了主要的基于L i n u x 的实时操作系统,然后对高精度定时器和实时调度算法进行了概述,为高精度定时器的设计和L i n u x 调度器的实时性优化提供理论及实践上的借鉴。第三章单触发时钟的资源控制器O T R C在深入分析和研究了单触发时钟系统的基础
42、上,对单触发时钟下的计时系统进行了改造,设计了资源控制器O T R C ,对单触发时钟系统进行了封装和扩展,为高精度定时器和实时调度器的实现提供了保障。第四章基于O T R C 的高精度定时器首先分析了原有定时器系统的特点及其不足,然后有针对性地提出了改进方案,包括定时器对象的存储数据结构以及细粒度的时间戳系统。然后基于O T R C设计了嵌入式L i n u x 的高精度定时器系统。第5 页国防科学技术大学研究生院硕士学位论文第五章基于O T R C 的L i n u x 调度器实时性改进针对L i n u x 中调度器实时性的不足,设计了基于O T R C 的进程管理系统,将实时进程与非实
43、时进程分开进行管理。基于E D F 算法设计了O B E D 实时调度算法,对实时进程进行调度;非实时进程仍然使用原有的L i n u x 调度算法。O T R C 进程管理系统可以控制时钟中断,为O B E D 实时调度算法提供了进程抢占的保障。第六章实现及测试在P o w c r P C 嵌入式平台上实现了O T R C 资源控制器和高精度定时器系统,并对高精度定时器进行了测试。实现了O B E D 实时调度框架的原型系统,并测试了调度系统的性能。第七章结束语对全文的内容进行总结,指出本文工作的创新点和不足之处,并对本文相关研究内容的进一步工作和未来研究方向提出了设想。第6 页国防科学技术
44、大学研究生院硕士学位论文第二章相关研究2 1 基于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 的实时操作系统。2 1 1K U R 3 - L i n u xK U R T L i n u x ( K a n s a sU n i v e r s i t yR e a l T i m eL i n u x ) 由K a
45、 n s a s 大学开发,它对L i n u x 内核上直接进行了改造。K U R T 首先提出了U T I M E 机制,该机制将时钟设备设置为单次触发模式,使其能够提供微秒级的时钟精度。K U R T 可以运行在三种状态之下:正常态、实时态和普通态。在正常态下,采用L i n o x 原有的调度器,所有进程都可以运行,但某些核心服务将带来中断屏蔽的不可预期性;实时态用于实时性要求比较严格的情况下,只允许实时进程运行,而混合态允许实时进程和非实时进程同时运行。K U R T 采用U T I M E 机制即提高了时钟精度,又没有过多的影响系统性能。它将时钟芯片设置为单次触发模式( O n e
46、S h o tM o d e ) ,每次给时钟芯片设置一个超时值,然后到该超时事件发生时在时钟中断处理函数中再根据需要给时钟芯片设置一个超时值。它的基本思想就是在我们希望得到时钟中断的时间产生一个精确的时钟中断,而非将时钟频率设置到我们需要的精度。它可以利用系统提供的时钟计数器来达到纳秒或微秒级的精度 8 1 。但这种方法需要对时钟芯片频繁的进行编程设置。在实时调度方面,K U R T 采用了基于时间的静态实时调度算法,主要支持下面两种实时调度算法:( 1 ) 支持F I F O 调度策略、轮转调度策略和U N I X 分时调度策略;( 2 ) 增加了S C H E D - - K U R T
47、 调度策略,这是一种静态调度策略,使用个特殊的调度文件记录预先定义好的待调度进程的参数。K U R T 的个特点是可以使用L i n u x 原有的系统资源,如调度器、对象和服务,也可以使用L i n u x 系统自身的系统调用,本来K U R T 是被设计为支持硬实时系统的。但由于它在实现上只是简单的将L i n u x 调度程序用个简单的时间驱动的调度程序取代,所以它的实时进程调度很容易受到其它非实时进程的影响,在有些情况下会发生实时任务的截止时间不能满足的情况【9 , 1 0 。目前基于K U R T 的应用有:_ 。- l - _ - _ _ _ _ l _ l 。- _ - - _
48、- _ _ - _ - - _ _ - l - - I _ 一w - - -_ - - T _ _ l l _ - _ 一第7 页国防科学技术大学研究生院硕士学位论文A R T S ( A T MR e f e r e n c eT r a f f i cS y s t e m ) 和多媒体播放软件等。虽然K U R T 不是为嵌入式系统设计的,但它对时钟上的优化技术仍可以应用到嵌入式系统中。2 1 2R T L i n u x 和R T A IR T L i n u x ( R e a l T i m eL i n u x ) 是新墨西哥科技大学( N e wM e x i c oI n s
49、 t i t u t eo fT e c h n o l o g y ) 所研究的。为了实现硬实时的目的,它在L i n u x 的基础上实现了微内核的结构,即在L i n u x 内核与硬件之间加入了一个实时内核,将原来的L i n u x 内核作为实时内核的一个非实时进程对待。实时内核有自己的调度器,并直接控制硬件中断,因此R T L I n u x 有很高的响应速度,对实时进程也能更好的进行调度u 。实时内核会优先调度实时进程,而将非实时进程交由L i n u x 内核来处理。由于L i n u x内核被看做是一个非实时进程,因此实时进程会由于L i n u x 内核被调度。R T L
50、i n u x 的关键技术是通过软件来模拟硬件的中断控制器。当L i n u x 系统要关闭中断时,R T L i n u x 会截获到这个请求,并把他记录下来。但实际上硬件是由R T L i n u x 控制的,因此它并不真正的关闭硬件中断,这样就避免了由于关闭中断所造成的没有响应或者中断丢失现象,从而提高了实时性。当硬件中断到来时,R T L i n u x 截获该中断,并判断是否由实时内核来处理该中断,还是交由L i n u x 内核来处理。在时钟精度方面,R T L i n u x 也借鉴了K U R T 的U T I M E 机制【l 引,将时钟设备设置为单触发模式,来提供微秒级的时
51、钟精度。R T L i n u x 实时内核中的任务调度可以采用基于优先级的抢占式调度、R M S 调度以及E D F 调度算法。R M S 可用于周期性的实时任务,E D F 可以应用与实时性比较强的实时应用中。另外,用户也可以自己实现一个调度算法,作为L i n u x 的模块插入到R T L i n u x 的实时内核中运行,作为实时任务的调度策略。R T L i n u x 对于重负载下的工作专有系统来说,确实是一个不错的选择,但它仅仅提供了对C P U 资源的调度并且实时系统和普通L i n u x 系统的联系不是很紧密,这样开发人员不能充分利用L i n u x 系统中已经实现的功
52、能,如协议栈等l l 引。所以R T L i n u x 适合于工业控制等实时任务功能简单,并且有硬实时要求的系统中,如果应用到多媒体处理中还需要做大量的工作。到目前为止,R T L i n u x 已经成功地应用于航天飞机的空间数据采集、科学仪器测控和电影特技图像处理等广泛领域,在电信、工业自动化和航空航天等实时领域也有成熟应用。R T L i n u x 的应用有两个域:一个是实时域,另一个就是非实时域。实时域中的函数能满足实时的需求,不过这些实时任务必须简单,因为可用的资源受到了限制;非实时域的函数可以利用整个L i n u x 的资源,不过不能提供任何的实时性能。在两个域之间可以通过多
53、种途径进行通信,如F I F O 、共享内存等方法。意大利的R T A I ( R e a l - T i m eA p p l i c a t i o nI n t e r f a c e ) 源于R T L i n u x ,它在设计思第8 页国防科学技术大学研究生院硕士学位论文L m - -_ U想上和R T L i n u x 完全相同。它当初设计的目的是为了解决R T L i n u x 在不同L i n u x版本之间难于移植的问题,为此R T M 在L i n u x 上定义了一个实时硬件抽象层,实时任务通过这些抽象层提供的接口和L i n u x 系统进行交互。这样在给L i
54、n u x 内核中增加实时支持时可以尽可能少地修改L i n u x 的内核代码【1 4 1 。2 1 3R E D L i n u xR E D L i n u x 是美国加州大学欧文分校的开放源码项目,支持用户层的实时程序,而R T A l 支持内核层的实时程序。R E D 1 i n u x 通过直接修改L i n u x 内核源码,将内核中较长的例程分为较小的代码块,并且有选择地加入了有限的抢占点( p r e e m p t i o np o i n t ) ,内核在抢占点就可以被抢占,从而减小内核的抢占延迟,将标准L i n u x 内核修改为可抢占型内核。另外R E D 1 i
55、n u x 的调度架构使得R E D 1 i n u x 可以符合多种不同复杂度系统的调度需求。基本上,它分成调度器( d i s p a t c h e r ) 和分配器( a l l o c a t o r ) 两部分,分配器在用户态执行,而调度器在内核态执行。分配器可以是中间件的一部分,负责将应用程序的资源请求转换成内核可以理解的形式。调度器作为一个内核模块存在,可被动态加载,由其最终决定程序的执行顺序。R E D 1 i n u x 提供了三种调度策略【1 5 】:( 1 ) 优先级驱动的调度策略( p r i o n t y d r i v e ns c h e d u l i n
56、g ,简称P D ) ,以静态或动态的任务优先级作为参数提供给调度器,调度器仅以此作为寻求下一个执行任务的依据。( 2 ) 时间驱动的调度策略( t i m e d r i v e ns c h e d u l i n g ,简称T D ) ,以当前时间作为寻求下一个执行任务的依据。( 3 ) 共享驱动的调度策略( s h a r e d r i v e ns c h e d u l i n g ,简称S D ) 。这是一种近来越来越受到关注的实时调度模式,基于G P S ( g e n e r a lp r o c e s s o rs c h e d u l i n g ) 的算法,系统给
57、每个实时任务分配一定的共享资源,参与调度的系统中的所有实时任务按照一定比例共享计算资源。R E D L i n u x 由于内核不可完全抢占而只能作为一种软实时方案,但它的调度架构是扩展R T O S 适用范围的有益尝试。这种两种策略组合的方式的一个比较大的隐患就是,由于存在R T A I 在底层不断地偷取或抢占L i n u x 运行进程的时间片,用户层的实时进程不能得到及时的响应和调度,同时,也增加了进程运行的不可预测性,从而失去了实时的意义。另外,其调度框架增加了系统负荷延迟,最多可达1 0 0 多微秒。2 1 4R F R T O SR F R T O S ( R e dF l a g
58、R e a l T i m eO p e r a t i n gS y s t e m ) 实现了处理器预留资源、时第9 页国防科学技术大学研究生院硕士学位论文钟粒度的细化、调度效率的提高、优先级继承协议( P I P ) 的支持、核心可抢占性、S M P 的支持、互斥锁机制的改进等多方面的实时支持功能。在提高时钟精度上,R F R T O S 借鉴了K U R T 的方法,但是与之不同。R F R T O S提供了与标准L i n u x 核心时钟并行运行的一个具有精密刻度的实时核心时钟处理系统,与原L i n u x 核心时钟区别开来。不但提高了系统的稳定性和效率,而且独立的实时核心时钟易
59、于维护改进。在实时调度上,R F R T O S 实现了基于预留资源机制的实时调度方案。L i n u x 对实时进程的支持非常有限,对进程完全没有资源使用方面的控制。R F R T O S 采用预留资源机制为实时进程提供及时的、有保障的资源保护访问模式,实时任务优先级的确定采用基于固定优先级的R M 或D M 调度策略,非周期性任务采用带宽保留算法,并增加了可调度性测试等。相应地,调度函数s c h e d u l e 0 也作了改进,为了提高查找效率,进程就绪队列改为堆的数据结构,挑选新进程的算法也作了改动。在对S M P 结构的支持上R F R T O S 将实时定时器队列放在全局中断控
60、制器上,当系统启动时,给每个C P U 创建一个强制定时器,当调度一个新进程投入运行时,将该进程请求占用C P U 的时间写入与C P U 对应的强制定时器的到期时间。对于多处理器调度算法,R F R T O S 设计并实现了由用户指定C P U 的静态实时多处理器调度算法。相应地,R F R T O S 对预留资源机制也作了改变【1 6 , 1 7 , 1 8 】。2 2 高精度定时器定时器对象在操作系统中被用户和进程广泛使用,在实时系统中,定时器的使用也很多。定时器用来对某一个操作进行定时,使其在将来的特定时刻发生。实时系统对定时的精度要就较高,而普通的定时器会有一定的定时误差。因此,有很
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长春中医药大学《高级英语2》2023-2024学年第一学期期末试卷
- 荆州理工职业学院《信息技术(T)项目管理》2023-2024学年第二学期期末试卷
- 山西省临汾市大宁县昕水镇东关小学2025年三年级数学第二学期期末教学质量检测试题含解析
- 上海科创职业技术学院《牙体形态学》2023-2024学年第一学期期末试卷
- 厦门东海职业技术学院《大学俄语语法(三)》2023-2024学年第二学期期末试卷
- 湖北省鄂东南五校一体联盟联考2025届高三第四次统测语文试题试卷含解析
- 南京视觉艺术职业学院《药物设计与新药发现-小分子药物》2023-2024学年第二学期期末试卷
- 江苏省盐城市联谊校2025届初三第二次联考物理试题试卷含解析
- 浙江中医药大学滨江学院《歌唱语音与歌剧排演1》2023-2024学年第一学期期末试卷
- 烟台市蓬莱市2025届四下数学期末达标检测模拟试题含解析
- 大象版科学三年级下册全册练习题(含答案)
- GB/T 23863-2024博物馆照明设计规范
- 新《斜视弱视学》期末考试复习题库(含答案)
- 四川省会计师事务所服务收费标准
- 幼儿园中班科学活动《各种各样的鸟》课件
- 中国矿产资源集团招聘笔试题库2024
- 高速公路机电工程实施性施工组织设计计划作业指导书
- 部编版二年级下册语文课文必背内容(课文、古诗、日积月累)
- 深海采矿技术及环境影响
- 老年心理慰藉实务 课件 项目6-10 老年家庭心理慰藉-老年死亡心理慰藉
- 新闻采访与写作-马工程-第一章
评论
0/150
提交评论