谈到实时操作系统,大家一定会提起VxWorks
在物联网开发过程中,经常会听到有人谈起实时操作系统,比如VxWorks,uC-OS II, RTLinux等等,那究竟什么才算是实时操作系统?我们平时用的操作系统,比如Windows,Linux,是否算是实时操作系统呢?看完这篇文章,相信大家就明白了。
实时系统指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。
——Donal Gillies 在 Realtime Computing FAQ 中提出的定义。
大家普遍的一种意识是实时性意味着速度快,实际上实时性与任务执行的速度快并不是一回事,实时性的真正含义是指任务的(最迟)完成时间(Deadline)是可确定预知的。
操作系统面对的负载通常是变化的,有时任务少,有时任务重,实时操作系统要求无论负载多少,都必须保证满足时间要求。
所以实时操作系统追求的不是速度,而是任务执行时间的确定性。下面以Windows系统为例,说明实时性和速度不是一回事。
相信大家都有这样的经历,我们的Windows系统的电脑,配置有很高工作频率的强大CPU,显然在任务不多的时候,可以以非常快的处理速度执行任务。但是,当某些后台任务正在运行时,比如下载文件,或者是在杀毒,这时候前台的程序响应会变得非常漫长,甚至程序会失去响应。
并不是说Windows系统不够快或效率不够高,而是Windows系统不能提供确定性,所以,Windows不是一个实时操作系统。通常面向PC的操作系统都不是实时操作系统,比如Linux的桌面发行版、服务器版,以及Mac OS等。
实时操作系统根据其实时性的刚性要求程度不同,分为硬实时(hard realtime)和软实时(soft realtime)操作系统。
硬实时系统指系统要在最坏情况(负载最重)下确保服务时间,即对于事件的响应时间的截止期限是无论如何都必须满足。
软实时系统是从统计的角度,任何一个任务都能够有一个预期的处理时间,但任务一旦超过截止期限,也并不会带来致命的错误。
硬实时代表产品:VxWorks
好奇号火星探测车使用了VxWorks系统
对于一些涉及到人身安全或者非常重要的任务,必须使用硬实时操作系统,更多用于对实时性要求更高的工业制造领域。比如汽车安全气囊的控制,晚一秒钟打开可能就会丧生一条人命,这种场合必须使用硬实时系统。
WindRiver公司的VxWorks是硬实时操作系统的代表产品,以性能稳定而著称。美国 F-16、FA-18战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器、2008年5月登陆的凤凰号,和2012年8月登陆的好奇号也都使用到了VxWorks。
VxWorks的缺点就是有点贵。但近年来各大厂商越来越强调成本,所以VxWorks不断被其他一些开源的实时操作系统取代。华为多年来一直在自己的网络设备中购买和使用VxWorks,也会逐渐采用替代的系统。
软实时代表产品:各种实时Linux
之前我们在《纵论物联网(六):基于Linux的物联网操作系统》介绍了很多Linux物联网系统,其中有不少是在Linux基础上做了实时性的改进,比如RTLinux等,这些系统都算是软实时产品。
对于IPTV数字电视机顶盒,需要实时的解码视频流,所以需要使用实时操作系统。但即使丢失了几个视频帧,在短时间内视频可能会有一些不流畅,但马上就会恢复,不会造成什么严重的后果。这种消费类电子产品,适合使用软实时操作系统。
联系客服