在实时系统中,可能存在着两类不同性质的实时任务,即硬实时(HRT)任务和软实时(SRT)任务,它们都联系着一个截止时间。为保证系统能正常工作,实时调度必须能满足实时任务对截止时间的要求。为此,实现实时调度应具备一定的条件。
实现实时调度的基本条件
1. 提供必要的信息
(1) 就绪时间。 (2) 开始截止时间和完成截止时间。
(3) 处理时间。 (4) 资源要求。 (5) 优先级。
2. 系统处理能力强
在实时系统中,若处理机的处理能力不够强,则有可能因处理机忙不过,而致使某些实时任务不能得到及时处理,从而导致发生难以预料的后果。假定系统中有m个周期性的硬实时任务HRT,它们的处理时间可表示为Ci,周期时间表示为Pi,则在单处理机情况下,必须满足下面的限制条件系统才是可调度的: 。
提高系统处理能力的途径有二:一是增强单处理机系统的处理能力;二是采用多处理机系统。则应将上述的限制条件改为:
3. 采用抢占式调度机制
在含有HRT任务的实时系统中,广泛采用抢占机制。这样便可满足HRT任务对截止时间的要求。但这种调度机制比较复杂。
4. 具有快速切换机制
为保证硬实时任务能及时运行,在系统中还应具有快速切换机制,使之能进行任务的快速切换。该机制应具有如下两方面的能力:
(1) 对中断的快速响应能力。(2) 快速的任务分派能力。
实时调度算法的分类
可以按不同方式对实时调度算法加以分类:
① 根据实时任务性质:硬实时和软实时;
② 按调度方式:非抢占式和抢占式。
1. 非抢占式调度算法
(1) 非抢占式轮转调度算法。
(2) 非抢占式优先调度算法。
2. 抢占式调度算法
(1) 基于时钟中断的抢占式优先级调度算法。
(2) 立即抢占的优先级调度算法。
最早截止时间优先EDF(Earliest Deadline First)算法
非抢占式调度方式用于非周期实时任务
抢占式调度方式用于周期实时任务
最低松弛度优先LLF(Least Laxity First)算法
该算法在确定任务的优先级时,根据的是任务的紧急(或松弛)程度。任务紧急程度愈高,赋予该任务的优先级就愈高,以使之优先执行。