实时操作系统(RTOS)是专用于对时间精确度敏感的操作系统。典型的情况是,这种应用需要从传感器收集数据、做出分析并对关键性设备进行控制,例如飞机、列车、手术刀。这类控制必须精准,不容许出现丝毫差错。这与通用操作系统(General Purpose Operating Systems, GPOS形成对比。
典型的通用操作系统,例如Android、Linux或者Windows,其设计目标是以复杂的调度规则来管理多种多样的处理器、GUI和外设功能,最高原则就是让系统中的各个功能部件都保持均衡运转的状态,并且通过用户界面与使用人员保持互动。值得注意的是,使用人员的反应速度如果能够快于1秒,就已经是非常难得了,而RTOS通常是要对传感器和设备进行互动,其反应速度达到毫微秒是司空见惯的。
由此可见,RTOS与GPOS的应用要求截然不同,所以设计准则也就不同,前者用于进行速度极快的实时数据处理,后者用于一般的计算系统管理,而且常常涉及与人的交互,反应速度不会有太严苛的要求。
RTOS的基本特征
由于实时数据处理与设备控制的特殊要求,RTOS通常应该具备以下几个特征:
高度确定性:在一个操作系统中,确定性意味着某个动作必须保证在确定的时间做出,既不能出错,也不能太早或者太晚,必须在一个非常窄的时间范围内完成。例如,必须在某个特定的时间从某个传感器取得数据,或者必须及时控制某个部件做出某个动作。例如,用来控制一台机器的操作系统,如果它的确定性不够好,即便是可以勉强运转起来,也会出现很大的噪音或者抖动,而且很容易崩溃。
低延迟性:在关键性和高安全性的应用中,低延迟性通常是一项必须的要求。例如,一部行进中的汽车,当其中安装的传感器探测到路上有一个障碍物,那么从获得这个探测结果的那一瞬间开始,到处理器向自动刹车控制器发出指令,两者之间的延迟是否够低,就决定着这部车能否被安全地停下来,否则就会发生一场车祸。
多任务的同步:在计算机系统中执行多任务,这是十分常见的。每一个任务何时执行、何时挂起暂停,都是由操作系统来控制的。在RTOS之中管理着很多个传感器和控制信号,为了确保系统正常运行,必须做到任务之间的同步。同时,还必须对所有的非正常情况做出适当的响应。例如,飞机两个机翼的动作必须保持同步,否则很可能会导致空难。而GPOS中通常是各个任务各自执行,对此要求就没有那么严苛。就好比两个人同时在电商网站购物,只要不是在双十一大抢购,谁先买到都可以。
RTOS的王者——VxWorks
在工业控制系统、医疗、军工、汽车、通信、轨道交通等领域,高确定性、低延迟性、多任务同步等特性都是必备的。如同我们常见的电脑中普遍都使用微软公司的Windows,在常见的手机里都使用谷歌公司的Android,在上述这些关键性应用中都使用风河公司的VxWorks。
为了支持有效且高确定性的操作,VxWorks允许开发者对OS底层进行访问,这是一项非常关键的能力。这样,开发者就可以定义调度优先级、任务延迟时间、内存分配以及其他参数,以便满足应用对于特定场景的需求。而GPOS是不会允许开发者拥有这种权限的。
一种工具,一项技术,能不能安心地使用?要解答这个疑惑,有两种好方法:
第一,看它经历了多少考验。VxWorks做为嵌入式设备与系统领先的RTOS已经超过30年了,目前全世界有超过20亿部的设备都以它为基础运行着。经过多年积累,VxWorks的功能已经十分丰富,支持着无数企业继续部署着创新产品,同时帮助他们降低成本,加快产品升级速度。
第二,看它是否容易获得认证。VxWorks 653和VxWorks Cert Platforms已经在应用中获得验证,不仅可以满足最具挑战性的安全性要求,而且可以帮助企业用户以最便捷、高效的方式获得最严苛的安全性认证要求,包括EN 50128、IEC 61508、RTCA DO-178C、EUROCAE ED-12C等行业标准,覆盖了航空、国防、工业自动化、交通等许多行业。
为了适应迅速蔓延的物联网需求,风河公司不断创新,让VxWorks具备新的能力,例如优异的虚拟化、确有保证的安全性、高度的可扩展性、丰富的互联性以及图形支持能力。同时,业界领先的硬件厂商大多数都已加入风河公司的合作伙伴生态系统,支持各种处理器的VxWorks BSP(板级支持包)在市场上已经十分普及。
回顾历史,以VxWorks 653为例,它已经被用于80多个型号的民用和军用航空器之中,涉及到200多家企业的400多个工程项目,其中就包括我们都熟悉的波音787梦幻客机,空客A400M以及Northrop Grumman的UH-60V 黑鹰直升机。展望未来,VxWorks旨在成为物联网时代的操作系统。