论文部分内容阅读
随着处理器制造技术的发展,处理器中晶体管的集成度及处理器运行的时钟频率越来越高。处理器性能在不断提升的同时,其运行时产生的过高温度也带来了严重的问题。处理器温度过高会影响芯片的稳定性和性能的发挥,并缩短处理器的使用寿命。硬件层次的温度动态管理技术,如电压、频率动态调节,虽然能高效地达到降温的目的,但是这会对系统性能造成比较严重的影响。而通过操作系统的进程调度来动态调控处理器温度的方法,由于具有性能损失小以及成本低等优点,成为了研究的热点。当前国内外关于温度感知调度的研究,大都是在基于就绪进程优先级数组的O(1)调度器基础上进行的。从Linux2.6.23开始,针对普通进程,内核引入了完全公平调度器CFS(Completely Fair Scheduler),以取代先前的O(1)调度器。目前针对CFS下基于温度感知的进程调度算法的研究,国内外都比较缺乏。
本文首先分析了CFS的原理与实现,然后在已有的温度感知调度算法基础上,结合所选用的多核处理平台,在CFS中增加了温度感知调度模块,使其具有温度感知功能。新增的温度感知调度模块所采用的调度策略主要是基于门限温度的进程优先级调整和进程迁移,并优先使用前一策略。在确定热进程迁移量时,调度程序通过计算各个处理核上所有热进程在下一时间片内所产生的预期功耗之和来确定热进程的迁移量。并且,新加入的温度均衡机制能够和Linux原有的负载均衡机制有机地融合,不会出现热进程在核间反复迁移的“乒乓效应”。实验选用了Super PI以及STAMP和Mibench的部分测试程序组成不同的负载组合分别在Linux的标准内核和加入温度感知功能的内核下运行,以测试系统运行时的温度特性以及因加入温度感知调度功能所带来的调度开销。实验结果表明,具有温度感知功能的内核能够降低CPU运行于高负载状态下的峰值温度和平均稳态温度,并能有效地均衡CPU的核间温差,而自身引入的调度开销较小。