当前位置:首页 > 测试测量 > 测试测量
[导读]开发者在选择嵌入式产品RTOS时,实时性能是最重要的标准之一。嵌入市场研究公司Evans Data和Venture Development(VDC)最新的研究报告称,“实时性能”是开发者选择商用实时操作系统最重要的因素。但问题是

开发者在选择嵌入式产品RTOS时,实时性能是最重要的标准之一。嵌入市场研究公司Evans Data和Venture Development(VDC)最新的研究报告称,“实时性能”是开发者选择商用实时操作系统最重要的因素。但问题是,何为实时性能,又如何测量呢?

实时性能

实时性能可定义为RTOS(或类似软件)在响应某事件时执行相关操作的速度。实时意味着软件必须在独立的第二个事件发生前对第一事件作出响应。

例如,当汽车引擎进气阀打开时,引擎控制软件必须计算正确的空气燃料混合比,并在阀门关闭之前将其注入到汽缸里,为压缩冲程作准备。因此及时完成第一事件的响应是非常关键的,这样才能满足第二事件的要求。这个响应可能包括一系列操作,但最重要的是中断处理和系统服务。

中断处理

实时系统通常是基于反应机制的,系统需要作出响应的事件通常叫做中断。处理器一旦识别到中断,就会采取相关措施,执行响应该事件的指令。

大多数情况下,处理器在遇到中断之前正在执行一些指令。一旦有中断产生,这些处理必须暂停,当中断的关键

实时响应完成后,再继续原先的处理。大多数RTOS都为开发者提 供了中断处理和应用程序规划及执行管理的功能。中断处理通常包括如下操作:

暂停当前正在执行的线程

保持该线程继续执行时需要的有关数据,

将控制权交给中断服务子程序(ISR),

在ISR中执行一定的操作以决定需要采取哪些措施,

提取/保存该中断相关的关键(引入的)数据,

设置所需的与设备相关的(输出)值,

确定当中断及相关处理引起环境变化时需要执行哪个线程,

清除中断硬件以识别下一个中断,

将控制转交给选择的线程,包括提取该线程上次中断时保持的环境数据。

所有这些(也许还有更多操作,具体操作与RTOS相关)都属于中断处理,但这仅是实时性能的一个方面。无庸置疑的是,在特定RTOS执行这些操作会造成实时性能的显著区别。

系统服务

实时操作系统并不仅限于响应中断。他们还必须规划并管理应用程序线程的执行。RTOS处理来自各线程的请求,执行规划、信息传递、资源分配及很多其它服务。大多数情况下服务必须迅速执行,这样线程可以在下一中断产生时完成相关的操作。

系统服务尽管不属于中断处理,它也一项关键的实时响应,系统的成败关键取决于系统服务。系统服务处理包括如下内容:

规划未来事件发生时相应的任务或线程,

在线程间传递消息,

从通用池内声明资源

系统服务的实现虽然比中断处理更多变,但在改善RTOS实时性能方面占据同样重要的地位。系统服务和中断处理一起实现RTOS要求的重要处理。不同RTOS的功能实现及架构都有所不同,因而性能各异。

为何性能如此关键?

执行这些功能所需的时间是实时系统中最关键的指标,时间必须确定,而且要求响应速度快,这样才不致丢失数据,或者导致系统出现基本故障。

例如,飞行控制系统必须及时响应导航输入以避免系统运作停止,磁盘控制器必须将磁盘读写头的位置精确控制到相关点;DSL路由器也必须快速响应高速数据包抵达的中断,这样避免丢失数据,减少再次操作。

处理器速度在执行所有RTOS指令方面非常关键,但仅此并不能满足系统要求,也不能提供最经济有效的方案。

尽管2GHz处理器的代码执行速度另人满意,但成本、功耗或者物理封装等方面的性能均不适合嵌入式产品。相比之下,采用有效RTOS的经济型处理器并不一定逊色,还可能会胜出,而且不会引起快速处理器相关的成本、功率/散热/封装问题。

如何测量实时性能?

实时性能的测量注重最重要的方面,使用通用硬件平台严格测量各项指标,以比较不同RTOS。

因此开发者可以通过特定功能的执行情况,比较每个RTOS的性能,以量化实时性能,为产品开发作出正确的决定。需要测量的关键RTOS功能包括:

环境切换(CS) : 需要保存当前线程环境所需的时间,查找优先级最高的线程并保存其环境。

中断潜伏范围(ILR): 中断被禁止的时间。

RTOS系统服务

tx_thread_suspend. 暂停应用程序线程。

tx_thread_resume. 继续先前暂停的线程。

tx_thread_relinquish. 取消对其它应用程序线程的控制。

tx_queue_send . 向消息队列发送消息。

tx_queue_receive. 从消息队列获取消息。

tx_semaphore_get. 从计数信号获得实例。

tx_semaphore_put.在计数信号中放置实例。

tx_mutex_get. 获得互斥体的所有权。

tx_mutex_put. 释放互斥体的所有权。

tx_event_flags_set. 设置或清除事件标志。

tx_event_flags_get. 提取事件标志。

tx_block_allocate. 分配内存模块。

tx_block_release. 释放内存模块。

tx_byte_allocate. 分配内存字节。

tx_byte_release. 释放先前分配的内存区域。

对于如上的每个系统服务,必须测量如下指标:

立即响应:需要立即处理请求所需的时间,比如没有线程暂停或线程恢复。

线程暂停(TS): 由于资源无效需要暂停线程时处理请求所需时间。

线程恢复(TR): 当前一暂停的线程(优先级相同或者较低)恢复时处理请求所需时间。

线程恢复及环境切换(TRCS): 当前一暂停的高优先级线程恢复后处理请求所需时间。由于恢复的线程优先级高,针对恢复线程的环境切换也将在该请求中完成。

这些功能的时间示例如下表

所示。参考平台使用的是主频40MHz的ARM9处理器,采用ThreadX RTOS。这些时间对大多数32位处理器可根据时钟速率作线性缩放。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭