什么是VxWorks?
VxWorks的主要组成如下:
?
高性能系统内核Wind
?多任务调度(基于优先级抢占方式的实时调度算法)?内部任务的通讯其它标准工具?设备驱动?文件系统?I/O系统?内存管理?网络协议栈
6
?
为什么VxWorks被广泛采用?
?
??
可靠性考虑
操作系统的用户希望在一个工作稳定、可以信赖的环境中工作,而稳定、可靠是VxWorks的一个突出优点。实时性考虑可裁剪性考虑
由于存储空间和资源的限制,及提高运行效率考虑,用户在使用嵌入式操作系统时,并不是操作系统的每一个部件都要用到,例如图形显示、文件系统以及一些设备驱动在某些嵌入式系统中往往并不使用。VxWorks由一个8kB的内核和一些可裁剪的系统模块组成,可以根据需要很容易的定制。
7
为什么VxWorks被广泛采用?
?
软硬件支持能力考虑
鉴于VxWorks系统拥有良好的声誉和众多的用户,并且具有较好的开放性,很多硬件厂商提供了基于VxWorks平台的驱动支持,也有很多软件厂商开发了基于VxWorks的第三方软件产品。软硬件支持能力较强。
易用性考虑
开发系统的易用性是大多数用户非常关心的问题,WRS公司开发了一个用于VxWorks系统应用开发的集成开发环境Tornado,提供了友好的、便捷的嵌入式软件开发方法。
?
8
VxWorks操作系统与通用操作系统的对比
??
实时与非实时(实时处理、分时处理)“更快”(从实时性角度讲,实时性好)系统更小,并且可配置(采用微内核结构)
所有任务都运行在超级用户模式
?所有的VxWorks工具都可以被作为一个一般的函数被调用。
?
?
9
?
所有任务都存在于公共地址空间内(代码段、数据段、堆栈段)?可以使任务间的通讯更快更容易?可以使任务间上下文切换更快
?一个任务的不正常可能会导致其它任务出错
RAMint fooVal;TextDataBssvoid fooSet(Iint x){ char *bufPtr=malloc(100*sizeof(char)); ?? fooVal=x; ??}fooLibtTaskAfooSet(4)tTaskBfooSet(99)10