实时调度
# 实时调度
在实时系统中,可能存在着两类不同性质的实时任务,即HRT 任务 和SRT 任务,它们都联系着一个截止时间。为保证系统能够正常工作,实时调度必须能满足实时任务对截止时间的要求。为此,实现实时调度应具备一定的条件。
# 实现实时调度的节本条件
- 提供必要的信息
为了实现实时调度,系统应向调度程序提供有关任务的信息; (1) 就绪时间,是指某任务成为就绪状态的起始时间,在周期任务的情况下,它是实现预知的一串时间序列。 (2) 开始截止时间和完成截止时间,对于典型的实时应用,只须知道开始截止时间,或者完成截止时间。 (3) 处理时间,一个任务从开始执行,直至完成时所需的时间。 (4) 资源要求,任务执行时所需的一组资源。 (5) 优先级,如果某任务的开始截止时间错过,势必引起故障,则应为该任务赋予“绝对优先级”;如果其开始截止时间的错过,对任务的继续运行无重大影响,则可为其赋予“相对”优先级,供调度程序参考。
- 系统处理能力强
在实时系统中,若处理机的处理能力不够强,则有可能因处理机忙不过,而致使某些实时任务不能得到及时处理,从而导致发生难以预料的后果。假定系统有m个周期性的硬实时任务HRT,它们的处理时间可表示为Ci,周期时间表示为Pi,则在单处理机情况下,必须满足下面的限制条件系统才是可以调度的:
顺便说明一下,上述的限制条件并未考虑到任务切换所花费的时间,因此,当利用上述限制条件是,还适当地留有余地。
提高系统处理能力的途径有二:一是采用单处理机系统,但必须增强其处理能力,以显著地减少对每一个任务的处理时间;二是采用多处理机系统。假定系统中的处理机数为N,则应将上述的限制条件修改为:
- 采用抢占式调度机制
在含有HRT任务的实时系统中,广泛采用抢占机制。这样便可满足HRT任务对截止时间的要求。但这种调度机制比较复杂。对于一些小的实时系统,如果能预知任务的开始截止时间,则对实时任务的调度可采用非抢占调度机制,以简化调度程序和在任务调度时所花费的系统开销。在设计这种调度机制时,应使所有的实时任务都比较小,并在执行完关键性程序和临界区后,能及时地将自己阻塞起来,以便释放出处理机,供调度程序去调度那个开始截止时间即将达到的任务。
- 具有快速切换机制
为保证硬实任务能及时运行,在系统中还应具有快速切换机制,使之能进行任务的快速切换,该机制应具有如下两方面的能力:
(1) 对中断的快速响应能力。对紧迫的外部事件请求中断能及时响应,要求系统具有快速硬件中断机构,还应禁止中断的时间间隔尽量短,以免耽误时机(其他紧迫任务).
(2)快速的任务分派能力。为了提高分派程序进行任务切换时的速度,应使系统中的每个运行功能单位适当的小,以减少任务切换的时间开销。