2008-09-22
所有这些(也许还有更多操作,具体操作与RTOS相关)都属于中断处理,但这仅是实时性能的一个方面。无庸置疑的是,在特定RTOS执行这些操作会造成实时性能的显著区别。
系统服务
实时操作系统并不仅限于响应中断。他们还必须规划并管理应用程序线程的执行。RTOS处理来自各线程的请求,执行规划、信息传递、资源分配及很多其它服务。大多数情况下服务必须迅速执行,这样线程可以在下一中断产生时完成相关的操作。
系统服务尽管不属于中断处理,它也一项关键的实时响应,系统的成败关键取决于系统服务。系统服务处理包括如下内容:
系统服务的实现虽然比中断处理更多变,但在改善RTOS实时性能方面占据同样重要的地位。系统服务和中断处理一起实现RTOS要求的重要处理。不同RTOS的功能实现及架构都有所不同,因而性能各异。
为何性能如此关键?
执行这些功能所需的时间是实时系统中最关键的指标,时间必须确定,而且要求响应速度快,这样才不致丢失数据,或者导致系统出现基本故障。
例如,飞行控制系统必须及时响应导航输入以避免系统运作停止,磁盘控制器必须将磁盘读写头的位置精确控制到相关点;DSL路由器也必须快速响应高速数据包抵达的中断,这样避免丢失数据,减少再次操作。
处理器速度在执行所有RTOS指令方面非常关键,但仅此并不能满足系统要求,也不能提供最经济有效的方案。
尽管2GHz处理器的代码执行速度另人满意,但成本、功耗或者物理封装等方面的性能均不适合嵌入式产品。相比之下,采用有效RTOS的经济型处理器并不一定逊色,还可能会胜出,而且不会引起快速处理器相关的成本、功率/散热/封装问题。
如何测量实时性能?
实时性能的测量注重最重要的方面,使用通用硬件平台严格测量各项指标,以比较不同RTOS。
因此开发者可以通过特定功能的执行情况,比较每个RTOS的性能,以量化实时性能,为产品开发作出正确的决定。需要测量的关键RTOS功能包括:
* 环境切换(CS) : 需要保存当前线程环境所需的时间,查找优先级最高的线程并保存其环境。
* 中断潜伏范围(ILR): 中断被禁止的时间。
* RTOS系统服务
o tx_thread_suspend. 暂停应用程序线程。
o tx_thread_resume. 继续先前暂停的线程。
o tx_thread_relinquish. 取消对其它应用程序线程的控制。
o tx_queue_send . 向消息队列发送消息。
o tx_queue_receive. 从消息队列获取消息。
o tx_semaphore_get. 从计数信号获得实例。
o tx_semaphore_put. 在计数信号中放置实例。
o tx_mutex_get. 获得互斥体的所有权。
o tx_mutex_put. 释放互斥体的所有权。
o tx_event_flags_set. 设置或清除事件标志。
o tx_event_flags_get. 提取事件标志。
o tx_block_allocate. 分配内存模块。
o tx_block_release. 释放内存模块。
o tx_byte_allocate. 分配内存字节。
o tx_byte_release. 释放先前分配的内存区域。
对于如上的每个系统服务,必须测量如下指标:
o 立即响应:需要立即处理请求所需的时间,比如没有线程暂停或线程恢复。
o 线程暂停(TS): 由于资源无效需要暂停线程时处理请求所需时间。
o 线程恢复(TR): 当前一暂停的线程(优先级相同或者较低)恢复时处理请求所需时间。
o 线程恢复及环境切换(TRCS): 当前一暂停的高优先级线程恢复后处理请求所需时间。由于恢复的线程优先级高,针对恢复线程的环境切换也将在该请求中完成。
这些功能的时间示例如下表所示。参考平台使用的是主频40MHz的ARM9处理器,采用ThreadX RTOS。这些时间对大多数32位处理器可根据时钟速率作线性缩放。
评论0