一种基于调度粒度的任务优先级计算方法

文档序号:9350178阅读:358来源:国知局
一种基于调度粒度的任务优先级计算方法
【技术领域】
[0001] 本发明涉及一种基于调度粒度的任务优先级计算方法,能够降低调度频率,减少 调度消耗时间。
【背景技术】
[0002] 近些年来,多核处理器快速发展的同时,也给任务调度带来了新的挑战,如何利用 高效的任务调度策略使多核处理器系统充分发挥其性能,已经是我们必须要解决的问题。 动态任务调度可以根据运行时情况动态地将任务分配到各个内核上,由于需要实时地收 集、存储并分析状态信息,动态调度的实施有一定的系统开销,但这种开销和付出通常是有 回报的。
[0003]比较经典的调度算法有Min-Min、Max-Min、MCT(MinimumCompletionTime)、 MET(MinimumExecutionTime)等算法。Min-Min算法实现简单,执行时间较快。算法的 思想是比较所有待调度的任务,优先选取最早完成时间最小的一个任务进行调度。缺点是 如果任务集中存在过多执行时间比较小的任务,那么时间比较大的任务将无法得到及时执 行。Max-Min算法类似于Min-Min算法,不同的是Max-Min算法首先调度最早完成时间最 大的任务。缺点是完成时间较小的任务等待时间过长,影响执行效率,也可能造成负载不均 衡。
[0004] 将任务分配到最合适的处理器内核上是任务调度的核心问题,而任务优先级计算 是任务分配的关键,任务优先级表明任务被优先调度的程度,因此本发明方法在计算任务 优先级时引入调度粒度,用来决定调度过程分配的任务数量,进而决定调度频度。

【发明内容】

[0005] 本发明的目的在于提供一种能够降低调度频率,减少调度消耗时间的基于调度粒 度的任务优先级计算方法。
[0006] 本发明的内容是这样实现的:
[0007] (1)确定任务优先级
[0008] 计算任务相对于一个确定内核的优先级Tipk,取所有内核上的最大值作为任务优 先级Tip:
[0010] m为内核数量,Tipk表示任务Ti相对于内核Pk的优先级;
[0011] (2)设定调度粒度
[0012] 在计算任务1\相对于一个处理器内核P的任务优先级时,设定调度粒度,其中处 理器内核P的调度粒度定义为一次调度过程中为处理器内核P分配的任务数量,一次调度 过程是指一个处理器内核请求调度;调度算法为其分配任务的过程中,调度的任务数量等 于为每个处理器内核分配的任务数量之和,调度粒度为:
[0013] Ik=l*spkm-1
[0014] 其中Ip表示处理器内核P的调度粒度,1表示粒度因子,spp表示处理器内核P的 处理速度;
[0015] (3)任务优先级计算细化
[0016] 计算一个任务在所有处理器内核上的任务优先级Tip及任务等待时间和任务间通 信开销因素:
[0018] 其中PW1代表任务Ti的等待时间,PC1P代表平均通信开销,Ip代表内核P的调度粒 度,Cip表示任务Ti的通信开销;t表示当前时间,Tlt表示任务就绪时间。
[0019] 本发明的有益效果在于:在任务调度优先级计算时分析了调度粒度对任务调度的 影响,并结合任务等待时间和任务间通信开销等因素,确定任务优先级,从而能够有效的降 低调度频率,减少任务调度过程中的消耗。
【附图说明】
[0020] 图1是本发明方法的任务优先级计算流程图。
【具体实施方式】
[0021] 图1示出了本发明方法的计算过程,下面结合图1对本发明做进一步描述:
[0022] 本发明提出一种基于调度粒度的任务优先级计算方法。本发明方法首先计算一个 任务在所有处理器内核上的任务优先级,然后取其在所有处理器内核上任务优先级的最大 值作为该任务的优先级,在任务调度时优先调度任务优先级大的任务。在计算任务相对于 一个确定处理器内核的任务优先级时,综合考虑任务等待时间、任务间通信开销和调度粒 度因素,其中任务等待时间因素可避免存在就绪任务长时间不被调度的现象;同时计算任 务间的平均通信开销,可以将通信开销大的任务分配到相应的处理器内核上,以节省更多 的任务间通信开销;同样调度粒度通过粒度因子和处理器内核的处理速度来调节大小,对 于一个实际的处理器系统,处理器内核速度是确定的已知量,其中粒度大小要根据系统模 型而定,它起到将处理器内核的计算速度转换为处理器内核的调度任务数量的作用,结合 三种因素计算任务优先级可充分发挥任务调度优势,提高处理器效率,从而降低调度频率, 减少调度消耗时间。
[0023] (1)确定任务优先级
[0024] 将任务分配到最合适的处理器内核上是任务调度的核心问题,而任务优先级计算 是任务分配的关键,任务优先级表明任务被优先调度的程度。本发明方法提供了一种高效 的任务优先级计算方法,首先计算一个任务T1在所有内核上的任务优先级T1P,然后取其在 所有内核上任务优先级的最大值作为该任务的优先级Tipniax,表示为公式(1):
[0026] 公式(1)中T1为任务编号,m为内核数量,Tip表示任务!\相对于内核P的优先级。
[0027] (2)设定调度粒度
[0028] 在计算任务1\相对于一个处理器内核P的任务优先级时,通过设定调度粒度,达 到降低调度频率,减少调度消耗时间的目的。其中处理器内核P的调度粒度定义为一次调 度过程中为处理器内核P分配的任务数量,这里的一次调度过程是指一个处理器内核请求 调度,调度算法为其分配任务的过程,在实际运行中,可能出现调度算法一次性处理多个处 理器内核调度请求,调度的任务数量等于为每个处理器内核分配的任务数量之和。调度粒 度表示为公式(2):
[0029] Ip= 1 ?spp (0 ^p^m-1) (2)
[0030] 其中Ip表示处理器内核P的调度粒度,1表示粒度因子,spp表示处理器内核P的 处理速度。调度粒度大小要根据系统模型而定,调度粒度过大,不能充分发挥动态调度优 势,而调度粒度过小,会引发频繁调度,增大调度程序运行时间开销,降低处理器效率。对于 异构多核处理器,调度粒度与处理器内核处理速度是正比关系。对于一个实际的处理器系 统,处理器内核速度是确定的已知量,调度粒度Ip的大小,可以通过粒度因子1调节,粒度 因子与具体的运行状况有关,它起到将处理器内核的计算速度转换为处理器内核调度任务 数量的功能。
[0031] (3)任务优先级计算细化
[0032] 在计算一个任务在所有处理器内核上的任务优先级Tip时,综合考虑了任务等待 时间和任务间通信开销因素,其计算公式(3)、(4)、(5)如下:
[0034] 其中PW1代表任务Ti的等待时间,PC1P代表平均通信开销,Ip代表内核P的调度粒 度,Cip表示任务T1的通信开销。t表示当前时间,Tlt表示任务就绪时间,即任务满足调度 条件变为就绪状态的时间。PW1值越大说明任务的等待时间越长,任务优先级越高,同等条 件下,调度程序优先调度等待时间长的任务,避免存在就绪任务长时间等待的"饥饿"现象。
[0035] (1)确定任务优先级
[0036] 将任务分配到最合适的处理器内核上是任务调度的核心问题,而任务优先级计算 是任务分配的关键,任务优先级表明任务被优先调度的程度。本发明方法提供了一种高效 的任务优先级计算方法,首先计算一个任务T1在所有内核上的任务优先级T1P,然后取其在 所有内核上任务优先级的最大值作为该任务的优先级Tipniax,表示为公式(1):
[0038] 公式(1)中T1为任务编号,m为内核数量,Tip表示任务!\相对于内核P的优先级。
[0039] (2)设定调度粒度
[0040] 在计算任务1\相对于一个处理器内核P的任务优先级时,通过设定调度粒度,达 到降低调度频率,减少调度消耗时间的目的。其中处理器内核P的调度粒度定义为一次调 度过程中为处理器内核P分配的任务数量,这里的一次调度过程是指一个处理器内核请求 调度,调度算法为其分配任务的过程,在实际运行中,可能出现调度算法一次性处理多个处 理器内核调度请求,调度的任务数量等于为每个处理器内核分配的任务数量之和。调度粒 度表示为公式(2):
[0041] Ip= 1 ?spp (0 ^p^m-1) (2)
[0042] 其中Ip表示处理器内核P的调度粒度,1表示粒度因子,spp表示处理器内核P的 处理速度。调度粒度大小要根据系统模型而定,调度粒度过大,不能充分发挥动态调度优 势,而调度粒度过小,会引发频繁调度,增大调度程序运行时间开销,降低处理器效率。对于 异构多核处理器,调度粒度与处理器内核处理速度是正比关系。对于一个实际的处理器系 统,处理器内核速度是确定的已知量,调度粒度Ip的大小,可以通过粒度因子1调节,粒度 因子与具体的运行状况有关,它起到将处理器内核的计算速度转换为处理器内核调度任务 数量的功能。
[0043] (3)任务优先级计算细化
[0044] 在计算一个任务在所有处理器内核上的任务优先级Tip时,综合考虑了任务等待 时间和任务间通信开销因素,其计算公式(3)、(4)、(5)如下:
[0046] 其中PW1代表任务Ti的等待时间,PC1P代表平均通信开销,Ip代表内核P的调度粒 度,Cip表示任务T1的通信开销。t表示当前时间,Tlt表示任务就绪时间,即任务满足调度 条件变为就绪状态的时间。PW1值越大说明任务的等待时间越长,任务优先级越高,同等条 件下,调度程序优先调度等待时间长的任务,避免存在就绪任务长时间等待的"饥饿"现象。
[0047] 以上是本发明的较佳实施例,凡依本发明技术方案作为改变的,所产生的功能作 用未超出本发明方案范围的,均属于本发明的保护范围。
【主权项】
1. 一种基于调度粒度的任务优先级计算方法,其特征是 (1) 确定任务优先级 计算任务相对于一个确定内核的优先级Tipk,取所有内核上的最大值作为任务优先级 Tip:m为内核数量,Tipk表示任务T i相对于内核P k的优先级; (2) 设定调度粒度 在计算任务1\相对于一个处理器内核P的任务优先级时,设定调度粒度,其中处理器 内核P的调度粒度定义为一次调度过程中为处理器内核P分配的任务数量,一次调度过程 是指一个处理器内核请求调度;调度算法为其分配任务的过程中,调度的任务数量等于为 每个处理器内核分配的任务数量之和,调度粒度为: Ik= l?spk m-1 其中Ip表示处理器内核P的调度粒度,1表示粒度因子,SP p表示处理器内核P的处理 速度; (3) 任务优先级计算细化 计算一个任务在所有处理器内核上的任务优先级Tip及任务等待时间和任务间通信开 销因素:其中PW1代表任务T i的等待时间,PC 1P代表平均通信开销,I p代表内核P的调度粒度, Cip表示任务T i的通信开销;t表示当前时间,T lt表示任务就绪时间。
【专利摘要】本发明涉及一种基于调度粒度的任务优先级计算方法,能够降低调度频率,减少调度消耗时间。本发明包括:(1)确定任务优先级;(2)设定调度粒度;(3)任务优先级计算细化。本发明在任务调度优先级计算时分析了调度粒度对任务调度的影响,并结合任务等待时间和任务间通信开销等因素,确定任务优先级,从而能够有效的降低调度频率,减少任务调度过程中的消耗。
【IPC分类】G06F17/50
【公开号】CN105069250
【申请号】CN201510523103
【发明人】李静梅, 田乔, 周智
【申请人】哈尔滨工程大学
【公开日】2015年11月18日
【申请日】2015年8月24日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1