第二章 μc/osIII 操作系统
2。1 典型嵌入式实时操作系统
什么是实时操作系统(RTOS)?保证实时系统在指定时间内完成任务的操作系 统,它不以完成任务数量为目标而是有确定的响应时间为目标。简而言之实时操作 系统就是当发生外部事件或者数据时,能够在最快的时间内接收并且处理,其结果 又可以在指定的时刻范畴内控制生产过程,能够控制所有的实时性任务使它们能够 正常运行的操作系统(OS)[5]。
所谓实时性就是足够快的反应速度,保证能以最快的时间启动而且不能于所要 求的响应时间,在最短的时间内完成,不低于最后所要求的完成时间。由此知道足 够快的响应时间和强可靠性是实时操作系统的主要特点,在实时操作系统中每个任 务都有时间限制,这一点在实时操作系统中是非常重要的。
目 前 市 场 上 有 着 上 百 种 不 同 的 实 时 系 统 , 典 型 的 嵌 入 式 实 时 系 统 有 VxWorks,RTEMS 以及μC/OSII 等。下面我们以μC/OSII,VxWorks 作为实例来简单了 解嵌入式实时操作系统的性能。
一个实时操作系统可以有多个不同的性能考量指标,系统调度机制,同步与通 信机制,对硬件的支持,中断以及优先级等[6]。
表 2-1 主要比较操作系统的调度机制。所谓调度就是保证不同任务都能够使用到 CPU 的资源,不必担心被“忽略”而不能得到运行。对于资源不充足的嵌入式系统 来说,调度机制就更加实用。
表 2-1 调度机制比较表
名称 内核抢占 优先级数 调度方法 同优先级调度
任务数量 时间确定性
VxWorks 是 256 基于优先 级抢占调 度, 时间 片轮转调 度
μC/OSII 是 64 基于固定 优先级抢 占调度
表 2-2 展示了 2 种系统之间的同步与通信的机制。任务与中断必需实现协调运作 才能正常实现我们需要的功能,这就产生了同步与通信的问题。信号量、事件标志 组用来实现同步,消息队列、共享内存用来通信。
表 2-2 同步与通信
系统名称 同步 通信
VxWorks 信号量,互斥信号量,事件
标志组 消息队列,共享内存
μC/OSII 信号量,互斥信号量,事件 标志组 邮箱,消息队列
表 2-3 罗列了上述 2 种操作系统对硬件的支持。以上 2 种操作系统支持市面上绝 大多数的 CPU 构架,μC/OSII 支持 8 位/16 位以及低端 32 位的 CPU,VxWorks 可以 在很多体系架构上移植,支持 16 位,32 位和 64 位的 CPU。总体而言,每种操作系 统都是经济实用性产品。
表 2-3 硬件支持
系统 CPU 位数 CPU 种类 存储容量
VxWorks 16-64 位 X86,ARM 系 几 十 到 几 百
列 , MC68 , KB 的 ROM
PowerPC 和 RAM
μC/OSII