(计算机科学与技术专业论文)基于单触发时钟的嵌入式linux实时技术研究与优化.pdf_第1页
(计算机科学与技术专业论文)基于单触发时钟的嵌入式linux实时技术研究与优化.pdf_第2页
(计算机科学与技术专业论文)基于单触发时钟的嵌入式linux实时技术研究与优化.pdf_第3页
(计算机科学与技术专业论文)基于单触发时钟的嵌入式linux实时技术研究与优化.pdf_第4页
(计算机科学与技术专业论文)基于单触发时钟的嵌入式linux实时技术研究与优化.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国防科学技术大学研究生院硕士学位论文 摘要 近年来,嵌入式系统在军事、工业、航天等重要领域得到了广泛应用,同时这 些领域对系统的实时性也提出了越来越高的要求。相对于其它嵌入式操作系统, l i n u x 具有开放源代码、可裁剪、性能稳定、可靠性高、支持s m p 体系结构等特 点,目前基于l i n u x 的嵌入式系统应用案例越来越丰富。 本文对嵌入式l i n u x 中的时钟机制、计时系统、时间戳系统、定时器系统以及 调度框架和调度算法进行了深入的分析。在此基础上,针对嵌入式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 对定时器队 列的管理,可以得到微秒级的时钟精度。另外利用时间戳计数器设计了细粒度的 时间戳系统,为高精度定时器系统提供了准确的时间度量。改造后的高精度定时 器系统能够达到微秒级的定时精度。 在调度算法上,提出了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 算法综合了两种算法的优点, 既能够保证实时进程的时间约束条件,又可以提高非实时进程的性能,达到了提 高系统吞吐率的目的。 最后,本文在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 t i nr e c e n ty e a r s e m b e d d e ds y s t e m 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 o r 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 ho t h e re m b e d d e d o p e r m i n gs y s t e m s ,l i n u x h a sm a n ya d v a n t a g e sw h i c hc a nb e c u t t i n g ,s t a b l e p 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 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 p s 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 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 e c 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 r e 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 u r c ec o n t r o l l e ro t i 犯( o n e s h o t t 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 d t 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 d c o 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 n o 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 nt 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 r s 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 h m 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 i d e a 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 s b 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 e m i c r o s e c o n d - l e v e lt i m i n ga 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 k b a s e do n0 t i 比i sd e s i g n e d t h ef 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 l p 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 l p 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 i n ga l g o r i t h m o b e da l g o r i t h m c 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 f p 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 k c a l ln o t o n l yg u a r a n t e et h et i m e c o n s t r a i n t 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 e p 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 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 d s 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 r o v e d s 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 页 国防科学技术大学研究生院硕士学位论文 表目录 表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 的进程运行队列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 调度器执行实验一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 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意 学位论文题目:基王望触发时鱼的邀式l i 型兰塞吐盐苤砑窥生佐焦 -,- j 学位论文作者签名:叁圣垒当日期:2 a r d 呷年i - 2 月2 9 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书。) 学位论文题目: 基王皇触发吐鲑鲍送式垦i 业茎塞吐垫苤珏究皇选焦一 学位论文作者签名i 至垂笪一 日期:二一吁年饺月2 阴 作者指导教师签名:塑型垒日期:如9年2 月冲日 国防科学技术大学研究生院硕士学位论文 第一章绪论 1 1 引言 随着我国工业、航天、军事等领域的迅速发展,嵌入式系统正得到越来越多 的应用,同时对它的实时性也提出了更高的要求。例如我国的嫦娥绕月卫星在进 行调整轨道和飞行纠正的时候,由于卫星的飞行速度很快,失之毫厘则谬之千里。 如果轨道参数的计算结果不满足时间的约束条件,将会导致卫星轨道的偏离。因 此,该系统需要具有较高的可靠性和实时性。随着嵌入式领域的发展,对实时技 术的研究逐渐成为了一大热点。 近年来,嵌入式l i n u x 逐步走向成熟,越来越多的企业和研究者喜欢使用l i n u x 来开发嵌入式系统,这主要是因为l i n u x 具有跨平台、开放源代码、安全稳定等优 点。但是,嵌入式l i n u x 的实时性还有一定的不足,包括两方面的原因:一是嵌入 式系统的时钟精度较低,无法满足实时应用对内核的及时抢占和高精度定时等操 作;二是缺少高效的实时调度算法,以保证实时进程的时间约束条件。 有效提高时钟精度的方法是提高系统的时钟频率,但提高时钟频率将会增加 系统处理时钟中断的时间,继而影响系统的整体性能。另外频繁的时钟中断也会 影响进程执行的连续性和降低c a c h e 命中率。嵌入式系统往往功率低、性能有限, 因此,以牺牲系统性能而提高时钟精度的方法显然不适用。自从美国的k a n s a s 大 学最早利用时钟芯片的单次触发模式( 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 。 实时系统是一种时间敏感的系统。作为一种典型应用,外部的一种或多种物 理设备给了计算机一个输入,计算机必须在一个确定的时间范围内恰当地做出反 映,正确而迟到的应答往往比没有应答还要糟糕 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 t d 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 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 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 的调度器进 行了实时改进。在设计高精度定时器系统时,由于单触发时钟对计时系统造成影 响,因此对计时系统进行了改造:为了给定时器对象提高细粒度的时间戳,利用 时间戳计数器对时间戳系统进行了改造;最后提出了嵌入式系统中的高精度定时 器框架。在对l i n u x 调度器进行实时性改进时,为了增强调度器对实时进程的时间 进行约束,设计了一种新的调度算法。最后在p o w e r p c 嵌入式平台上进行了实时 性改进。测试结果表明,高精度定时器的定时精度达到微秒,新的实时调度器在 实时调度上也表现出了较好的性能。 1 2 嵌入式系统中的实时概念 实时系统可以定义为对外部事件及时响应的系统,例如,实时系统在时间约 束范围内完成对外部输入的处理,并将结果返回给用户,实时系统并非是指“快 速”的系统,更重要的是它有限定的响应时间,从而使系统具有可预测性【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 ) 。 设想一个实时武器防御系统,其作用是对导弹进行拦截,以保护海军驱逐舰 免受破坏,理想的情况是将飞来的导弹在接近驱逐舰以前将其击碎。防御系统由 雷达系统、命令决策系统、武器火力控制系统组成。其中决策系统必须快速地计 算出入侵导弹的预期飞行路径,在它进行破坏前将其摧毁。如果决策系统用太长 的时间进行飞行路径的计算,则导弹将达到预定的目标而没有被摧毁;如果计算 结果不够精确,则仍无法有效拦截目标。从这个例子可以看出实时系统的两个基 本特征:实时系统必须产生正确的结果,称为逻辑或功能正确( 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 m e s s ) 。 由此可见,对于实时系统来说,时间正确和功能正确是同等重要的,而非实时系 统只要求功能的正确性。 在上面的例子中,如果决策系统不在规定的时间内计算出结果,则导弹将对 驱逐舰造成致命的摧毁,因此决策系统必须在某个规定的时刻以前( 或规定的时 间范围) ,这就是硬实时系统,它在时间上有严格的限制。另一类系统是软实时 系统,在这种系统中,偶尔违反时间上的限制是可以接受的,并且不会引起永久 性的损伤。例如数字音频、数字电话或多媒体系统就是软实时系统。 实际上,实时操作系统可以定义为是一个程序,它按时序方式调度执行、管 理系统资源,并为开发应用代码提供一致的基础。大多数的实时操作系统一般由 以下几个部分组成:调度器、对象和服务。调度器用来决定执行哪个任务;对象 是特殊的内核构件,帮助开发者创立实时系统的应用,如任务、信号量、消息队 列等;而服务是内核在对象上执行的操作或通用的操作,如计时、中断处理和资 源管理。嵌入式实时操作系统一般具有如下特点【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 ) :这是与确定性相关但是不同的特征。确定性考 虑的是在应答一个中断前操作系统延时的长短;而响应性考虑的是在应答 中断后,操作系统服务中断的时间长短。 ( 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 ) :应用设计约束和费用约束有助于决定一个系统应 该如何紧凑,因为在嵌入式系统中,硬件资源是有限的,因此嵌入式实时 操作系统必须小巧而有效。 ( 6 ) 伸缩性( s c a l a b i l i t y ) :由于实时系统可以广泛应用于各种嵌入式平台中, 所以必须能够上下剪裁以满足特定的应用需求,依据所要求的功能,实时 系统应当具有增加或减少模块化部件的功能,如文件系统和协议栈等。 虽然目前已经有很多成熟的嵌入式操作系统,但l i n u x 因其可靠性、高效性以 及源码公开等特点,正被广泛应用于嵌入式领域。l i u n x 目前获得最大的成功除了 第3 页 国防科学技术大学研究生院硕士学位论文 作为服务器操作系统,就是在嵌入式领域的应用了。经过了二十多年的持续开发, 嵌入式l i n u x 拥有非常广泛的客户群,也具有丰富的开发资源,尤其在稳定性、开 发速度和多处理器支持等方面都非常优秀。同时,嵌入式实时l i n u x 也正在逐步得 到发展,对提高其实时性方法的研究已经成为业界非常关注的问题【7 j 。随着信息技 术的飞速发展,实时系统已经渗透到日常生活的各个层面,包括传统的数控领域、 军事、制造业和通信业,甚至连潜力巨大的信息家电、媒体广播系统和数字影像 设备都对实时性提出了愈来愈高的要求。 1 3 本文工作 嵌入式操作系统是实现嵌入式系统中任务调度和资源管理的基础软件,也是 应用开发的基础平台。l i n u x 凭借其优异的可靠性和性能而被广泛应用于嵌入式领 域,但目前l i n u x 对实时技术的支持还很有限,且对非实时进程的性能影响较大。 因此,本文针对嵌入式l i n u x 的时钟精度进行改进,并设计了高精度定时器和新型 的调度算法。 操作系统的计时系统是整个系统得以正常工作的基础,进程时间片、驱动程 序、内核定时器和用户计时等都依赖于操作系统的计时系统,因此对系统的时钟 进行改造时需要注意计时系统的正确性。原有的计时系统是基于周期性的时钟中 断,每个时钟中断到来时内核的j i f f i e s 变量加1 。但是提高时钟精度后,时钟中断 不是周期性的,而是随机的,因此必须考虑在这种情况下如何处理计时系统。提 高时钟精度是实现高精度定时器的基础,同时时间戳是判断定时器到期与否的依 据,因此还需要实现细粒度的时间戳系统。实时进程调度是管理实时系统中进程 资源的基础,因此需要考虑实时调度器的设计。本文深入分析了嵌入式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 能够根据系统中当前的实时需求来控制时钟,以提供微秒级的时钟 精度,为实时资源( 如定时器对象和实时进程) 提供精确的内核抢占点。 同时,对系统性能的影响也较小。 ( 2 ) 设计了单触发时钟下的计时系统。单触发时钟打乱了系统中原有的计时系 统,如果不加以修改,则系统的计时系统将产生严重的错误,使系统无法 正常运行。对计时系统的改造,保证了系统计时的正确性,确保了系统的 正确运行。 ( 3 ) 设计了细粒度时间戳系统。时间戳是操作系统中与时间有关操作的重要数 据,也是定时器判断到期与否的基础。原有的时间戳过于粗糙,只能精确 到毫秒。改造后的细粒度时间戳可以精确到微秒,为高精度定时器的设计 第4 页 国防科学技术大学研究生院硕士学位论文 提供了保障。 ( 4 ) 设计了高精度定时器系统。定时器是实时系统中广泛应用的操作系统对 象。改造后的嵌入式l i n u x 高精度定时器能够将定时精度由原来的毫秒级 提高到微秒级。 ( 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 操作系统如何更好 地支持嵌入式系统以及如何充分发挥实时性能是一个值得研究的问题。本文通过 对嵌入式l i n u x 进行实时性研究和优化,实现了高精度定时器和实时调度器,而且 也为将来的进一步研究打下了良好的基础。 1 4 论文结构 全文共分为六章,各章内容如下: 第一章绪论 对嵌入式操作系统和实时概念作了概要性介绍,阐述课题背景以及研究内容。 第二章相关研究 首先概要介绍了主要的基于l i n u x 的实时操作系统,然后对高精度定时器和实 时调度算法进行了概述,为高精度定时器的设计和l i n u x 调度器的实时性优化提供 理论及实践上的借鉴。 第三章单触发时钟的资源控制器o t r c 在深入分析和研究了单触发时钟系统的基础上,对单触发时钟下的计时系统 进行了改造,设计了资源控制器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 的进程管理系统,将 实时进程与非实时进程分开进行管理。基于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 页 国防科学技术大学研究生院硕士学位论文 第二章相关研究 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 x k 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 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 es 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 调度策略,这是一种静态调度策略,使用个特 殊的调度文件记录预先定义好的待调度进程的参数。 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 。- _ - - _ - _ _ - _ - - _ _ - 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 i r 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 t i t u t eo f t 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 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 引,将时钟设 备设置为单触发模式,来提供微秒级的时钟精度。 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 系统中已经实现的功能,如协议栈等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 的资源, 不过不能提供任何的实时性能。在两个域之间可以通过多种途径进行通信,如 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 n u x 内核中 增加实时支持时可以尽可能少地修改l i n u x 的内核代码【1 4 1 。 2 1 3r e d l i n u x r 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 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 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 ) 的算 法,系统给每个实时任务分配一定的共

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论