原文链接:http://sandhut.yculblog.com/post.4107400040.html
嵌入式实时系统可以分为两大类,一类为软实时系统,其意味着系统对激励的响应和功能模块的运行时间要求尽量小,以满足系统流畅运行的需要,提高整个系统的工作效率,如果一些因素影响了响应运行时间,也不会对系统带来灾难性或不可挽回的损失,只会降低系统的运行效率;反之,还有一类系统称为硬实时系统,一旦响应时间超过规定值,则会对系统造成灾难性的破坏,导致整个大系统的异常和崩溃,所以硬实时系统对软硬件的要求更为苛刻。
WINDRIVER公司的VxWorks就是这样一套可以很好保证系统硬实时要求的RTOS,其在该领域一直保持着市场的绝对优势,全球有超过3亿台的设备在运行该操作系统,因为它能够满足各种需求下不同的应用,很好的达到实时,可靠,可裁剪的要求,同时还提供大量简单易用,功能丰富的开发工具。
一个好的RTOS需要满足以下几点:多任务,抢占式调度,任务与任务,任务与内核之间的通信等。VxWorks通过创建任务,定义任务的优先级别来实现多任务和抢占式调度,通过Pipes,Semaphore,Message Queues等机制度来实现多任务之间的通信和同步。
同时VxWorks有很清晰的分层结构,且包含很多可选择的组件以及方便的开发调试环境,这些都为工程师的开发工作提供了极大的便利。
近两年发布的VxWorks 6版本当中又根据客户的需求增加了一些新特性,包括RTP(Real Time Process),ED&R(Error Detection and Reporting)等机制,这些机制的使用,使得操作系统更加可靠稳定,但是我认为在一定程度上降低了代码运行的效率(在后面的章节中会有详细的测试数据),工程师在使用过程中可以灵活应用,以达到最好的平衡(因为6.2可运行在多种模式下,可通过部分任务运行在kernel态,部分任务用相应的RTP来实现)。同时配套的WorkBench作为一种新的开发工具,包含了很多程序员梦寐以求的开发调试工具,不过工程师需要一段时间去适应和熟练运用。