1.2 实时系统

系统的实时性指的是在固定的时间内正确地对外部事件做出响应。在这段“时间内”,系统内部会做一些处理,例如输入数据的分析计算、加工处理等。而在这段时间之外,系统可能会空闲下来,做一些空余的事。以一个手机终端为例:当一个电话拨入的时候,系统应当及时发出振铃、声音提示以通知主人有来电,询问是否进行接听;而在非电话拨入的时候,人们可以用它进行一些其他操作,例如听音乐、玩游戏等。

从上面的例子我们可以看出,实时系统是一种需求倾向性的系统,对于实时的任务需要在第一时间内做出回应,而对非实时任务则可以在实时事件到达时为之让路——被抢占。所以也可以将实时系统看成是一个等级系统,不同重要性的任务具有不同的优先等级:重要的任务能够优先被响应执行,非重要的任务可以适当往后推迟。

实时计算可以定义成这样一类计算,即系统的正确性不仅取决于计算的逻辑结果,还依赖于产生结果的时间。有两个关键点,即正确地完成和在给定的时间内完成,且两者重要性是等同的。如果计算结果出错,这将不是一个正确的系统,而计算结果正确,但计算所耗费的时间已经偏离需求设定的时间,那么这也不是一个实时系统。图1-3描述了一个实时系统。

图1-3 实时系统

对于输入的信号、事件,实时系统必须能够在规定的时间内得到正确的响应,而不管这些事件是单一事件、多重事件,还是同步信号或异步信号。

举一个例子说明:假设一颗子弹从20米外射向一个玻璃杯,子弹的速度是v米/秒,那么经过t1=20/v秒后,子弹将击碎玻璃杯。而如果有一个保护系统在检测到子弹射出后,把玻璃杯拿走了,假设整个过程持续t2秒的时间,如果t2t1,玻璃杯就不会被击碎,那么就可以将这个系统看成是一个实时系统。

和嵌入式系统类似,实时系统中也存在一定的计算单元,这些单元可对系统的环境及其内部的应用做出预计,这也就是很多关于实时系统的书中所谈及的可确定性,即系统可以在给定的时间(t秒)内对一个给定事件做出响应。多个事件、多个输入的系统响应的可确定性构成了整个实时系统的可确定性(实时系统并不代表着对所有输入事件具备实时响应,而是在指定的时间内完成对事件的响应)。嵌入式系统的应用领域十分广泛,我们并不是要求所有的专用功能都具备实时性,只有当系统对任务有严格时间限定时,我们才关注它的实时性问题。具体的例子包括实验控制、过程控制设备、机器人、空中交通管制、远程通信、军事指挥与控制系统等。而对打印机这样一个嵌入式应用系统,人们并没有严格的时间限定,只有一个“尽可能快”的期望要求,因此,这样的系统称不上是实时系统。

 

软实时与硬实时

正如上面所描述的,实时系统关注的不外乎两点,即时间的正确性功能的正确性。事实上,衡量一个实时系统的正确性正是如此,就是要求系统能在给定的时间内正确地完成相应的任务。但现实中也存在这样一种系统,即在多数情况下,它能够严格地在规定的时间内完成任务,但偶尔它也会稍微超出这个给定的时间范围才能正确地完成任务,我们通常把这种系统称为软实时系统。从系统对规定时间的敏感性的要求来看,实时系统可以分为硬实时系统和软实时系统。

硬实时系统严格限定在规定的时间内完成任务,否则就可能导致灾难的发生,例如导弹拦截系统,汽车引擎系统等,当这些系统不能满足规定的响应时间时,即使只是偶尔,也将导致车毁人亡等重大灾难的发生。

软实时系统,可以允许偶尔出现一定的时间偏差,但是随着时间的偏移,整个系统的正确性也会随之下降,例如可以将一个DVD播放系统看成一个软实时系统,允许它偶尔出现画面或声音延迟。

图1-4绘制了这三种系统(非实时系统、软实时系统和硬实时系统)的时效关系。

图1-4 时间与效用的关系

从图1-4中我们可以看出,当事件触发,在时间t内完成,则三类系统的效用是相同的。但是当完成时间超出时间t时,则效用发生了变化。

❏ 非实时系统:超过规定的时间t后,其效用缓慢下降。

❏ 软实时系统:超过规定的时间t后,其效用迅速下降。

❏ 硬实时系统:超过规定的时间t后,其效用立即归零。