论文部分内容阅读
异构多核架构是当今处理器发展的主要方向,在单核处理器发展陷入瓶颈的情况下,同构多核处理器通过增加片内核心数量,提高指令执行并行度,达到了提高运算速度的目的。在此基础上,异构架构则通过硬件性能的差异实现程序执行的硬件加速。为充分发挥异构多核处理器的性能优势,提高微内核操作系统的表现,研究其任务调度问题已成为重要的一个课题。 本文首先简要介绍了异构多核处理器的架构特点,分析了微内核操作系统的架构,并阐述了QNX,Vxworks等支持多核处理器的微内核操作系统。然后对异构平台上的微内核操作系统的任务调度问题进行了研究,在单核和多核两个方面分析了任务调度模型、任务调度机制、任务调度策略和评价指标,讨论了异构和同构平台上调度问题的异同。在上述研究基础之上,基于微内核平台下的独立任务模型和有约束任务模型,采用基于混洗蛙跳算法的异构多核处理器下的任务调度算法,并进行了改进。 本文主要进行了如下工作: (1)针对独立任务模型,对混洗蛙跳算法进行了优化。引入混沌思想提高种群多样性,算法维护全局的Tent映射,使用Tent映射生成混沌序列优化种群初始化,提高算法初始时的种群多样性;优化标准的子群划分过程,将轮转式调整为往返交替的方式;优化了局部搜索过程,调整了更新公式;并且当子群的多样性下降到一定阈值时,保留子群最优解,并重新生成子群,以此提高种群的多样性。 (2)针对有约束的任务模型,优化了混洗蛙跳算法,本文使用Tent映射生成混沌序列优化种群初始化,将种群划分方法改为往返式,优化了更新局部最差解的过程,每次更新成功的同时对局部极优值和更新值的处理核分配进行混沌扰动。解决了在算法中后期寻优的概率急速下降,算法局部搜索持续保持在少数几个局部较差值上,导致优化停滞的情况。提高了算法跳出局部极优值能力和收敛速度。 最后在 matlab平台上实现了针对两种不同任务模型的改进的混洗蛙跳算法,验证本文改进的混洗蛙跳算法的有效性,不失一般性,通过随机生成不同的任务模型数据,使用标准的混洗蛙跳算法、改进的混洗蛙跳算法和目前较为常见的遗传算法进行了对比。实验结果显示在两种不同的任务模型下,改进的混洗蛙跳算法均能够取得更好的调度结果,为微内核操作系统提供更高的系统吞吐率,并实现了任务集在更短的时间内完成调度。