首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

RTOS简介

RTOS简介

目前嵌入式应用领域的一个发展倾向是采用实时多任务操作系统(Real Time
Operati on System,RTOS)。RTOS的应用是和前面所述的应用复杂化直接相关的。
过去一个单片 机应用程序所控制的外设和履行的任务不多,采取一个主循环和几个
顺序调用的子程序模块即可满足要求。目前单片机芯片本身的性能大幅度提高,
可以适应应用复杂化这一要求,问题在于软件上。随着应用的复杂化,一个嵌入式
控制器系统可能要同时控制/监视很多外设,要求有实时响应,有很多处理任务,
各个任务之间有多种信息传递,如果仍采用原来的程序设计方法存在两个问题。
一是中断可能得不到及时响应,处理时间过长,这对于一些控制场合是不允许的,
对于网络通信方面则会降低系统整体的信息流量。二是系统任务多,要考虑的各种
可能也多,各种资源如调度不当就会发生死锁,降低软件可靠性,程序编写任务量
成指数增加。


实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用
程序是运行于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
微秒。

51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)
实时操作系统的发展过程

实时操作系统(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,在操作系统研究领域中形成了一个重要分支。
51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)

今后,RTOS研究方向主要集中在如下几个方面:

1. RTOS的标准化研究
如今国外的RTOS开发商有数十家,提供了上百个RTOS,它们各具特色。但这也给
应用开发者带来难题,首先是应用代码的重用性难,当选择不同的RTOS开发时,不能
保护用户已有的软件投资,RTOS的标准化研究越来越被重视。美国IEEE协会在UNIX的
基础上,制定了实时UNIX系统的标准POSIX 1001.4系列协议,但仍有许多工作还待完成。

2. 多处理器结构RTOS、分布式实时操作系统和实时网络的研究

实时应用的飞速发展,对RTOS的性能提出了更高的要求。单处理器的计算机系统
已不能很好地满足某些复杂实时应用系统的需要,开发支持多处理器结构的RTOS已成为
发展方向,这方面比较成功的系统有Psos+m等。至于分布式RTOS,国外一些RTOS厂家
虽已推出部分产品,如QNX、Chorus、Plan 9等,但分布式实时操作系统的研究还未完全
成熟,特别是在网络实时性和多处理器间任务调度算法上还需进一步研究。

3. 集成的开放式实时系统开发环境的研究
R TOS研究的另一个重要方向是集成开发环境的研究。开发实时应用系统,只有
RTOS是不够的,需要集编辑、编译、调试、模拟仿真等功能为一体的集成开发环境的
支持。开发环境的研究还包括网络上多主机间协作开发与调试应用技术的研究、RTOS
与环境的无缝连接技术等。

§1.2 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实时性最重要的两
个技术指标。

下列出了几种RTOS的几项指标。

iRMX 86 iRMX386 AMX VRTX32 Psos+
任务调度 优先级+ISR 优先级+ISR 时间片+
优先级 时间片+优先级+可抢占 时间片+优先级+可抢占
内存管理 实模式 保护模式 实模式 保护模式 实模式
保护模式
任务切换 时间 小于20ms 19ms
最大中断禁止时间 8ms 7ms
最小
内存开销 10kB RAM 24kB RAM 4kB ROM+
1kB RAM 14~20kB RAM
注:
1. 任务切换时间、最大中断禁止时间是以 33MHZ主频、Intel80386 CPU为基准的数据。
51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)
返回列表