您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

4种及时利用体系及时性的阐发相比

发布日期:2011-04-27


   摘 要: 本文阐发了实用于测控范畴的4种及时利用体系,并相比了它们及时性能的告急指标,归纳了及时性筹划和实现中的多少标题。 

   小序 
   20世纪70年代以来嵌入式体系的硬件和软件技能的飞速进步,使得嵌入式应用得到了发达生长,在这些应用中及时利用体系起着决定性的作用。 
   在巨大测控应用中,必须利用对及时性恳求非常高的及时利用体系。比喻在财产控制、交通办理、呆板人、航空航天、武器装备等范畴,体系变乱的相应要是不克不及定时或超时,就大概导致巨大的丧失和磨难。因而,选择利用体系时,对及时性的过细思量至关告急。本文从及时性的角度过细的阐发相比了实用于此类有苛刻及时性恳求的4种利用体系——VxWorks、mC/OS-II、RT-Linux、QNX,为体系选型提供肯定参考。 

   及时性能紧张实现技能 
   及时利用体系的及时性是第一恳求,须要调理齐备可利用的资源完成及时任务。根据相适时间在微秒、毫秒和秒级的差别,可分为强及时、准及时和弱及时三种。强及时体系必须是对及时的变乱作出应声,绝对不克不及错过变乱处理惩罚处罚时限。比喻测控范畴便是恳求强或靠近强及时体系。在机顶盒、PDA、信息家电等应用范畴,体系负荷较重的时间,容许孕育产生错过限期的环境并且不会导致太大的危害,准和弱及时体系就可餍足应用。一个强及时的利用体系通常利用以下技能: 
   ● 占先式内核 
   当体系时间相应很告急时,要利用占先式内核。当前最高优先级的任务一旦就绪,总能立即得到CPU的控制权,而CPU的控制权是可知的。利用占先式内核使得任务级相适时间得以最优化。 
   ● 调理战略阐发 
   任务调理战略是直接影响及时性能的因素。强及时体系和准及时体系的实现区别紧张在选择调理算法上。选择基于优先级调理的算法足以餍足准及时体系的恳求,并且可以提供高速的相应和大的体系吞吐率。当两个或两个以上任务有同样优先级,通常用时间片轮转法举行调理。对硬及时体系而言,须要利用的算法就应该是调理要领大抵,应声速率快的及时调理算法了。只管调理算法多种多样,但大多由单一比率调理算法(RMS)和最早限期优先算法(EDF)变革而来。前者紧张用于静态周期任务的调理,后者紧张用于动态调理,在差别的体系状态下两种算法各有优劣。在贸易产品中采取的实际战略通常是种种因素的折衷。 
   ● 任务优先级分派 
   每个任务都有其优先级。任务越告急,付与的优先级应越高。应用步调实行进程中诸任务优先级稳固,则称之为静态优先级。在静态优先级体系中,诸任务以及它们的时间束缚在步调编译时是已知的。反之,应用步调实行进程中,任务的优先级是可变的,则称之为动态优先级。 
   ● 时间的可确定性 
   强及时利用体系的函数调用与办事的实行时间应具有可确定性。体系办事的实行时间不依赖于应用步调任务的多少。体系完成某个确定任务的时间是可预测的。 
   及时性能告急指标 
   衡量及时利用体系及时性能的告急指标有: 
   ● 任务切换时间 
   当多任务内核决定运行别的的任务时,它把正在运行任务确当前状态(即CPU寄存器中的全部内容)生存到任务本身的栈区之中。然后把下一个将要运行的任务确当前状态从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个进程就称为任务切换。做任务切换所须要的时间取决于CPU有多少寄存器要入栈。CPU的寄存器越多,分外负荷就越重。 
   ● 克制相适时间(可屏蔽克制) 
   谋略机汲取到克制信号到利用体系作出相应,并完成切换转入克制办事步调的时间。敷衍占先式内核,要先调用一个特定的函数,该函数关照内核即将举行克制办事,使得内核可以跟踪克制的嵌套。占先式内核的克制相适时间由下式给出: 
   克制相适时间=关克制的最永劫间 
   +掩护CPU内部寄存器的时间 
   +进入克制办事函数的实行时间 
   +开始实行克制办事例程(ISR)的第 
   一条指令时间 
   克制相适时间是体系在最坏环境下相应克制的时间,某体系100次中有99次在50ms之内相应克制,只有一次相应克制的时间是250ms,只能以为克制相适时间是250ms。 
   表2列出了部分表现及时性能告急指标的典范值,它们的测试平台和测试要领不完全雷同,影响了数据的可比性,但我们仍可作为参考。 
   别的,另有体系相适时间(体系发来由理恳求到体系给出应复书号的时间)、最长关克制时间、非屏蔽克制相适时间等资助的衡量指标。 

   多少标题 
   固然当今的及时利用体系已日臻美满,但仍有一些标题存在并滋扰着强及时的实现。我们应充分的怜惜,并通过公平的摆设步调淘汰它们的危害。 
   ● 优先级反转 
   这是及时体系中出现得最多的标题。优先级反转是指一个任务等待比它优先级低的任务开释资源而被壅闭,要是这时有中等优先级的就绪任务,壅闭会进一步恶化。它告急影响了及时任务的完成。 
   为保卫孕育产生优先级反转,一些贸易内核(如VxWorks)利用了优先级承继技能,当优先级反转孕育产生时,优先级较低的任务被临时地进步它的优先级,使得该任务能尽快实行,开释出优先级较高的任务所须要的资源。但它也不克不及完全克制优先级反转,只能称其减轻了优先级反转的程度,减轻了优先级反转对及时任务完成的影响。
优先级极限是另一种办理方案,体系把每一个临界资源与1个极限优先级相讨论,这个极限优先级便是体系此时最高优先级加1。当这个任务退出临界区后,体系立即把它的优先级光复正常,从而包管体系不会出现优先级反转的环境。采取这种方案的另一个有利之处,是仅仅通过变革某个临界资源的优先级就可以使多个任务共享这个临界资源。 
   ● 任务实行时间的抖动 
   种种及时内核都有将任务延时多少个时钟节拍的结果。优先级的差别、延时恳求孕育产生的时间、发出延时恳求的任务自身的运行扩展,都市导致被延时任务实行时间差别程度的提前或滞后,称之为任务实行时间的抖动。大概的办理方案有: 
   a. 增长微处理惩罚处罚器的时钟频和时钟节拍的频率;b. 重新摆设任务的优先级;c. 克制利用浮点运算等。 
   强及时体系中,我们必须综合思量,充分利用种种本领,只管即便淘汰任务实行时间的抖动。 
   ● 任务分别 
   步调在CPU中因此任务的要领在运行,以是我们要将体系的处理惩罚处罚框图转化为多任务流程图,对处理惩罚处罚举行任务分别。任务分别存在如许一对抵牾:要是任务太多,肯定增长体系任务切换的开销;要是任务太少,体系的并行度就低沉了,及时性就比较差。在任务分别时要依照H.Gomma原则: 
   a. I/O原则:差别的外设实行差别任务; 
   b. 优先级原则:差别优先级处理惩罚处罚差别的任务; 
   c. 大量运算:归为一个任务; 
   d. 结果耦合:归为一个任务; 
   e. 偶然偶尔偶然偶尔耦合:归为一个任务; 
   f. 频率组合:敷衍周期时间,差别任务处理惩罚处罚差别的频率。 
   要是我们在细致阐发一个别系的时间孕育产生原则辩论的话,则要为每一个原则针对细致的体系设置“权重”,须要的时间可以通过谋略“权重”来终极确定怎样去分别任务。 

   总结 
   VxWorks、mC/OS-II、RT-Linux、QNX都是精良的强及时利用体系,各有特色:VxWorks的衡量指标值最好;mC/OS-II最短小老练;RT-Linux支持调理战略的改写;QNX支持散布式应用。当我们充明白白和掌握它们实现技能、衡量指标的差别,过细所存在的标题,就能在及时性应用中游刃有余。