摘 要:通过研究实时操作系统内核及应用技术,分析实时操作系统性能指标;基于实时操作系统μC/OSⅡ内核接口和任务运行原理,提取实时任务的构成要素,构建实时任务模型。运用任务模型进行实时任务、实时应用程序的设计和实现。根据任务模型设计实现一个范例程序的基本功能和性能需求,将模型设计思想应用于实时软件开发,任务模型为实时程序研发和相关教学活动提供了一个简便的解决方案。
关键词:实时任务;实时应用程序;任务模型;实时性能
0 引 言
由于实时程序运行机制与传统程序相比具有独特性,在实时应用程序开发和相关教学实践中,如何根据应用需求和系统功能设计,确立实时程序结构,完成代码的设计与实现则是一个首要的、关键的问题。软件设计者常因缺乏简易、实用的实时软件开发基本方法,难以快速建立全面、系统的开发思路和实施步骤。现有实时内核技术及其应用软件开发资料篇幅较大,技术细节多,学习周期长,可操作性较差,一定程度上影响软件开发者的工作进度。需要一种简便易行、行之有效、可操作性强的开发方法,以便为快速全面了解、掌握实时软件开发流程提供指南。
为此,通过分析实时软件核心技术,结合μC/OsⅡ实时操作系统内核,提出一个实时程序任务模型。依据该模型,确立实时任务功能及处理流程,调用实时内核,确立一个实时应用程序基本结构,实现实时程序运行机制,最终完成一个实时应用软件的设计与实现,并提供一个简单范例应用该任务模型。
1 实时软件技术及实时软件构成
实时软件开发环境一般采用实时操作系统(RTOS)作为系统开发和运行支持平台,支持模块化开发,提高开发效率,缩短开发周期,便于程序的调试、维护,使实时性能得到保证,系统稳定可靠。RTOS为每个任务建立一个可执行环境,并可方便地在任务间传递消息,在中断处理程序和任务间传递事件,根据任务优先级实施抢占调度。
从实时操作系统(Real-time OS)的内核功能、实现方法和运行机制可得其目标包括:按照抢占优先级策略控制管理实时应用程序每个并发任务的运行;每个任务在多长时限可以完成或得到响应。任务时限(dead-line)是实现每个实时任务必备的性能指标。
时限可以分为硬时限(Hard Deadline)和软时限(Soft Deadline)。具有硬截止时间的任务即为关键任务,如果不能满足时限,则视为系统错误。根据任务设置的重要程度,将拥有关键任务的实时系统称为硬实时系统,否则称为软实时系统。
硬实时技术应用广泛。例如:航空导航、武器控制等应用系统,必须使用实现硬实时技术的操作系统,将计算、存储、显示和机电控制系统以严格时限组合为一个系统。软实时系统运行方式与硬实时系统基本相同,区别在于只须满足统计意义上的实时要求。软实时系统一般要求满足时限的概率达到90%。比如,媒体播放系统一般要求1 s播放24帧图像。如果数据在数据严重负载的情况下,不能在1 s内处理24帧,造成播放失真。如果DVD播放正确率达到95%,用户就能基本满意。
实时应用系统能否满足实时性能的要求,可从以下指标进行考察。
1.1 中断延迟
从一个外部事件发生到响应中断处理函数的第一条指令开始执行,这段时长称为中断延迟。很多实时任务由中断驱动执行,中断事件必须在限定的时限内处理,否则将产生严重后果。
例如,设定烤箱温度达到300℃时自动切断电源。从传感器探测到该极限温度,到系统进入切断电源的中断处理程序,其间系统处理这个时长即为中断延迟。显然,这个时长对烤箱设备的使用安全至关重要。
1.2 抢占延迟
从一个外部事件发生到处理该事件任务的第一条指令开始执行,这段时长称为抢占延迟。大多数实时系统都是处理一些周期性或非周期性的重复事件,事件触发任务执行。每当事件发生,相应的处理任务必须及时得到调度执行,否则将无法满足时限。抢占延迟反映系统响应的及时程度。
例如:μC/OSⅡ某实时应用程序有如下功能,按照设定周期,需要运行统计任务对程序运行部分结果进行统计,从时钟到时,事件发生,到统计任务开始运行这段时间即为抢占延迟,这个时长决定统计结果误差的大小。
图1表示实时软件设计编程和运行层次结构。该图对实现实时应用程序功能设计接口和运行机制进行层次划分。指明基于操作系统内核进行应用开发的编程层次和接口。从而形成实时应用程序内部结构。