表2.1 四个实时系统的实时性重要指标对比[21]
Vxworks uC/OS-II
RT-Linux QNX
硬件平台 MC68000 33MHz 486 60MHz 486 33MHz 486
任务切换 3.8us <9us 不详 12.57us
中断响应 <3us <7.5us 25us 7.5us
vxworks操作系统本身开销很小,使其能有出色的实时性表现,最重要的是进程调度、进程间的通信、中断处理等系统共用程序精简而且有效,使其实时性表现更上一层楼。
可裁剪性:vxworks操作系统是由内核和很多系统模块构成的,系统内核最小只有8KB,而外围的系统模块可以根据实际应用环境的不同进行取舍,以便保持vxworks的精简,保证vxworks的实时性和高度的灵活性。vxworks出色的可裁剪性让用户可以根据实际情况进行适当的定制,来满足实际应用的需求。
2.1.3 vxworks内核组成
一个优秀的实时操作系统内核离不开下面几个主要的组成部分:
多任务:多任务是一个优秀的操作系统所必须的,如果没有多任务就体现不出实时操作系统的实时性能。内核按照某种策略轮流分配微小的CPU时间片给不同的任务,宏观上感觉像是多个任务并发执行的效果,给人一种多任务同时执行的效果。文献综述
抢占调度:在现实世界中好多事情的完成都是有先后顺序的,在操作系统中也同样有这一特性,内核在分配微小CPU时间片的时候根据各个任务的优先级先后进行分配。vxworks采用的是抢占调度和轮询调度结合的内核调度算法,在正常情况下采用轮询调度算法确保每个任务能够在规定的时间内完成,但是只要有一个优先级比正在执行的优先级高的任务处于就绪状态,高优先级就会抢占CPU来确保任务相应的实时性。
任务间的通讯与同步:一个实时系统中可能运行着很多不同的任务,任务之间可能需要进行通信,这就需要实时内核提供快速且功能强大的通信机制。内核也要提供为了有效地共享不可抢占的资源或临界区所需的同步机制。
任务与中断之间的通信:中断就相当于真实世界中的事件到来,实时内核需要提供有效的排队、优先化和减少中断延时的机制,使中断的工作尽量在任务级中做处理。所以还需要任务级和中断级之间的通信机制。
2.1.4 MPC837X网卡硬件过滤特性
严格来说MPC837X网卡的硬件不带过滤的功能,本文中提到的网卡的硬件过滤功能其实是指网卡提供的服务质量(QoS)功能,利用该功能实现的数据包过滤的功能。由于服务质量功能是网卡硬件提供的,所以在此基础上实现的数据包过滤功能也可以认为是网卡硬件提供的,本文中称之为网卡的硬件过滤。
网卡提供的服务质量功能主要由3部分组成:接收解析器、接收队列分类器和发送调度器。源.自/751·论\文'网·www.751com.cn/
接收解析器:接收解析器的作用主要是解析进来的数据帧,并且生成用于分类的属性和数据帧控制块。解析器不仅可以解析以太头部,而且可以解析网络层和传输控制层的数据。
解析器在解析数据链路层的信息时候已知解析到最后一个以太头类型或者是解析到一个未知的以太头类型才停止。解析网络层的信息是在解析完数据链路层头部之后,或者是数据链路层头部解析到IPv4/IPv6协议才进行。同样传输控制层的解析是在完成对网络层解析之后,或者是在网络层解析到TCP/UDP协议的时候,但是还有一个附加条件就是数据帧不是分片的数据帧。