文摘:分析了四种适用于测控领域的实时操作系统,比较了它们的重要实时性能指标,总结了实时设计和实现中的一些问题。
向前
20世纪70年代以来,随着嵌入式系统软硬件技术的飞速发展,嵌入式应用得到了蓬勃发展,其中实时操作系统起着决定性的作用。
在复杂的测量和控制应用中,有必要使用要求非常高的实时性能的实时操作系统。比如工业控制、交通管理、机器人、航空空航天、武器装备等领域。,如果系统事件的响应不能及时或超时,可能会导致巨大的损失和灾难。因此,在选择操作系统时,仔细考虑实时性是非常重要的。本文从实时的角度出发,对适合这种要求苛刻的实时需求的四种操作系统:VxWorks、mC/OS-II、RT-Linux和QNX进行了详细的分析和比较。
实时性能的主要实现技术
实时操作系统的实时性能是第一要求,需要调度所有可用资源来完成实时任务。按照响应时间以微秒、毫秒、秒为单位,可以分为强实时、准实时、弱实时三种类型。强实时系统必须响应实时事件,不能错过事件处理的时限。比如测控领域就是一个需求很强或者接近强需求的实时系统。在机顶盒、PDA、信息家电等应用领域。,当系统负载较重时,允许错过时限而不造成太大危害,准实时系统和弱实时系统可以满足应用。强大的实时操作系统通常使用以下技术:
●抢先内核
当系统时间响应很重要时,使用抢占式内核。优先级最高的任务一旦准备好,总能立刻得到CPU的控制,CPU的控制也就可以知道了。抢先内核用于优化任务级的响应时间。
低调度策略分析
任务调度策略是直接影响实时性能的一个因素。强实时系统和准实时系统的区别主要在于选择性调度算法。选择基于优先级调度的算法足以满足准实时系统的要求,并能提供高速响应和大的系统吞吐量。当两个或多个任务具有相同的优先级时,通常按时间片轮换进行调度。对于硬实时系统,应采用调度方式简单、响应速度快的实时调度算法。虽然调度算法有很多种,但大多是从单速率调度算法(RMS)和最早截止期优先算法(EDF)中衍生出来的。前者主要用于调度静态周期性任务,后者主要用于动态调度。这两种算法在不同的系统状态下各有优缺点。商业产品中采用的实际策略往往是各种因素的折衷。
低任务优先级分配
每项任务都有其优先级。任务越重要,就应该给予它更高的优先权。当任务的优先级在应用程序执行过程中不变时,称为静态优先级。在静态优先级系统中,任务及其时间约束在程序编译时是已知的。相反,在应用执行过程中,任务的优先级是可变的,称为动态优先级。
●时间的可确定性
强实时操作系统的函数调用和服务的执行时间应该是可确定的。系统服务的执行时间不取决于应用程序任务的数量。系统完成某项任务的时间是可以预测的。
实时性能的重要指标
衡量实时操作系统实时性能的重要指标有:
低任务切换时间
当多任务内核决定运行另一个任务时,它会将正在运行的任务的当前状态(即CPU寄存器中的所有内容)保存到任务自己的堆栈区域。然后将下一个要运行的任务的当前状态从这个任务的栈中重载到CPU的寄存器中,启动下一个要运行的任务。这个过程叫做任务切换。任务切换所需的时间取决于CPU要堆叠多少寄存器。CPU的寄存器越多,额外的负载就越重。
●中断响应时间(中断可以屏蔽)
当计算机收到中断信号时,操作系统做出响应,并完成切换到中断服务程序的时间。对于抢占式内核,应该先调用一个特定的函数,通知内核即将执行中断服务,让内核跟踪中断的嵌套。抢先内核的中断响应时间由下式给出:
中断响应时间=关闭中断的最长时间
+保护CPU内部寄存器的时间
+输入中断服务功能的执行时间
+开始执行中断服务程序的第一个指令时间
中断响应时间是系统在最坏情况下响应中断的时间。一个系统的100次中,99次响应50ms内的中断,只有一次响应250ms内的中断,所以中断响应时间只能算250 ms。
表2列出了一些反映实时性能重要指标的典型值。他们的测试平台和方法并不完全相同,影响了数据的可比性,但我们仍然可以借鉴。
另外还有系统响应时间(从系统发出处理请求到系统给出响应信号的时间)、最长关断中断时间、非屏蔽中断响应时间等辅助测量指标。
一些问题
虽然今天的实时操作系统已经日臻完善,但仍然存在一些干扰强实时实现的问题。我们应该充分重视它们,通过合理的安排程序来减少它们的危害。
●优先级反转
这是实时系统中最常见的问题。优先级反转是指任务在等待优先级较低的任务释放资源时被阻塞。如果此时有中等优先级的就绪任务,阻塞会更严重。严重影响实时任务的完成。
为了防止优先级反转,一些商业内核(比如VxWorks)使用优先级继承技术。当发生优先级反转时,优先级较低的任务被临时提高优先级,以便任务能够尽快执行,释放优先级较高的任务所需的资源。但是,并不能完全避免优先级反转。只能说降低了优先级反转的程度,降低了优先级反转对实时任务完成的影响。
优先级限制是另一种解决方案。系统将每个关键资源与一个限制优先级相关联,该优先级等于系统此时的最高优先级加上1。当任务退出关键区域时,系统立即将其优先级恢复到正常,从而确保系统不会发生优先级反转。采用这种方案的另一个优点是,多个任务只能通过改变其优先级来共享一个关键资源。
低任务执行时间抖动
各种实时内核都有延迟任务几个时钟节拍的功能。优先级不同,延迟请求发生的时间和发出延迟请求的任务的运行延迟,都会导致延迟任务的执行时间不同程度的提前或滞后,这种情况称为任务执行时间的抖动。可能的解决方法如下:a .提高微处理器的时钟频率和时钟拍频;b .重新组织任务的优先级;c .避免使用浮点运算。
在强实时系统中,必须综合考虑,充分利用各种手段,使任务执行时间的抖动最小化。
低任务划分
程序在CPU中以任务模式运行,因此我们需要将系统的处理框图转化为多任务流程图,并对处理任务进行划分。任务划分有这样一个矛盾:任务过多,必然会增加系统任务切换的开销;如果任务太少,系统的并行性会降低,实时性会很差。h .划分任务时应遵循贡玛原则:
A.I/o原理:不同的外设执行不同的任务;
B.优先级原则:不同的优先级处理不同的任务;
C.大量操作:归类为一个任务;
D.功能耦合:归类为任务;
E.偶然耦合:归类为任务;
f频率组合:对于周期时间,不同的任务处理不同的频率。
如果在具体分析一个系统的时候有原则冲突,就要根据具体的系统给每个原则设定一个“权重”。如果有必要,我们最终可以通过计算“权重”来确定如何划分任务。
总结
VxWorks、mC/OS-II、RT-Linux、QNX都是优秀的实时操作系统,各有特色:VxWorks的度量指标值最好;MC/OS-II最短;RT-Linux支持重写调度策略。QNX支持分布式应用。当我们充分了解和掌握它们的实现技术和测量指标的差异,并注意到存在的问题时,我们就可以在实时应用中感到舒适。
1.《实时时间 4种实时操作系统实时性的分析对比》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《实时时间 4种实时操作系统实时性的分析对比》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/810138.html