实时操作系统

  实时操作系统,即RTOS,全称Real-time operating system,适用于嵌入式设备和有实时性要求的系统中。实时系统能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统。实时系统应该在事先先定义的时间范围内识别和处理离散事件的能力;系统能够处理和储存控制系统所需要的大量数据。

概述

  实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度、异常处理等工作。在RTOS支持的系统中, 每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。

  实时多任务操作系统,以分时方式运行多个任务,看上去好象是多个任务“同时”运行。任务之间的切换应当以优先级为根据,只有优先服务方式的RTOS才是真正的实时操作系统,时间分片方式和协作方式的RTOS并不是真正的“实时”。美国CMX公司的RTOS采用全优先服务方式的任务调度,可以使中断潜伏时间减到最小。其RTOS的主要功能模块有调度和中断处理(为了优化用汇编编写),任务管理,事件管理,定时器管理,报文管理,循环队列管理,资源管理,固定存储块管理,规范的UART管理,自动掉电管理。这些也是标准的RTOS所应具有的基本功能。RTOS也体现了一种新的系统设计思想和一个开放的软件框架,工程师可以在不大量变动系统其它任务的情况下增加或去掉一个任务;一个项目开发的过程中,可以有多个工程师同时进行系统的软件开发,各个人之间只要制订好规程和协议即可,既缩短了开发时间,又降低了最终软件产品对于具体某个开发者个人的依赖性。为RTOS设计的成熟和通用的任务可以以库函数的形式供其它人继续利用,和C语言的设计思想一致。因此可以说RTOS 是嵌入式软件的编写从“小生产方式”进入“大 生产方式”的必然产物。

  在RTOS基础上可以很容易地实现各种通信协议库函数,CMX针对目前单片机网络系统中广泛使用的CAN总线协议,开发了CAN总线协议接口库函数。这些函数包括消息 接收,消息发送,初始化CAN控制器芯片,管理CAN控制器中断,管理节点地址和CAN标识,管理用于CAN信息包的缓冲存储区,通知一个任务消息已经收到等等。

  实时多任务操作系统一般以源代码形式供应用户,作为Project源程序的一部分参加编译和汇编,最终在用户代码中占有一部分。例如CMX的RTOS在80C51XA系统中采用大 模式编译增加代码量3310字节,中断潜伏时间在30M时钟下为2.9微秒。

特点

  IEEE 的实时UNIX分委会认为实时操作系统应具备以下的几点:

  ●异步的事件响应

  ●切换时间和中断延迟时间确定

  ●优先级中断和调度

  ●抢占式调度

  ●内存锁定

  ●连续文件

  ●同步

种类及特点

  总的来说实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。它强调的是实时性、可靠性和灵活性, 与实时应用软件相结合成为有机的整体起着核心作用, 由它来管理和协调各项工作,为应用软件提供良好的运行软件环境及开发环境。

  从实时系统的应用特点来看实时操作系统可以分为两种:一般实时操作系统和嵌入式实时操作系统。

  1、一般实时操作系统应用于实时处理系统的上位机和实时查询系统等实时性较弱的实时系统,并且提供了开发、调试、运用一致的环境。

  2、嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境是不一致。

  优点:嵌入式实时操作系统具有规模小(一般在几K~几十K 内)、可固化使用实时性强(在毫秒或微秒数量级上)的特点 。在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。

  缺点:但是,使用嵌入式实时操作系统还需要额外的ROM/RAM开销,2~5%的CPU额外负荷,以及内核的费用。

使用必要性

  嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。使用实时操作系统主要有以下几个因素:

  ●嵌入式实时操作系统提高了系统的可靠性。

  ●提高了开发效率,缩短了开发周期。

  ●嵌入式实时操作系统充分发挥了32位CPU的多任务潜力。

发展过程

  实时操作系统(RTOS)的研究是从六十年代开始的。从系统结构上看,RTOS到现在已经历了如下三个阶段:

  1. 早期的实时操作系统

  早期的实时操作系统,还不能称为真正的RTOS,它只是小而简单的、带有一定专用 性的软件,功能较弱,可以认为是一种实时监控程序。它一般为用户提供对系统的初始化管理以及简单的实时时钟管理,有的实时监控程序也引入了任务调度及简单的任务间 协调等功能,属于这类实时监控程序的有RTMX等。这个时期,实时应用较简单,实时性 要求也不高。应用程序、实时监控程序和硬件运行平台往往是紧密联系在一起的。

  2. 专用实时操作系统

  随着应用的发展,早期的RTOS已越来越显示出明显的不足了。有些实时系统的开发 者为了满足实时应用的需要,自己研制与特定硬件相匹配的实时操作系统。这类专用实时操作系统在国外称为Real-Time Operating System Developed in House。它是在早期 用户为满足自身开发需要而研制的,它一般只能适用于特定的硬件环境,且缺乏严格的评测,移植性也不太好。属于这类实时操作系统的有Intel公司的iMAX86等。

  3. 通用实时操作系统

  在各种专用RTOS中,一些多任务的机制如基于优先级的调度、实时时钟管理、任务间的通信、同步互斥机构等基本上是相同的,不同的只是面向各自的硬件环境与应用目标 。实际上,相同的多任务机制是能够共享的,因而可以把这部分很好地组织起来,形成一 个通用的实时操作相同内核。这类实时操作系统大多采用软组件结构,以一个个软件"标 准组件"构成通用的实时操作系统,一方面,在RTOS内核的层将不同的硬件特性屏蔽掉 ;另一方面,对不同的应用环境提供了标准的、可剪裁的系统服务软组件。这使得用户可 根据不同的实时应用要求及硬件环境选择不同的软组件,也使得实时操作系统开发商在开 发过程中减少了重复性工作。

  这类通用实时操作系统,有Integrated System公司的Psos+、Intel公司的iRMX386、 Ready System公司(后与Microtec Research合并)的VRTX32等。它们一般都提供了实时 性较好的内核、多种任务通信机制、基于TCP/IP的网络组件、文件管理及I/O服务, 提供 了集编辑、编译、调试、仿真为一体的集成开发环境,支持用户使用C、C++进行应用程序的开发。

  实时操作系统经过多年的发展,先后从实模式进化到保护模式,从微内核技术进化到到超微内核技术,在系统规模上也从单处理器的RTOS发展到支持多处理器的RTOS和网络RTOS,在操作系统研究领域中形成了一个重要分支。

评价指标

  RTOS是操作系统研究的一个重要分支,它与一般商用多任务OS如Unix、Windows、Multifinder等有共同的一面,也有不同的一面。对于商用多任务OS,其目的是方便用户管理计算机资源,追求系统资源利用率;而RTOS追求的是实时性、可确定性、可靠性。评价一个实时操作系统一般可以从任务调度、内存管理、任务通讯、内存开销、任务切换时间、中断禁止时间等几个方面来衡量。

  1. 任务调度机制:

  RTOS的实时性和多任务能力在很大程度上取决于它的任务调度机制。从调度策略上来讲,分优先级调度策略和时间片轮转调度策略;从调度方式上来讲,分可抢占、不可抢占、选择可抢占调度方式;从时间片来看,分固定与可变时间片轮转。

  2. 内存管理: 分实模式与保护模式。

  3. 最小内存开销:

  RTOS的设计过程中,最小内存开销是一个较重要的指标,这是因为在工业控制领域中的某些工控机(如上下位机控制系统中的下位机),由于基于降低成本的考虑,其内存的配置一般都不大,例如康拓5000系列5185板,其基本内存配置仅为256K SRAM+128K EPROM,而在这有限的空间内不仅要装载实时操作系统,还要装载用户程序。因此,在RTOS的设计中,其占用内存大小是一个很重要的指标,这是RTOS设计与其它操作系统设计的明显区别之一。

  4. 中断禁止时间:

  当RTOS运行在核态或执行某些系统调用的时候,是不会因为外部中断的到来而中断执行的。只有当RTOS重新回到用户态时才响应外部中断请求,这一过程所需的时间就是中断禁止时间。

  5. 任务切换时间:

  当由于某种原因使一个任务退出运行时,RTOS保存它的运行现场信息、插入相应队列、并依据一定的调度算法重新选择一个任务使之投入运行,这一过程所需时间称为任务切换时间。

  上述几项中, 中断禁止时间和任务切换时间是评价一个RTOS实时性最重要的两个技术指标。

相关百科