嵌入式软件系统的实时性设计 电子科技大学计算机科学与工程学院陈丽蓉熊光泽雷 航 摘要实时性是嵌入式软件系统的一个重要特性,在软件设计阶段就应该给予足够的重视。在基于优先级的可抢占调度方式下,如何安排任务的优先级是影响系统实时性的一个重要因素,本文对此作了详细论述。 关键词嵌入式软件系统实时性任务优先级 引言 近几十年来,嵌入式实时软件系统的应用越来越广泛,有关其设计、评价方面的研究工作也获得了长足的发展。实
嵌入式软件系统的实时性设计 电子科技大学计算机科学与工程学院陈丽蓉熊光泽雷 航 摘要实时性是嵌入式软件系统的一个重要特性,在软件设计阶段就应该给予足够的重视。在基于优先级的可抢占调度方式下,如何安排任务的优先级是影响系统实时性的一个重要因素,本文对此作了详细论述。 关键词嵌入式软件系统实时性任务优先级 引言 近几十年来,嵌入式实时软件系统的应用越来越广泛,有关其设计、评价方面的研究工作也获得了长足的发展。实时软件的评价主要包括可靠性评价和实时性评价两方面。对应的可靠性设计方法、实时性设计方法的研究也很重要。本文讨论的是有关嵌入式软件系统的实时性设计方法。所有的讨论与分析基于这样一个前提:实时应用以一定的实时操作系统为运行平台。该操作系统基于任务的静态优先级,采用可抢占式调度算法。 如图1所示,如果将实时软件系统看成是1个黑匣子,这个黑匣子接受外部环境的各种输入信息,在一定时间内完成相应的处理过程,输出处理结果。本文所论述的“实时性”主要是指输出与输入的时间差图1图2是否满足规定的时限要求。即不管该实时软件系统的内部结构或实现方法如何,对于特定的输入信息,它不仅要能作出正确的处理,还要在预先设定的时限范围内输出结果。设系统对某信号的处理延迟为tz,tz=t2-t1,则tz不能超过时限要求。 在实践经验与理论分析过程中我们发现,将应用系统划分为多个异步、并发的实时任务之后,各任务优先级高低的设置策略将对系统的实时性能产生较大的影响。优先级设置如果合理,可为已设计好的系统提供更好的实时性保障,反之则有可能产生不良影响。后面的讨论将从一个已经设计好的多任务系统出发,进一步讨论各任务优先级的设置问题。 一、 单条任务链的任务优先级设置 虽然整个系统由多个任务组成,但是对于某个特定输入来讲,并不是所有任务都要参与它的处理过程。我们可以将与各个输入有关的任务提取出来,构成一个个子系统。这些子系统的最简单结构即如图2所示的任务链。 对同一个信息,各任务按顺序进行处理。每个任务的功能结构大体是一样的,如图3所示。 图3对数据进行计算和处理的过程因应用不同、任务不同而异,一旦功能和算法确定,其最大执行时间也是一定的。数据的申请和发送涉及任务间的通信问题,与操作系统提供的相应机制有关。设有任务a1和a2,任务a1调用通信原语向任务a2发送消息,如果任务a2的优先级高于任务a1的优先级,则它一旦获得任务a1的消息就抢占任务a1,反之,则要等到任务a1阻塞(或挂起)后才能占用CPU。因此,对同一条处理链,就有两种基本的任务优先级设置方式: (1) 对任意2个任务ai和aj(i