题目可以翻译为“硬实时环境下多程序的调度算法”,发表于1973年,引用情况如下图,文章推导了很多针对硬实时调度算法的定理,如最优静态调度算法RM、RM调度算法最小资源使用率上界……这些定理堪称实时调度算法的经典。由于当时还没有多核多处理器的概念,所以文章推导的公式都是针对单处理器的。
文章首先对系统做了一些假设(待会会介绍),然后以这些假设为前提进行推导。看完这篇文章,我有以下几点感触或者疑惑:
处理器上多任务的调度可以看作是一个用来满足任务服务质量需求的函数。当任务集很大时,如果采用最优静态调度算法,处理器的最小使用率上界可能只有70%。而如果采用动态分配优先级的方法,可以让处理器的使用率达到100%。最后,本文设计了一种将这两种调度思想混合在一起形成的调度算法,并分析了其性能
为了分析硬实时环境下程序的行为,必须对环境做必要的假设。这些假设不一定要完全满足,后面也将分析如果不满足这些假设,系统会变成什么样子。
文章中有几个概念需要理解:
先解释几个概念:
定理1 如果任务请求时,所有优先级更高的任务也发生请求,该时刻为任务的a critical instant 证明思路:任务集合为,的优先级最低。以为例,其他任务的请求时间在,如果在处提交,其response time 一定大于在时刻提交的。其他任务的证明过程类似。
定理2 针对某一任务集,如果存在某静态调度算法让该任务集顺利执行,则RM调度算法也可以满足该任务集的服务质量需求 证明思路:任务集合为任务集合为 , 、 是其中的两个任务,且 的优先级更高,如果 ,不难证明, 的优先级更高时,该任务集也是可以调度的。既然RM调度算法的任务优先级顺序可以从任何调度算法中任务的优先级顺序变换而来,所以RM调度算法仍然让该任务集可以调度。即证明了定理2.
使用率:
任务集完全利用了处理器的资源,即该任务集的服务质量得到了满足,且增加任何一个任务的计算时间,该任务集都变得不可调度。 定理3 如果只有两个任务,那么利用率的最小上界是 证明思路:任务集,,已知,则的优先级更高,在的一个critical time zone区间里,个会发出任务请求。文章分两种情况讨论:会在第二个请求前完成,在第二个请求前没法完成。均可证明利用率的最小上界为 定理4 对于给定的m个任务集,任务的优先级顺序固定,且任意两个任务的周期之比小于2,那么该任务集的最小利用率上界是 证明思路:任务集,且,文章首先证明下面情况下,处理器的利用率最低
则,令,则可以推出和之间的关系,当时,处理器的利用率最低,这时,最后得到,即为处理器的最小利用率上界 定理5 对于给定的m个任务集,如果采用固定优先级调度算法,该任务集的最小利用率上界是 证明思路:当存在两个任务的周期之比大于等于2时。可以假定。用替代,,同时增加,使得任务集可以完全利用处理器的资源。最多可以增加,则
由于。因此我们考虑任务集的使用率最小上界时,只需考虑任务集中任务的周期之比小于2的情况。
截止时间驱动调度算法:任务的截止时间越短,优先级越高,即EDF调度算法。该算法中,任务间的优先级顺序是动态变化的。 定理6 当用EDF调度算法调度是,在overflow之前,处理器是不会有空闲时间的。 证明思路:如果在overflow之前存在空闲时间,假设该空闲时间是到,overflow时刻是,如果将移动到,由于和之间处理器没有空闲时间,所以移动到时刻,也不会出现处理器空闲的情况。将其他任务移动到时刻,也不会出现处理器空闲的时刻,而前,会出现overflow。和假设”任务overflow之前会存在空闲时间“相违背(证毕)。
定理7 任务集大小为m,EDF调度算法能满足服务需求的充要条件:
定义 让任务1,2,…,k 采用RM调度算法,在这k个任务的需求得到满足的情况下,任务k+1,k+2,…,m采用EDF调度算法 a(t)为t的单调增函数。如果,则是sublinear的。t时刻前,处理器的计算时间可以用a(t)表示。表示任务k+1,k+2,…,m可以利用的处理器时间。 定理8 如果采用EDF调度算法的任务集,其处理器上可用的时间是sublinear的,那么在overflow之前是处理器是没有空闲时间的。 定理9 对于采用EDF调度算法的任务,任务可以调度的充要条件是:任务的计算时间、周期以及这些任务可用的处理器时间之间的关系应满足
对所有的整数倍的时刻均成立 推论1:三个任务,最小,其中采用固定优先级任务调度算法,采用EDF调度算法,如果满足下式,则任务是可调度的
定理9表明,采用混合调度算法的任务集的利用率没法达到100%。举个简单的例子,有三个任务,,且,如果采用混合调度策略,因为,可以推出最大可以达到2,处理器的使用率为
如果采用EDF调度算法,可以达到,处理器的利用率可以达到100%。 如果采用RM调度算法,只能达到1,
只比三个任务的最小利用率上界大一点。 尽管混合调度算法的任务界限没有找到,但是其利用率明显高于采用RM调度算法的任务集的利用率,因此混合调度策略可能在很多场合能被使用到