浅议实时操作系统 RTOS
01.什么是实时操作系统(RTOS)?
实时操作系统 (Real-Time Operating System,RTOS) 是一种为实时应用程序提供服务的操作系统,该类操作系统能快速响应并处理数据,处理时间要求以 0.1 秒的精度进行增量,处理结果能够在规定的时间之内控制生产过程或对处理系统做出快速响应,调度一切可利用的资源,完成实时任务的同时控制所有实时任务协调一致运行。
▲RTOS 的组成
相较于通用的分时操作系统(Linux、Windows、Unix 等),RTOS 有着仅适用于嵌入式应用程序、基于时间片调度、抢占式内核等特点,其中断延迟可达到以微秒为单位。
RTOS 根据任务时效性可分为硬实时、固定实时、软实时三种大类。
1、硬实时
在硬实时操作系统中,任务有着高实时性要求,即既定任务必须在计划时间范围内执行并完成。
示例:医疗重症监护系统、航空系统等。
2、固定实时
该类型的 RTOS,任务也需要在计划时间内完成。超时虽不会导致大的影响,但会影响产品的体验。
示例:各类型多媒体应用。
3、软实时
软实时 RTOS 中,任务有截止时间,但可接受少量时间延迟。此类 RTOS 可灵活的根据任务优先级定义截止时间。
示例:在线交易系统、畜禽报价系统。
硬实时与软实时最关键的差别在于,软实时只能提供统计意义上的实时。例如,有的应用要求系统在 95%的情况下都能确保在规定的时间内完成某个动作,而不一定要求 100%:在操作 DVD 播放机时,正常播放的比例达到 98%基本就可满足用户需求。但对于发射卫星、控制核反应堆的应用系统,这些系统的实时性必须达到 100%,绝对不允许出现意外。
硬实时系统有着刚性的、不可改变的时间限制,不允许任何超出时限的错误,超时错误会带来损害甚至导致系统失败、或者导致系统不能实现预期目标;软实时系统的时限相对柔性灵活,可以容忍偶然的超时错误。
02.为什么要使用 RTOS?
RTOS 有着下列优点:
1、RTOS 会基于优先级进行任务调度,优先处理更加重要的进程;
2、RTOS 提供 API(Application Programming Interface,应用编程接口)功能,使应用程序代码更简洁;
3、抽象时序依赖性和基于任务的设计减少了模块之间的相互依赖性;
4、RTOS 提供基于任务的模块化开发,可进行基于任务的模块化测试;
5、基于任务的 API 模式是模块化的,团队分工得以更加明确。
6、RTOS 由事件驱动,不会造成性能浪费。
这是否意味着 RTOS 可以代替分时操作系统?文末将会给出答案。
03.汽车软件 RTOS
当前大环境下,汽车电子电气系统结构的革命正在发生,汽车中使用的软件数量、种类都出现了惊人的增长,汽车嵌入式软件面临巨大的挑战。当前汽车软件普遍使用的就是嵌入式实时操作系统——RTOS。
汽车软件 RTOS 有一个基本术语——任务(Task),可以简单描述为“能够共同提供某些系统功能的相关任务的集合”。普通计算机可以同步进行许多操作,即可以进行很多任务,而嵌入式计算机通常被设计为只做一件事,如汽车领域的整车控制器 VCU(Vehicle Control Unit),发动机喷油点火控制器 ECU(Electronic Control Unit),变速箱换挡控制器 TCU(Transmission Control Unit),车身控制器 BCM(body control module)等。
任务是具有特定目的的半独立程序段,大多数车辆实时应用程序都需要运行多个任务。汽车软件 RTOS 提供任务的并发和异步执行,调度组织车辆任务执行的顺序,在应用程序未处于活动状态时,会进入空闲机制。
除此之外,RTOS 相关的基本术语还有:
作业——可分配给处理器的一小部分工作,可能需要/不需要资源;
作业发布时间——作业准备执行的时间点;
作业执行时间——作业完成执行的耗时时长;
作业截止时间——作业应完成执行的时间点;
处理器——也称活动资源,对执行工作很重要;
最长作业时间——作业允许的响应时间,也称相对截止时间;
作业响应时间——从作业发布时间到执行完成的时间长度;
绝对期限——作业相对截止时间,包括其发布时间。
04.RTOS 的应用
RTOS 具备约束性、可靠性、可预测性等特性,除汽车领域外,还可应用于以下领域/产品:
航空公司预订系统;
空中交通管制系统;
实时更新系统;
股票实时看盘系统;
国防应用系统,如雷达;
网络多媒体系统;
指令控制系统;
网络电话;
防抱死制动系统;
心脏起搏器。
05.RTOS 的不足
RTOS 的不足有:
RTOS 可以连续运行基于时间片的任务,但会在包含错误的应用程序上花费过多时间。
RTOS 只能集中执行少量任务,因此很难进行多任务处理;
RTOS 需要特定的驱动程序,以便其对中断信号提供快速响应时间,从而保持运行速度;
RTOS 使用大量资源,系统成本昂贵;
优先级低的任务等待时间长,因为 RTOS 需要保证正在执行的程序的准确性;
频繁切换任务而影响任务执行效率;
使用难以理解的复杂算法;
RTOS 使用大量不必要的系统资源。
回溯第二段的问题,答案是显而易见的。实时操作系统与分时操作系统的设计思路、应用领域是截然不同的,各有优劣,两者并不存在替代关系,而是一种互补关系。
参考文献
[1]参考链接:https://www.guru99.com/real-time-operating-system.html
版权声明: 本文为 InfoQ 作者【DevOps和数字孪生】的原创文章。
原文链接:【http://xie.infoq.cn/article/42304e012ea9d9bfcad848bb2】。文章转载请联系作者。
评论