改进的最早时限第一的调度方法

文档序号:6381516阅读:247来源:国知局
专利名称:改进的最早时限第一的调度方法
技术领域
本发明涉及一种实时调度,且更特别的是,涉及一种用于以固定时间复杂度完成优先级分配的EDF调度方法。
背景技术
最近,随着计算机和计算机网络技术的快速发展,各种各样的实时多媒体应用程序正在出现。而且,随着实时应用程序变得更为成熟和复杂,为了改进一个系统的性能和可靠性,正在进行对实时调度的许多研究。
在几种众所周知的调度技术中,速率单调(RM)(rate monotonic)和最早时限第一(EDF)(earliest deadline first)算法被认为适合于多媒体调度(multimedia scheduling)。
尤其是,EDF算法被看作为一个最佳调度算法,在该算法中系统利用率(system utilization degree)是100%。不过,由于在临时过载时候的不稳定性和实现的复杂性,现在更多地使用固定优先级算法(如RM)。
图1和图2是分别用于解释按照现有技术的RM调度和EDF调度的典型视图,在图中按照RM算法和EDF算法调度分别具有不同的周期和运行时间的三个任务(T1,T2和T3)。
在RM调度的情况下,一个任务的周期越短,则分配给它的优先级越高。如图1所示,为周期5的任务T1分配最高优先级H,为周期7的任务分配一个中等优先级M,并为周期15的任务T3分配最低优先级L。在RM调度中,一旦为任务分配了优先级,即使时间过去也不会改变优先级。
相反地,在EDF调度的情况下,任务的优先级是由任务的时限(deadline)确定的。也就是说,为在当前时间具有最短时限(deadline)的任务分配最高优先级。按照这样,如图2所示,在时间‘0’,为到时限的时间为5的任务T1分配最高优先级H,为到时限的时间为7的任务T2分配中等优先级M,并为到时限的时间为15的任务T3分配最低优先级L。然而,在时间‘9’,任务T1和T3到时限的剩余时间各为6,而任务T2到时限的剩余时间为5,因此任务的优先级改变了。
支持所述EDF调度的操作系统通常使用表结构(list structure)或一个堆形式(heap form)的数据结构。这里,如果一个系统的任务或消息的数量是N,当一个调度程序选择下一个要调度的任务或消息时需要花费线性时间O(N)。
可是,在一个需要一个可预测的运行时间且没有长的容许误差时间的实时网络中或在一个实时安装类型系统中,具有线性时间复杂度的调度程序是不合乎需要的,而需要一个定时调度。
为此,在A.Mesh等人的“Earliest Deadline Message Scheduling withLimited Priority Inversion”的论文中披露了一种改进的EDF优先级分配方法。所述Mesh优先级分配方法的一个基本概念是将当前任务或消息的时限转换成一个对数尺度(logarithmic scale)并由此分配优先级。在所述Mesh的优先级分配方法中,如果没有增加新的任务或消息,则不需要一个新的优先级分配,从而在固定时间内完成一个调度。不过,在一个按一个用户的要求频繁地产生和消除一个动态任务的环境中,仍存在线性时间复杂度。

发明内容
因此,本发明的一个目标是提供一个能够最小化运行期时间开销的EDF调度方法。
本发明的另一个目标是提供一个EDF调度方法,该方法能够通过随时间过去不改变分配给一个任务的优先级,并因此排除由优先级重新分配而产生的运行时间开销,从而最小化运行期系统开销。
要完成这些和其它优点并按照本发明的目的,如在此所包含的和概括地描述的,这里所提供的一个EDF调度方法包括这些步骤检测所要调度的任务数;为所述任务分配优先级;将当前时间更新为最低优先级;以及在一个时间轴上从所述更新的最低优先级开始以一最短时限第一(shortest-deadline-first)顺序处理所述任务。
在本发明中,确定所要调度的任务数小于优先级等级数2K。如果任务的数量小于该优先级的数量,则每个任务的优先级被确定为一个通过一个由一个对应的任务的一个时限di除以一个最大时限Tmax所获得的值除以一个特定时间单元q所获得的值。最大时限是任务中一个具有最长周期的任务的相关时限,特定时间单元是一个通过最大时限除以优先级等级数所获得的值。
当前时间是由一个当前时间指示器指示的,当前时间指示器是一个通过一个由一个系统的当前时间除以最大时限所获得的值除以特定时间单元所获得的值。
在按照本发明的另一方面的EDF调度方法中,如果所述任务数大于一个优先级等级数,则将任务分组成几个任务组,并为每个任务组设置一个当前时间指示器。
一个具有在一个2m-1Tmin-2mTmin范围内的时限的任务的优先权(Pi)是由下面公式(m-1)x+[dimod2mTminq(m)]]]>所获得的,其中q(m)表示与第m个时间指示器相关的一个时间单元,x表示一个与每个当前时间指示器相关的优先级等级数,以及di表示一个对应任务的时限。这里,当前时间指示器的数量是[2kx].]]>第m个时间指示器的值C(m)是按下面公式[(current_time)mod2mTminq(m)]]]>更新的。
本发明的EDF调度方法包括一个在一个足够的优先级等级或一个有限的优先级等级情况下的优先级分配方法和一个在应用本EDF调度方法时调度能力的测试方法。
本发明的前述和其它目标、特点、方面和优点通过下面详细的本发明说明结合附图会变得更为显然。


所包括的附图是为了提供对本发明的进一步理解,并被合并到本说明书中组成其一部分,示出本发明的实施例并与说明一起用来解释本发明的原则。
在附图中图1是用于说明按照现有技术的速率单调(rate monotonic)(RM)调度方法的典型视图;图2是用于说明按照现有技术的EDF度方法的典型视图;图3是概念性视图,示出应用于本发明的EDF调度方法的一个位图(bitmap)结构;图4A是一个用于说明按照本发明的EDF调度方法各个任务在时间‘0’的优先级的典型视图;图4B是一个用于说明按照本发明的EDF调度方法每个任务在时间‘11’的优先级的典型视图;以及图4C是一个用于说明按照本发明的EDF调度方法每个任务在时间‘12’的优先级的典型视图。
具体实施例方式
现在详细地对本发明的详细实施例作出说明,在附图中示出其中的例子。
在本发明中,将时间轴划分成时间片(quantum)单元,然后计算每个任务的优先级和指示其当前时间的时间指示器从而将它们映射到一个位图(bitmap)中,而且时间指示器是定时更新的,因此用时间指示器的相对优先级来调度任务,而不需要任务的优先级重新分配过程。
通过所要调度的任务时限中的最长时限除以优先级等级数2K计算时间片(q),并表示为下面的公式1。
q=Tmax2k]]>.............<公式1>
在这里,Tmax表示最大时限,以及k表示分配给优先级等级的位数(number ofbits)。
通过下面公式2计算每个任务(Pi)的优先级等级。
]]>.............<公式2>
这里di表示一个对应任务的时限。
此外,每当系统的当前时间更新时,按下面公式3更新时间指示器C。
]]>.............<公式3>
这里,current_time表示一个系统的当前时间。
图3是一个概念性视图,表示应用于本发明的EDF调度方法的位图结构。一旦用公式1和2求出所调度任务的优先级,置位位图中一个对应的优先级位,并按公式3定期地更新时间指示器。
在下文中,将参照图4A到4C说明用本发明的调度方法调度三项任务(T1,T2和T3)的情况。
图4A至4C是用以说明随时间过去确定每项任务的优先级的典型视图。
如在图4A中所示,周期为2的T1、周期为5的T2和周期为15的T3在时间‘0’到达一个调度程序,调度程序用公式1和公式2确定任务的优先级。在时间‘0’,所述三项任务的最大时限Tmax是13,即等于T3的周期,存在13个优先级等级;按公式2,T1,T2和T3的时限d1,d2和d3分别是2,5和0;按公式3,时间指示器指示‘0’。时间指示器指示的时间,其优先级等级最低,并且优先级等级沿顺时针方向变低。
在时间‘11’,如在图4B中所示,时间指示器指示时间11,且T1,T2和T3的相对时限根据公式2分别变成1、4和2。据此,在时间‘11’,按T1,T3和T2的顺序处理任务。
在时间‘12’,如在图4C中所示,时间指示器指示时间12,而T1,T2和T3的相对时限根据公式2分别变成2、3和1。据此,在时间‘12’,按T3,T1和T2的顺序处理任务。
如前所述,按照本发明的EDF调度方法是基于EDF调度中的优先级设置方法的。与常规EDF调度方法通过生成任务在当前时间的相对时限而重新分配优先级不同,在本发明中,将指示最低优先级等级的时间指示器设置在当前时间,并沿顺时针方向查找对应的任务,这样先找到的任务先处理,从而通过优先级重新分配而最小化运行时间开销。
在现实环境中,由于优先级等级数是有限的,任务数可能会比可分配的优先级数多。在这种情况下,通过使用多个时间指示器可能得到有效的EDF调度。
在下文中将说明本发明的另一个实施例。在本发明的第二个实施例中,当假设被调度任务时限中的最短时限是Tmin而最长时限是Tmax时,根据下面公式4得到与第m个时间指示器相关的时间片q(m)。
q(m)=2kTminx]]>.............<公式4>
这里,x表示与每个时间指示器相关的优先级等级,并由下面公式5获得。
x=[2klog2TmaxTmin]]]>............<公式5>
这里,k表示一个优先级等级位数。
一时限值在范围2m-1Tmin-2mTmin内任务的优先级(Pi)由下面公式6获得。
(m-1)x+[dimod2mTminq(m)]]]>............<公式6>
这里,时间表示器保持为 且在当前时间更新时,第m个时间指示器C(m)按下面公式7更新。
C(m)=[(current_time)mod2mTminq(m)]]]>............<公式7>
在本发明中,产生对于优先级等级足够的情况和优先级等级不够的情况的系统使用率,从而测试每种情况的调度能力。这里,系统使用率表示一个由任务或消息的处理时间除以它们的时限所得到的值的总和。
因此,在优先级位数为k的情况下,如果系统使用率为1-12k×TmaxTmin]]>或小于它,则调度是可能进行的。同样地,在k不够的情况下,如果系统使用率是1-2[2k[log2TmaxTmin]]]]>或小于它,则调度是可能进行的。
如前所述,按照本发明的EDF调度方法,将指示最低优先级等级的时间指示器设置在当前时间,且沿顺时针方向搜索对应的任务,这样先找到的任务先处理,从而能够以固定时间复杂性进行调度而不用改变分配给每项任务的优先级。
同样,在优先级等级不够的情况下,设置多个时间指示器从而扩大了时限范围,因此最大化系统使用率。
此外,按照本发明的EDF调度方法,不改变所分配的优先级,因而最小化由重新分配优先级所产生的运行时间开销。
由于可在不脱离本发明的精神或基本特征范围内以不同形式包含本发明,因此也应该理解上述实施例不受限于前面描述的任何细节,除非另外说明,而是应该在如在所附权利要求书中所规定的精神和范围内进行概括地解释,从而落在权利要求书的界限内或这类界限的等价范围内的所有变化和修正因此要被包括在所附的权利要求书中。
权利要求
1.一EDF调度方法包括下列步骤检测所要调度的任务数;为所述任务分配优先级;将当前时间更新为最低优先级;以及在一个时间轴上从所述更新的最低优先级开始以最短时限第一顺序处理所述任务。
2.如权利要求1所述的方法,其特征在于,确定所述要调度的任务数小于一个优先级等级数。
3.如权利要求2所述的方法,其特征在于,所述优先级等级数是2k。
4.如权利要求2或3的方法所述,其特征在于,如果所述任务数小于所述优先级等级数,则每个任务的优先级被确定为一个通过一个由一个对应的任务的一个时限di除以一个最大时限Tmax所获得的值除以一个特定时间单元q所获得的值。
5.如权利要求4所述的方法,其特征在于,所述最大时限是所述任务中一个具有最长周期的任务的相关时限。
6.如权利要求4所述的方法,其特征在于,所述特定时间单元是一个通过所述最大时限除以优先级等级数所获得的值。
7.如权利要求4所述的方法,其特征在于,所述当前时间是由一个当前时间指示器所指示的。
8.如权利要求7所述的方法,其特征在于,所述当前时间指示器是通过由系统当前时间除以所述最大时限所获得的值除以所述特定时间单元所获得的值。
9.如权利要求2或3所述的方法,其特征在于,如果所述任务数小于所述优先级等级数,则按照下面的公式 计算每个任务(Pi)的优先级,在所述公式中di表示一个对应任务的时限,Tmax表示一个最大时限,以及q表示一个特定时间单元。
10.如权利要求9所述的方法,其特征在于,Tmax是任务中一个具有最长周期的任务的相关时限。
11.如权利要求10所述的方法,其特征在于,通过一个公式q=Tmax2k]]>计算所述特定时间单元。
12.如权利要求11所述的方法,其特征在于,按公式 更新当前时间,其中current_time是一个系统的当前时间。
13.如权利要求2或3所述的方法,其特征在于,如果所述任务数大于一个优先级等级数,则将任务分组成几个任务组。
14.如权利要求13所述的方法,其特征在于,为每个任务组设置一个当前时间指示器。
15.如权利要求14所述的方法,其特征在于,具有2m-1Tmin-2mTmin范围内的时限的任务的优先权(Pi)是由下面公式 所获得的,其中q(m)表示与第m个时间指示器相关的一个时间单元,x表示一个与每个当前时间指示器相关的优先级等级数,以及di表示一个对应任务的时限。
16.如权利要求15所述的方法,其特征在于,所述当前时间指示器的数量是[2kx].]]>
17.如权利要求16所述的方法,其特征在于,第m个时间指示器的值C(m)是按下面公式 更新的。
全文摘要
一个EDF调度方法包括以下步骤检测所要调度的任务数;为所述任务分配优先级;将当前时间更新为最低优先级;以及在一个时间轴上从所述更新的最低优先级开始以最短时限第一顺序处理所述任务。将指示最低优先级的时间指示器设置在当前时间,并沿顺时针方向搜索对应的任务,这样先找到的任务先处理,从而最小化在优先权重新分配时的运行时间开销。
文档编号G06F9/46GK1577253SQ03160148
公开日2005年2月9日 申请日期2003年9月26日 优先权日2003年7月23日
发明者朴文周 申请人:Lg电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1