RTX与其他实时操作系统的比较

时间:2021-01-19 20:27:34

RTX与其他实时操作系统的比较

原文地址:http://www.vme.cn/e/action/ShowInfo.php?classid=14&id=502

RTX(Real-Time eXtension)实时操作系统是IntervalZero 公司的一款嵌入式软件产品。在Windows 下安装RTX 实时操作系统,拓展了Windows操作系统内核体系,修改并扩展了整个硬件抽象层HAL(Hardware Abstraction Layer),实现独立的内核驱动模式,形成与Windows 操作系统并列的实时子系统。

1.从通用操作系统到实时操作系统

我们在日常工作学习环境中接触最多的是通用操作系统如Windows系统、Linux系统,通用操作系统是由分时操作系统发展而来,大部分都支持多用户和 多进程,负责管理众多的进程并为它们分配系统资源。相对而言,实时操作系统则不同。对于实时系统而言,其正确性不仅依赖于系统计算的逻辑结果,还依赖于产 生这些结果的时间。下面我们就分别谈谈这两种操作系统的区别:

1) 基本设计原则不同:

分时操作系统的基本设计原则是:尽量缩短系统的平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。

实时操作系统所遵循的最重要的设计原则是:采用各种算法和策略,始终保证系统行为的可预测性(predictability)。二者的区别在于,实时操 作系统注重的不是系统的平均表现,而是要求每个实时任务在最坏情况下都要满足其实时性要求,也就是说,实时操作系统注重的是个体表现,更准确地讲是个体最 坏情况表现。

2) 任务调度策略不同:

通用操作系统中的任务调度策略一般采用基于优先级的抢先式调度策略,对于优先级相同的进程则采用时间片轮转调度方式,用户进程可以通过系统调用动态地调整自己的优先级,操作系统也可根据情况调整某些进程的优先级。

RTX 的任务调度:RTX实时操作系统中并没有进程的优先级,对于进程中的准备运行的线程有着基于优先级的线程调度队列。这保证了线程的执行是有顺序的,并且符 合“先进先出”的原则,且只有一个优先级。如果一个时间量子被设置为了0,则线程将会运行完成。如果时间量子被设置为了其他的值,线程将会运行特定的时 间,然后放弃对CPU的占用,给到其他同级的线程。

3) 内存管理:

通用的操作系统一般都会采用分页管理的方式,但这种方式可以保证大部分的任务的执行效率,但其最坏情况的时间不可预测。

默认情况下,RTX的所有进程和内存对象都会被锁在物理内存当中,以提高其可预测性。

4) 中断处理:

在通用操作系统中,大部分外部中断都是开启的,中断处理一般由设备驱动程序来完成。由于通用操作系统中的用户进程一般都没有实时性要求,而中断处理程序直接跟硬件设备交互,可能有实时性要求,因此中断处理程序的优先级被设定为高于任何用户进程。

但对于实时操作系统采用上述的中断处理机制是不合适的。首先,外部中断是环境向实时操作系统进行的输入,它的频度是与环境变化的速率相关的,而与实时操作 系统无关,任务的实时性和可预测性均得不到保证;其次,实时操作系统中的各用户进程一般都有实时性要求,因此中断处理程序优先级高于所有用户进程的优先级 分配方式是不合适的。

在RTX实时操作系统中,中断处理程序与所以其它任务一样拥有优先级,调度器根据优先级对处于就绪态的任务和中断处理程序统一进行处理器调度。中断线程的优先级也可以更改,并且时间中断是最高的优先级的中断。

5) 共享资源的互斥访问:

通用操作系统一般采用信号量机制来解决共享资源的互斥访问问题。

如果任务调度采用基于优先级的方式,则传统的信号量机制在系统运行时很容易造成优先级倒置问题(Priority Inversion),实时性难以得到保证。因此在实时操作系统中,往往对传统的信号量机制进行了一些扩展,如在RTX实时操作系统中,其调度器提供了3 中系统操作选项(分别为Priority Promotion with Tiered Demotion、Priority Promotion with Limited Demotion、Disable)来使倒置问题最小化;

6) 辅助工具

实时操作系统额外提供了一些辅助工具,如实时任务在最坏情况下的执行时间估算工具、系统的实时性验证工具等,可帮助工程师进行系统的实时性验证工作。

2.RTX与其他实时操作系统

VxWorks、C/OS-II、RT-Linux、QNX是四种当下较流行的实时操作系统。VxWorks、C/OS-II、RT-Linux、QNX 都是优秀的强实时操作系统,各有特色:VxWorks 的衡量指标值最好;C/OS-II 最短小精悍;RT-Linux支持调度策略的改写;QNX 支持分布式应用。在性能方面RTX与其相比可谓不相上下,但是RTX与同类的实时操作系统相比最突出的优势是它与Windows的平台结合,具有开发调试 效率高与实时性强两大优点。

首先,如下图所示,RTX (Real-Time eXtension) 是在不改变Windows XP 内核的前提下,提供一个附加的实时内核模块。与WindowsXP 内核一起工作,进行实时任务的调度与执行。RTX 为了在Windows XP 操作系统下实现实时的特征,利用Windows XP 良好的可扩展体系结构增加了一个实时子系统(RTSS)。RTSS 在概念上与其他Window XP 子系统(例如Win32、POSIX 和DOS) 相似,在RTSS 中,支持自己的执行环境和API。RTX 不同于其他子系统的重要因素在于RTSS 执行它自己的实时线程调度而不是使用Windows XP 的调度,包括Windows XP 管理的中断和延迟过程调用(DPC)。RTSS 也支内部进程通信(IPC)对象,RTSS 或者Win32 进程都能处理这种对象;这使得实时和非实时程序实现简单和标准的通信且同步。
RTX与其他实时操作系统的比较

其次,RTX 对所有线程执行抢占的实时调度,支持128 个优先级,严格控制各个优先级线程间的切换,并提供与Win32 环境兼容的实时编程接口,支持Win32 的API,实现了一套实时函数包括中断管理函数和直接硬件访问函数的扩展。RTX 实时操作系统计时器精度最高可达0.001ns,固定的128 个线程优先级与Windows 内核分离,支持RTX 线程的最低可能的延迟调度。使用RTX 实时操作系统可以满足控制系统的强实时性的要求。

综上,RTX为嵌入式系统开发人员提供了极大的便利,并有效缩减开发周期,降低开发成本。其开发过程简单易用,实时性能上也得到保证,因此也被更多的实时系统所采用。

3.最新版本的RTX特点

RTX2011新产品的新特点:

  1. RTX2011支持多至32个处理器的系统,是上一个RTX版本的处理器量的四倍还要多些。RTX工具和通用工具的更新来支持31RTSS处理器的展示。
  2. RTX2011有6个运行时版本,给到客户提升的选项来选择嵌入式系统需要的均衡的多处理功能的级别。
  3. RTX工具也包含在所有RTX2011运行时编辑中。
  4. RTX2011支持Windows7,Windows Vista直到SP2的版本,Windows XP直到SP3,Windows Embedded Standard 2009,和Windows Embedded Standard 7。
  5. RTX2011提供了:RTX和RT-TCP/IP头文件和库文件;支持Microsoft Visual Studio(2005、2008和2010);Microsoft WinDbg 扩展;网络驱动和资源;例子应用和文档说明和如何开发RTSS应用展示。
  6. RTX运行时提供了:实时子系统;工具和实用工具集来诊断问题和监视RTX环境的性能。
  7. 更新的RTX控制面板来提供一个更加详细的子系统状态。
  8. 在RTSS进程中通过FastSemaphores添加了新的轻量级的同步器。
  9. RTX API DLL为Windows提供的应用(Rtapi_w32.dll)现在可以动态被加载。
  10. 加强了的子系统追踪功能允许其可以从开始一个日志的对话之前就捕获到其信息。这个功能也可以通过RTX控制面板或者RTX属性API来更改。
  11. 允许在一个64位操作系统上,安装一个不带运行时的RTX SDK。
  12. 可以为RTX运行时与第三方安装简单地整合提供安装混合模块。
  13. Windows Embedded Standard 7已被安装包支持。Including RTX Runtime with Windows Embedded Standard 7文档现在已可以作为一个指导来展示如何利用ICE将RTX包含至其中。
  14. RTX现在允许最小的进程槽数为1(之前的最小是10)。