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- Ⅱ要求用户提供一个称为时钟节拍的定时中断,该中断每秒发生10 至100 次,时钟节拍的实际频率是由用户控制的。任务申请延时或超时控制的计时基准就是该时钟节拍。该时钟节拍同时还是任务调度的 时间基准。uC/OS- Ⅱ提供了与时钟节拍相关的系统服务,允许任务延时一定数量的时钟节拍或按时、分、秒、毫秒进行延时。
VxWorks:
使用中断表来提供中断级的服务
ISR 连接到唯一的中断向量
中断表中,在合适的中断向量处,包含中断处理器 (interrupt handlers), 中断挂接函数 intConnect
pSOS:
由用户自己管理
vRTX:
ui_enter 进入一个 ISR
ui_exit 退出一个 ISR 当 ISR 没有嵌套时就重调度 ,
返回到优先级最高的就绪任务
sys_load_vrtx_isr 来安装一个中断处理程序不
uCOS-II:
OSIntExit 、 OSIntEnter ,用户自己处理