一种改进的实时任务调度算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
' 其中 c ji =
Directed acyclic graph
r2 , …, r m } 表示异构资源 R = { r1 , 在异构资源中, w i, 集合, 假设任意 2 个资源之间的通信速率相同, j 为 W =[ w i, 任务 t i 在资源 r j 上的处理开销, j] n ×m 为任务 在资源上的处理开销矩阵, 处理开销如表 1 所示。 1. 2 优先级的权值计算和 DAG 的定义 1 ) 考虑任务优先到达资源的优先执行 , 将任务 t i 到入口任务 t entry 的路径长度 L sp( t i ) 作为第一个优先 级判断属性, ' L sp( t i ) = min max { L sp( t j ) + w j, k + c ji } 。 ( 1 )
[3 ]
提出一种
通过改进 HEFT 算法上行权重的计算方法来确定优
提出了一种通过计算任务到它的所有后继任务
的权值和 来 决 定 任 务 的 优 先 级 的 高 效 启 发 式 算 法
1
双优先级调度算法
0307 收稿日期: 20142C ) ; 桂林市科学研究与技术开发计划( 20120104基金项目: 国家自然科学基金( 61363031 ) ; 广西科学研究与技术开发计划( 桂科攻 211801713 ) ; 广西研究生教育创新计划( YCSZ2012068 ) mail: xlzhang@ guet. edu. cn 通信作者: 张向利( 1968- ) , 女, 陕西渭南人, 教授, 研究方向为物联网技术、 网络化监控系统、 计算机应用。E2014 , 34 ( 6 ) : 460463. 引文格式: 张黎明, 张向利. 一种改进的实时任务调度算法[J]. 桂林电子科技大学学报,
An improved realtime task scheduling algorithm
Zhang Liming,Zhang Xiangli ( School of Information and Communication Engineering,Guilin University of Electronic Technology,Guilin 541004 ,China) Abstract: Aiming at the singleness of priority selection,the important task is delayed for random scheduling when tasks ’priorities are same,a double priority scheduling algorithm ( DPSA) is designed. The scheduling order of task is based on length of the task’ s path to the entrance task of resource and the upward weights in IHEFT. The proposed algorithm is compared with HEFT algorithm through the generated random DAG. The experimental result shows that DPSA can reduce the scheduling length. Key words: HEFT; DAG; double priority; task scheduling; list scheduling algorithm
t j∈ S ( t i) m
( 2)
其中, 平均处理开销 w i =
w i, ∑ j /m 。 j=1
改进的 HEFT 算法 IHEFT 的上行权重:
' L up( t i ) = min max { L up( t j ) + w i, k + c i, j } 。 ( 3) r k ∈ R t j∈ S ( t i)
其中: 入口任务 t entry 的 L sp( t entry ) = 0 ; c 'ji =
{
0 , r k = R succ( t i ) , c ji , 其他。
2 ) HEFT 算法的上行权重: L up( t i ) = w i + max { L up( t j ) + c i, j} ,
第6 期
张黎明等: 一种改进的实时任务调度算法 表1 Tab. 1
任务编号 1 2 3 4 5 6 7 8 9 10
461
处理开销 Execution costs
r1 14 13 11 13 12 13 7 5 18 21 r2 16 19 13 8 13 16 15 11 12 7
1. 1
任务模型 E ) 表示, 一般 DAG 用 G ( T, 如图 1 所示。 其中:
[1 ]
HDEFT。祝家钰 等[2] 引 入 系 统 异 构 参 数 计 算 DAG 中任务节点及边的权值, 提出一种云计算环境下基于 路径优先级的任务调度算法。 王小乐等 先级的 IHEFT 算法。 由于大多数表调度算法只选取任务的单个属性 且在优先级相等时随机选取任务进行调 作为优先级, 不 利 于 重 要 任 务 的 优 先 调 度。 鉴 于 此, 结合 度, IHEFT 算法和任务区间插入技术, 提出一种双优先级 调度 算 法 ( double priority scheduling algorithm, 简称 DPSA) 。
一种双优先级任务调度算法( DPSA) 。DPSA 根据任务到入口任务的路径长度和 IHEFT 算法上行权重作为任务优先级安 DPSA 能获得更短的调 与 HEFT 算法进行对比实验, 实验结果表明, 排任务调度顺序。采用随机生成的有向无环图( DAG) , 度长度。 关键词: HEFT; DAG; 双优先级; 任务调度, 表调度算法 中图分类号: TP316 文献标志码: A 808X( 2014 ) 06046004 文章编号: 1673-
462
桂林电子科技大学学报 表2 Tab. 2
任务
源自文库
2014 年 12 月 DPSA 和 HEFT 算法的调度结果
T ava( r j ) , 其中 T ava( r j ) 为资源 r j 上的可用起始时间。 7 ) 任务的调度长度为 max{ T ef( t exit ) } 。 8 ) 通信计算比率 ( CCR ) 是 DAG 中任务通信量 与资源上处理开销的比值, 若 CCR 比较小, 则应用为 资源处理密集型应用; 反之, 应用为任务通信密集型 应用。 1. 3 任务优先级调度队列的构建 在构建 任 务 的 优 先 级 调 度 队 列 时, 首先计算 L sp( t i ) 和 L up( t i ) ,根 据 L sp( t i ) 进 行 升 序 排 序, L sp( t i ) 相同时按 L up( t i ) 进行降序排序, 根据 2 次排 序结果得到任务的最终调度队列 。算法步骤为: 1 ) 根据式 ( 1 ) 计算每个任务的 L sp( t i ) , 并按升 得到调度队列; 序排序, 2 ) 根据式( 3 ) 计算每个任务的 L up( t i ) ; 3 ) 若存在相同 L sp( t i ) 的任务, 则对相同 L sp( t i ) 的任务, 根据式( 2 ) 计算 L up( t i ) , 并按 L up( t i ) 降序排 序, 更新调度队列; 4 ) 循环执行 3 ) , 直至不存在相同 L sp( t i ) 的 任 务, 则任务优先级调度队列构建完成 。 1. 4 任务的资源选择 根据构建的任务的优先级调度队列 , 对任务的处 ( 5 ) 计算任务的开始 理资源进行选择。 根据式 ( 4 ) 、 时间和完成时间, 选择使任务的完成时间最少的资 源。一般情况下, 一个任务的开始时间都是从该资源 上最后一个任务完成后才开始执行的 , 这样可能造成 在该资源上处理的 2 个任务有足够的空闲时间来完 成任务, 将任务插入该资源上的空闲时间上执行, 减 少任务完成时间, 从而减小调度长度。 使用 DPSA 对 图 1 和表 1 中的数据进行的调度结果与 HEFT 算法 得到的调度结果如表 2 所示。 1. 5 时间复杂度分析 DPSA 基于表调度算法的时间复杂度都比较低, 的时间复杂度分为 2 个部分: 构造任务的优先级调度 它们的时间复杂度分别为 队列和任务的资源选择, 2 2 O( n ) 和 O( m × n ) , 其中: n 为任务数; m 为资源
其中: 出口任务 t exit 的 L up( t exit ) = min w exit, j ; c 'i, j =
{
r j∈ R
0 , r k = R pred( t j ) ; c i. j , 其他。
采用 L up( t i ) 作为第 2 考虑 L sp( t i ) 可能相同的情况, 个优先级判断属性。
r k ∈ R t j∈ P ( t i)
{
t j∈ P ( t i)
( 4)
c ji , m ≠ k; 0 , m = k。 T ef( t i , r j ) = T es( t i , r j ) + w i, j, ( 5)
5 ) 任务的完成时间 r) = 0 。 其中 T es( t entry , r j ) = T es( t i , rj ) - 6 ) 资源上的空闲 时 间 T slot( t i ,
任务按照一定的规则和约束条件合理分配到相 应的资源中, 而执行任务的顺序由任务调度算法控 制。任务调度算法减少了任务之间的通信开销及任 务调度长度, 使任务的处理时间和完成时间最短, 以 保证系统的性能。 任务调度模型一般使用有向无环图 ( directed acyclic graph, 简称 DAG) 表示。 任务调度问题是一个 NP 完全问题, 通常采用启发式调度方法解决。 启发 式调度主要包括基于分簇的调度算法 、 基于复制策略 的调度算法和基于表的调度算法。 表调度算法以其 简单的思想和较高的调度效率被广泛研究 。 蒋韵联 等
s
r3 9 18 19 17 10 9 11 14 20 16
T 为任务的集合, n 为任务数; t2 , …, t n ) 表示, 用 T ( t1 , E 为带权值的有向边集合, tj 〉 , e ij ∈ 用 E { e ij e ij = 〈t i , T × T} 表示, e ij ∈ E 为任务 t i 与 t j 之间的依赖关系, 且 t j 必须在 t i 执行完成后才能开始执行, 这时称 t i 是 t j t j 是 t i 的后继任务。其中, 的一个前驱任务, 入口任务 没有前驱任务, 出口任务没有后继任务。若有多个入 口任务, 则构建一个虚拟入口任务, 它到各个入口任 务之间的通信开销为零; 若有多个出口任务, 则构建 一个虚拟出口任务, 它到各个出口任务之间的通信开 销为零。
第 34 卷 第 6 期 2014 年 12 月
桂林电子科技大学学报
Journal of Guilin University of Electronic Technology
Vol. 34 , No. 6 Dec. 2014
一种改进的实时任务调度算法
张黎明, 张向利
( 桂林电子科技大学 信息与通信学院, 广西 桂林 541004 ) 摘 要: 针对现有的表调度算法优先级选取单一 、 优先级相同时任务随机调度导致某些重要任务延迟处理的问题, 提出了
图1 Fig. 1 DAG
3 ) 在计算 L up( t i ) 权重时, 权重最小的资源是任 且 r ∈ R , 有 务的预分配资源, 用 R pred( t i ) 表示, R pred( t i ) ) ≤ L up( t i , r) 。 在 计 算 L sp( t i ) 权 重 L up( t i , 用 时, 权 重 最 大 的 资 源 是 任 务 t i 的 预 分 配 资 源, R succ( t i ) ) ≥ R succ( t i ) 表 示, 且 r ∈ R 有 L sp( t i , L sp( t i , r) 。 4 ) 任务的开始时间 r k ) = max { T ef( t j , r m ) + c 'ji } , T es( t i ,
Directed acyclic graph
r2 , …, r m } 表示异构资源 R = { r1 , 在异构资源中, w i, 集合, 假设任意 2 个资源之间的通信速率相同, j 为 W =[ w i, 任务 t i 在资源 r j 上的处理开销, j] n ×m 为任务 在资源上的处理开销矩阵, 处理开销如表 1 所示。 1. 2 优先级的权值计算和 DAG 的定义 1 ) 考虑任务优先到达资源的优先执行 , 将任务 t i 到入口任务 t entry 的路径长度 L sp( t i ) 作为第一个优先 级判断属性, ' L sp( t i ) = min max { L sp( t j ) + w j, k + c ji } 。 ( 1 )
[3 ]
提出一种
通过改进 HEFT 算法上行权重的计算方法来确定优
提出了一种通过计算任务到它的所有后继任务
的权值和 来 决 定 任 务 的 优 先 级 的 高 效 启 发 式 算 法
1
双优先级调度算法
0307 收稿日期: 20142C ) ; 桂林市科学研究与技术开发计划( 20120104基金项目: 国家自然科学基金( 61363031 ) ; 广西科学研究与技术开发计划( 桂科攻 211801713 ) ; 广西研究生教育创新计划( YCSZ2012068 ) mail: xlzhang@ guet. edu. cn 通信作者: 张向利( 1968- ) , 女, 陕西渭南人, 教授, 研究方向为物联网技术、 网络化监控系统、 计算机应用。E2014 , 34 ( 6 ) : 460463. 引文格式: 张黎明, 张向利. 一种改进的实时任务调度算法[J]. 桂林电子科技大学学报,
An improved realtime task scheduling algorithm
Zhang Liming,Zhang Xiangli ( School of Information and Communication Engineering,Guilin University of Electronic Technology,Guilin 541004 ,China) Abstract: Aiming at the singleness of priority selection,the important task is delayed for random scheduling when tasks ’priorities are same,a double priority scheduling algorithm ( DPSA) is designed. The scheduling order of task is based on length of the task’ s path to the entrance task of resource and the upward weights in IHEFT. The proposed algorithm is compared with HEFT algorithm through the generated random DAG. The experimental result shows that DPSA can reduce the scheduling length. Key words: HEFT; DAG; double priority; task scheduling; list scheduling algorithm
t j∈ S ( t i) m
( 2)
其中, 平均处理开销 w i =
w i, ∑ j /m 。 j=1
改进的 HEFT 算法 IHEFT 的上行权重:
' L up( t i ) = min max { L up( t j ) + w i, k + c i, j } 。 ( 3) r k ∈ R t j∈ S ( t i)
其中: 入口任务 t entry 的 L sp( t entry ) = 0 ; c 'ji =
{
0 , r k = R succ( t i ) , c ji , 其他。
2 ) HEFT 算法的上行权重: L up( t i ) = w i + max { L up( t j ) + c i, j} ,
第6 期
张黎明等: 一种改进的实时任务调度算法 表1 Tab. 1
任务编号 1 2 3 4 5 6 7 8 9 10
461
处理开销 Execution costs
r1 14 13 11 13 12 13 7 5 18 21 r2 16 19 13 8 13 16 15 11 12 7
1. 1
任务模型 E ) 表示, 一般 DAG 用 G ( T, 如图 1 所示。 其中:
[1 ]
HDEFT。祝家钰 等[2] 引 入 系 统 异 构 参 数 计 算 DAG 中任务节点及边的权值, 提出一种云计算环境下基于 路径优先级的任务调度算法。 王小乐等 先级的 IHEFT 算法。 由于大多数表调度算法只选取任务的单个属性 且在优先级相等时随机选取任务进行调 作为优先级, 不 利 于 重 要 任 务 的 优 先 调 度。 鉴 于 此, 结合 度, IHEFT 算法和任务区间插入技术, 提出一种双优先级 调度 算 法 ( double priority scheduling algorithm, 简称 DPSA) 。
一种双优先级任务调度算法( DPSA) 。DPSA 根据任务到入口任务的路径长度和 IHEFT 算法上行权重作为任务优先级安 DPSA 能获得更短的调 与 HEFT 算法进行对比实验, 实验结果表明, 排任务调度顺序。采用随机生成的有向无环图( DAG) , 度长度。 关键词: HEFT; DAG; 双优先级; 任务调度, 表调度算法 中图分类号: TP316 文献标志码: A 808X( 2014 ) 06046004 文章编号: 1673-
462
桂林电子科技大学学报 表2 Tab. 2
任务
源自文库
2014 年 12 月 DPSA 和 HEFT 算法的调度结果
T ava( r j ) , 其中 T ava( r j ) 为资源 r j 上的可用起始时间。 7 ) 任务的调度长度为 max{ T ef( t exit ) } 。 8 ) 通信计算比率 ( CCR ) 是 DAG 中任务通信量 与资源上处理开销的比值, 若 CCR 比较小, 则应用为 资源处理密集型应用; 反之, 应用为任务通信密集型 应用。 1. 3 任务优先级调度队列的构建 在构建 任 务 的 优 先 级 调 度 队 列 时, 首先计算 L sp( t i ) 和 L up( t i ) ,根 据 L sp( t i ) 进 行 升 序 排 序, L sp( t i ) 相同时按 L up( t i ) 进行降序排序, 根据 2 次排 序结果得到任务的最终调度队列 。算法步骤为: 1 ) 根据式 ( 1 ) 计算每个任务的 L sp( t i ) , 并按升 得到调度队列; 序排序, 2 ) 根据式( 3 ) 计算每个任务的 L up( t i ) ; 3 ) 若存在相同 L sp( t i ) 的任务, 则对相同 L sp( t i ) 的任务, 根据式( 2 ) 计算 L up( t i ) , 并按 L up( t i ) 降序排 序, 更新调度队列; 4 ) 循环执行 3 ) , 直至不存在相同 L sp( t i ) 的 任 务, 则任务优先级调度队列构建完成 。 1. 4 任务的资源选择 根据构建的任务的优先级调度队列 , 对任务的处 ( 5 ) 计算任务的开始 理资源进行选择。 根据式 ( 4 ) 、 时间和完成时间, 选择使任务的完成时间最少的资 源。一般情况下, 一个任务的开始时间都是从该资源 上最后一个任务完成后才开始执行的 , 这样可能造成 在该资源上处理的 2 个任务有足够的空闲时间来完 成任务, 将任务插入该资源上的空闲时间上执行, 减 少任务完成时间, 从而减小调度长度。 使用 DPSA 对 图 1 和表 1 中的数据进行的调度结果与 HEFT 算法 得到的调度结果如表 2 所示。 1. 5 时间复杂度分析 DPSA 基于表调度算法的时间复杂度都比较低, 的时间复杂度分为 2 个部分: 构造任务的优先级调度 它们的时间复杂度分别为 队列和任务的资源选择, 2 2 O( n ) 和 O( m × n ) , 其中: n 为任务数; m 为资源
其中: 出口任务 t exit 的 L up( t exit ) = min w exit, j ; c 'i, j =
{
r j∈ R
0 , r k = R pred( t j ) ; c i. j , 其他。
采用 L up( t i ) 作为第 2 考虑 L sp( t i ) 可能相同的情况, 个优先级判断属性。
r k ∈ R t j∈ P ( t i)
{
t j∈ P ( t i)
( 4)
c ji , m ≠ k; 0 , m = k。 T ef( t i , r j ) = T es( t i , r j ) + w i, j, ( 5)
5 ) 任务的完成时间 r) = 0 。 其中 T es( t entry , r j ) = T es( t i , rj ) - 6 ) 资源上的空闲 时 间 T slot( t i ,
任务按照一定的规则和约束条件合理分配到相 应的资源中, 而执行任务的顺序由任务调度算法控 制。任务调度算法减少了任务之间的通信开销及任 务调度长度, 使任务的处理时间和完成时间最短, 以 保证系统的性能。 任务调度模型一般使用有向无环图 ( directed acyclic graph, 简称 DAG) 表示。 任务调度问题是一个 NP 完全问题, 通常采用启发式调度方法解决。 启发 式调度主要包括基于分簇的调度算法 、 基于复制策略 的调度算法和基于表的调度算法。 表调度算法以其 简单的思想和较高的调度效率被广泛研究 。 蒋韵联 等
s
r3 9 18 19 17 10 9 11 14 20 16
T 为任务的集合, n 为任务数; t2 , …, t n ) 表示, 用 T ( t1 , E 为带权值的有向边集合, tj 〉 , e ij ∈ 用 E { e ij e ij = 〈t i , T × T} 表示, e ij ∈ E 为任务 t i 与 t j 之间的依赖关系, 且 t j 必须在 t i 执行完成后才能开始执行, 这时称 t i 是 t j t j 是 t i 的后继任务。其中, 的一个前驱任务, 入口任务 没有前驱任务, 出口任务没有后继任务。若有多个入 口任务, 则构建一个虚拟入口任务, 它到各个入口任 务之间的通信开销为零; 若有多个出口任务, 则构建 一个虚拟出口任务, 它到各个出口任务之间的通信开 销为零。
第 34 卷 第 6 期 2014 年 12 月
桂林电子科技大学学报
Journal of Guilin University of Electronic Technology
Vol. 34 , No. 6 Dec. 2014
一种改进的实时任务调度算法
张黎明, 张向利
( 桂林电子科技大学 信息与通信学院, 广西 桂林 541004 ) 摘 要: 针对现有的表调度算法优先级选取单一 、 优先级相同时任务随机调度导致某些重要任务延迟处理的问题, 提出了
图1 Fig. 1 DAG
3 ) 在计算 L up( t i ) 权重时, 权重最小的资源是任 且 r ∈ R , 有 务的预分配资源, 用 R pred( t i ) 表示, R pred( t i ) ) ≤ L up( t i , r) 。 在 计 算 L sp( t i ) 权 重 L up( t i , 用 时, 权 重 最 大 的 资 源 是 任 务 t i 的 预 分 配 资 源, R succ( t i ) ) ≥ R succ( t i ) 表 示, 且 r ∈ R 有 L sp( t i , L sp( t i , r) 。 4 ) 任务的开始时间 r k ) = max { T ef( t j , r m ) + c 'ji } , T es( t i ,