为什么有些应用非VxWorks不可
实时操作系统(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旨在成为物联网时代的操作系统。
为什么有些应用非VxWorks不可的更多相关文章
- Linux - 非阻塞socket编程处理EAGAIN错误
在linux进行非阻塞的socket接收数据时经常出现Resource temporarily unavailable,errno代码为11(EAGAIN),这表明你在非阻塞模式下调用 ...
- 阻塞与非阻塞的IO网络读写
看我之前的文章就知道,一般对于网络读的socket,都会加上O_NONBLOCK,非阻塞的选项. int setnonblocking(int fd) { int old_option = fcntl ...
- vxworks 实时操作系统
VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统.Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似Mi ...
- VxWorks 6.9 内核编程指导之读书笔记 -- ISRs和Watchdog Timer
中断服务程序 ISR 硬件中断处理是实时系统的关键,因为它是外部时间通知系统的方式. ISR亦称为中断处理函数,是对中断的正确响应.可以使用任何ISR连接到任何没有被VxWorks使用的中断上.当关联 ...
- VxWorks 6.9 内核编程指导之读书笔记 -- Singnals
Signals 信号是操作系统用于异常处理和异步控制流的关键.在很多方面,信号相当于软件方面的硬件中的中断.操作系统产生的信号包括总线错误和浮点处理异常.信号也提供了API来管理和产生信号.在应用程序 ...
- VxWorks 6.9 内核编程指导之读书笔记 -- 多任务
概述 VxWork系统任务 任务调度 任务创建和管理 任务的错误状态 任务异常处理 共享代码和重入 概述 现代实时操作系统是基于多任务和任务间通信的概念的.多任务环境运行一个实时进程RTP可以被作为一 ...
- linux非阻塞的socket EAGAIN的错误处理
http://blog.csdn.net/tianmohust/article/details/8691644 在Linux中使用非阻塞的socket的情形下. (一)发送时 当客户通过Socket提 ...
- linux select 与 阻塞( blocking ) 及非阻塞 (non blocking)实现io多路复用的示例
除了自己实现之外,还有个c语言写的基于事件的开源网络库:libevent http://www.cnblogs.com/Anker/p/3265058.html 最简单的select示例: #incl ...
- vxworks
VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统.Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似Mi ...
随机推荐
- 给没有连接因特网的centos使用yum安装其他软件(转)
https://blog.csdn.net/bbg221/article/details/78360618 在centos上,使用yum安装软件很方便,比如安装gcc,java等, 但是在没有网络的情 ...
- Django基础第三篇
一.ORM操作 1.常用字段和参数 Autofied 自增的整形字段,必填参数primary_key=True, 则成为数据库的主键,如无该字段,django自动创建 IntegerField 一个 ...
- (转)Java垃圾回收基本过程
本编博客内容来自oschina,是一篇译文,文中图片比较直观的介绍了JVM进行垃圾回收的过程.原文内容来自oracle官网:Java Garbage Collection Basics oschina ...
- PyCharm 创建指定版本的 Django (超详细图解)
最近在学习胡阳老师(the5fire)的<Django企业级开发实战>,想要使用pycharm创建django项目时,在使用virtualenv创建虚拟环境后,在pycharm内,无论如何 ...
- Use pkgsrc on ARM
What is this page? This page describes how to use pkgsrc on ARM architecture with EABI support. I bo ...
- Nginx返回大长度的JSON数据被截断
1 添加Nginx参数,增加缓存字符串大小 head{ proxy_buffers 16 512k; //此处值代表nginx 设置 16个 512k 的块进行缓存,总共大小为16*512k prox ...
- hadoop--大数据生态圈中最基础、最重要的组件
hadoop是什么? hadoop是一个由Apache基金会所开发的分布式系统基础架构,hdfs分布式文件存储.MapReduce并行计算.主要是用来解决海量数据的存储和海量数据的分析计算问题,这是狭 ...
- linux工具之lsof
1.lsof ( list open files) lsof(list open files) 是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通 ...
- Linux使用wget仿站
运行命令 $ wget -r -p -np -k www.avatrade.cn 参数说明 -r --recursive(递归) specify recursive download.(指定递归下载) ...
- CUDA和TensorFlow的版本匹配问题
CUDA和TensorFlow的版本匹配问题 部分转载自博客:https://blog.csdn.net/MahoneSun/article/details/80809042 列举一些CUDA和Ten ...