四种嵌入式实时操作系统VxWorks/pSOS/vRTX/uCOS-II大比拼

  • 简介:

 

VxWorks 是美国 Wind River System 公司推出的一个实时操作系统。配套调测工具 Tornado

 

pSOS ISI Integrated System )开发 ,该公司已经被风河公司兼并。pSOS 操作系统的开发环境是PRISM+;

vRTX Microtec Mentor 公司的开发。开发环境 XRAY;

 

uC/OS- 是一个免费的源代码公开的实时嵌入式内核,它提供了实时系统所需的基本功能。 uC/OS- 实际上是一个实时操作系统内核,只包含了任务调度、任务管理、时间管理、内存管理和任务间的通信与同步等基本功能。

  • 任务管理:

VxWorks:

调度策略:优先级 + 时间片轮转(默认禁止);

优先级: 0~255,0 级最高;

是否支持优先级反转:支持;

 

任务状态: ready/delay/pend/suspend

pSOS:

调度策略:优先级 + 时间片轮转(默认禁止);

优先级: 0~255,255 级最高;

是否支持优先级反转:不支持;

任务状态: ready/running/blocked

 

vRTx:

调度策略:优先级 + 时间片轮转(默认禁止);

优先级: 0~255 0 级最高;

是否支持优先级反转:支持;

 

任务状态: domant/ready/running/suspend/sleep/sleep

ucOS-II:

调度策略:优先级;

优先级: 0~63 0 级最高;

是否支持优先级反转:后续版本支持;

 

任务状态: ready/pend/suspend

  • 同步手段:

VxWorks:

1. 二进制信号量用作同步

2. 计数信号量

3. 5.5 以后版本支持事件

 

pSOS:

消息

信号灯

事件

异步信号

 

vRTX:

1. 事件

2. 计数信号量

 

uCOS-II:

计数信号量

  • 互斥手段:

VxWorks:

1. 互斥信号量

2. 二进制信号量用作互斥

3. 锁任务

4. 锁中断

 

pSOS:

锁中断

vRTX:

1. 互斥信号量

2. 锁任务

3. 锁中断

 

uCOS-II:

互斥信号量

 

  • 进程间通信:

VxWorks:

消息队列

管道

套接口通信

 

pSOS:

  消息队列

vRTX:

  消息队列

uCOS-II:

消息队列

消息邮箱

 

  • 内存管理:

VxWorks:

不分段不分页

分配策略:静态分配和动态分配。静态分配区就是配置的保留内存区,动态分配采用 First-Fit 算法,空闲块按照从小到大排列。

 

pSOS:

每个内存域均有一个单位尺寸参数,它在创建时指定。它必须是 2 的幂,而且必须大于等于 16 字节。内存分区( Partition )是用户定义的物理上连续的内存块,被分割为一组尺寸
固定的缓冲区。与内存域相似,分区也是由 pSOS+ 管理的动态抽象对象

 

vRTX:

两种内存分配管理分区 ( Partition)

(Heap)

分区管理采用的是静态的内存分配方法 , 系统分配和回收固定大小的存储

从指定的分区中获得一个存储块

VRTXsa 的堆管理可动态分配变长的存储块 , 并且能够有效的处理存储碎

 

uCOS-II:

  把连续的大块内存按分区来管理。每个分区中都包含整数个大小相同的内存块,但不同分区之 间内存块的大小可以不同。用户需要动态分配内存时,选择一个适当的分区,按块来分配内存。释放内存时将该块放回它以前所属的分区。就能有效解决内存碎片的问题

实时时钟管理:

VxWorks:

 

  • 时钟管理功能:

  维护系统日历时钟;
在任务等待消息包、信号量、事件或内存段时的超时处理;
以一定的时间间隔或在特定的时间唤醒或发送告警到一个任务。
处理任务调度中的时间片轮循。
这些功能都依赖于周期性的定时中断,离开实时时钟或定时器硬件就无法工作。

pSOS:

时间管理提供以下功能:
管理日历时间和日期;
任务等候消息、信号量、事件和段的超时;
在预定间隔或指定时刻到达后唤醒或送一告警给指定任务;

追踪运行任务的时间片并实现轮转调度机制

 

vRTX:

  VRTXsa 在系统中保存了一个 32 位的系统时钟 , 通过 VRTXsa 提供的系统调用 ui_timer 来计时系统时钟从 0 开始计数或者从应用设置的一个起始值开始计数

uCOS-II:

uC/OS- Ⅱ要求用户提供一个称为时钟节拍的定时中断,该中断每秒发生10100 次,时钟节拍的实际频率是由用户控制的。任务申请延时或超时控制的计时基准就是该时钟节拍。该时钟节拍同时还是任务调度的 时间基准。uC/OS- Ⅱ提供了与时钟节拍相关的系统服务,允许任务延时一定数量的时钟节拍或按时、分、秒、毫秒进行延时。

 

  • 中断管理:

VxWorks:

使用中断表来提供中断级的服务

ISR 连接到唯一的中断向量

中断表中,在合适的中断向量处,包含中断处理器 (interrupt handlers), 中断挂接函数 intConnect

 

pSOS:

由用户自己管理

vRTX:

ui_enter 进入一个 ISR

ui_exit 退出一个 ISR ISR 没有嵌套时就重调度 ,

返回到优先级最高的就绪任务

sys_load_vrtx_isr 来安装一个中断处理程序不

 

uCOS-II:

  OSIntExit OSIntEnter ,用户自己处理

你可能感兴趣的:(RTOS)