2024年4月17日发(作者:)
一.什么是真正的实时操作系统
做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于
交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,
也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产
品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platformteam封
装好的API。所以在此总结一下这些概念,加深自己的理解,同时也给新手入门,欢迎大
家拍砖,争取写个连载,本文先总结一下实时的概念,什么是真正的实时操作系统
1. 首先说一下实时的定义及要求:
参见 Donal Gillies 在 Realtime Computing FAQ 中提出定义:实时系统指系统的
计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的
时间约束,则认为系统失效。
一个实时操作系统面对变化的负载(从最小到最坏的情况)时必须确定性地保证满足
时间要求。请注意,必须要满足确定性,而不是要求速度足够快!例如,如果使用足够强
大的CPU,Windows在CPU空闲时可以提供非常短的典型中断响应,但是,当某些后台
任务正在运行时,有时候响应会变得非常漫长,以至于某一个简单的读取文件的任务会长
时间无响应,甚至直接挂死。这是一个基本的问题:并不是Windows不够快或效率不够
高,而是因为它不能提供确定性,所以,Windows不是一个实时操作系统。
根据实际应用,可以选择采用硬实时操作系统或软实时操作系统,硬实时当然比软实
时好,但是,如果你的公司正在准备开发一款商用软件,那请你注意了,业界公认比较好
的VxWorks(WindRiver开发),会花光你本来就很少的银子,而软实时的操作系统,如某
些实时Linux,一般是开源免费的,我们公司本来的产品就是基于VxWorks的,现在业界
都在CostReduction,为了响应号召,正在调研如何把平台换成免费的嵌入式实时Linux。
同学们,如何选择,自己考虑吧:-)
硬实时 - 代表产品 VxWorks
举一个经常使用的实例,中高档汽车中使用的气囊。当报告车辆碰撞的传感器中断CPU
后,操作系统应快速地分配展开气囊的任务,并且不允许任何其他非实时处理进行干扰,
晚一秒钟展开气囊比没有气囊的情况更糟糕,这就是一个典型的必须使用硬实时的系统。
硬实时系统指系统要有确保的最坏情况下的服务时间,即对于事件的响应时间的截止
期限是无论如何都必须得到满足。
软实时 - 代表产品 软实时Linux
再举一个实例,IPTV数字电视机顶盒,需要实时的处理(解码)视频流,如果丢失了一
个或几个视频帧,显然会造成视频的品质更差,但是只要做过简单的抖动处理的系统,丢
失几个视频帧就不会对整个系统造成不可挽救的影响。
软实时系统就是那些从统计的角度来说,一个任务能够得到有确保的处理时间,到达
系统的事件也能够在截止期限到来之前得到处理,但违反截止期限并不会带来致命的错误。
---------------------------------------------
请注意:讲到这里,想花点墨水区分一下实时和嵌入式的概念,因为笔者也长时间把
这两者混为一谈。实时操作系统的概念上文已经讲的很清楚了,主要就是要能确定性的满
发布者:admin,转转请注明出处:http://www.yc00.com/web/1713287142a2219175.html
评论列表(0条)