基于蚁群算法的多核系统实时任务调度的优化方法

文档序号:9727197阅读:531来源:国知局
基于蚁群算法的多核系统实时任务调度的优化方法
【技术领域】:
[0001] 本发明涉及多核系统实时任务调度的方法,具体是使用改进的蚁群算法实现多核 系统的实时任务调度。
【背景技术】:
[0002] 如今人们对计算机处理性能的要求越来越高,如果像从前一样只靠提高单核处理 器的时钟频率来提高计算机的运行速度,不但会产生过多热量,而且并不能带来相应的性 能改善。就是说单纯的主频提升,已经无法明显提升系统整体性能。即便是没有热量问题, 其性价比也令人难以接受,速度稍快的处理器价格要高很多。并且传统的单核处理器的处 理能力己经无法满足某些具体的应用需求,例如,在处理具有严格时间限制的计算密集型 实时应用时,单核处理器己经显得力不从心,人们把提高计算机处理性能的需求通过采用 多核处理器来实现,多核处理器正是在这样的环境下应运而生。
[0003] 随着程序的时间复杂性的增加和硬件成本的减少,多核系统的利用已经越来越 多。同时,实时系统领域的实时控制要求也在日益增加,因而提高系统的实时性能变得至关 重要。

【发明内容】

[0004] 发明目的:本发明提供一种基于蚁群算法的多核系统实时任务调度的优化方法, 其目的是解决以往所存在的问题。
[0005] 技术方案:
[0006] -种基于蚁群算法的多核系统实时任务调度的优化方法,其特征在于:该方法在 两方面做出改进;一是在选择任务和为任务选择处理核的概率选择公式的设计上;二是信 息素变量的更新;最初所有元素有相同的较小值;然后执行迭代的蚁群算法:
[0007] (1)生成蚁群;
[0008] (2)设置初始化信息;
[0009] (3)每只蚂蚁循环(直到完成调度任务)一一根据信息素变量选择下一个就绪任 务,为该任务选择处理器;
[0010] ⑷记录信息素变量;
[0011] 信息素变量的更新。
[0012] 在第一阶段,只是创建一个长度为η的列表;在第二阶段,每只蚂蚁从准备列表中 选择一个任务,并为该任务选择一个处理核,直到完成任务调度;在每次迭代中,Ν只蚂蚁就 会得到Ν组可行解;选择一组任务调度长度最短的解作为一次迭代的最优解;对于蚂蚁 k,通 过使用概率选择公式(1)(2)为任务i选择下一个任务j;

[0015] 公式的设计考虑几个因素:(1)?是任务j的截止期;优先选择较早截止的任务,尽 量不让任务错过截止期,从而提高实时系统的调度成功率;(2)Μ」是任务j的估计运算量;优 先选择运算量较小的任务,其运行时间较短,从而尽量降低系统的任务调度长度;(3)e 1;J是 任务i和j之间的估计通信量;
[0016] 在为任务选择处理器时,根据概率选择公式(1) (3)进行选择;
[0018]考虑几个因素:(1)邱是处理核P的处理速率;(2)η,ρ是任务j的在处理核p上准备 就绪的时间;(3)tP是处理核p的最早可用时间;
[0019]然后生成一个随机数,选择与所生成的数相对应的作为下一个任务;显然,有较大 信息素值的任务,有更大的机会被选择;选定的任务被添加到禁忌表中,从允许被选择的列 表中删除,被选择任务的子任务,现在可以执行,增加到准备列表中;这些操作是重复的,直 到完成所有任务的调度;
[0020] 在第三阶段中,根据k组可行解的情况,对路径上的信息素变量进行更新,调整策 略如公式(4)(5)(6)所示
[0021] T(i,j) = (l-p)T(i,j)+AT(i,j) (4)
[0024] Lk表示第k只蚂蚁求得的任务调度长度,Q在基本蚁群算法中是常数,但通过实验 发现,有时某条路径上的信息量在迭代次数还不多的情况下就已远远超过了其他路径上的 信息量,会导致搜索停滞,为避免这种情况的发生,本发明对Q作出两点改变来解决;一是限 定信息素变量的最大值和最小值,若超出这个设定范围,就取临近的边界值;二是根据迭代 次数对Q值进行调整;
[0025] 最后阶段,选择所有迭代结束后得到的调度时间最短的解作为最优的解决方案; [0026] η是给定的任务图的任务数,处理器的个数为m;T(i,j)是指有向边i,j上的信息素 变量,n( i,j)是指任务i后会选择任务j的期望程度。
[0027] 优点及效果:本发明提供一种基于蚁群算法的多核系统实时任务调度的优化方 法,实时任务调度和非实时任务调度最本质的区别在于,前者需要满足处理核与时间分配 之间的关系。非实时系统中任务调度的主要目标是尽量缩短系统的平均响应时间,有效提 高系统的资源利用率;而实时系统中任务调度的主要目标则是满足所有任务的时限要求, 给予外部请求及时的响应。
[0028] 本发明大大提高了多核系统的调度效率,更好地解决多核系统实时任务调度问 题。
[0029] 本发明针对基本蚁群算法求解最短路径过程中容易陷入局部最优的情况,对基本 蚁群算法做出了改进。改进算法根据系统的实际情况,对概率选择公式做出调整,同时根据 相应策略对信息素进行调整,有效地缩小了信息素之间的差距,有利于跳出局部最优状态。 与基本蚁群算法相比在收敛速度和计算最优解方面都有了改进。
[0030] 为了提高多核系统的调度效率,针对蚁群算法的缺点,在两方面做出改进。一是在 选择任务和为任务选择处理核的概率选择公式的设计上;二是信息素变量的更新。
[0031] 综上所述,本发明针对多核系统的实时性,考虑了任务的到达时间、就绪时间和截 止期。再结合多核系统的复杂环境,研究的是异构多核系统,算法考虑了各内核不同的运行 速率和内核间不同的通信带宽。实验结果表明,该算法与基本蚁群算法相比在收敛速度和 计算最优解方面都有了改进。
【附图说明】
[0032]图1为程序的任务图;
[0033]图2为改进蚁群算法的流程图。
【具体实施方式】:
[0034]下面对本发明做进一步说明:
[0035] -种基于蚁群算法的多核系统实时任务调度的优化方法,该方法在两方面做出改 进;一是在选择任务和为任务选择处理核的概率选择公式的设计上;二是信息素变量的更 新;最初所有元素有相同的较小值;然后执行迭代的蚁群算法:
[0036] (5)生成蚁群;
[0037] (6)设置初始化信息;
[0038] (7)每只蚂蚁循环(直到完成调度任务)一一根据信息素变量选择下一个就绪任 务,为该任务选择处理器;
[0039] (8)记录信息素变量;
[0040] 信息素变量的更新。
[0041] 在第一阶段,只是创建一个长度为η的列表;在第二阶段,每只蚂蚁从准备列表中 选择一个任务,并为该任务选择一个处理核,直到完成任务调度;在每次迭代中,Ν只蚂蚁就 会得到Ν组可行解;选择一组任务调度长度最短的解作为一次迭代的最优解;对于蚂蚁 k,通 过使用概率选择公式(1)(2)为任务i选择下一个任务j;
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1