由于在计算资源管理方面带来的便利性,近年来,虚拟计算技术在复兴后得到了广泛的普及。然而,该技术在应用中也暴露出很多的不足与尚待提高的地方,其中,对调度算法的不断改进和完善是非常重要的部分,也是该领域的研究热点和重点。同时,由于虚拟机在调度单位上与传统操作系统的不同,导致在该环境下的调度问题与在传统操作系统中的调度相比,出现了很多新的特点,使得传统的调度思想无法直接应用到虚拟机中,这使得调度问题也同时成为研究的难点。本课题的提出,旨在对虚拟机环境下的计算资源调度问题中的关键技术进行研究,提出新的算法解决虚拟客户环境下的调度问题,并在此算法的基础上提出协同调度思想以及解决过载调度问题的方法。本课题的研究成果将对虚拟计算技术的发展,以及应用的普及起到积极的推动作用。
Virtualization;Scheduling;Multi-core;Parallel computing;Synchronization
本课题针对虚拟机环境下的计算资源调度问题中的关键技术进行研究,提出新的算法解决虚拟客户环境下的调度问题,并在此算法的基础上提出协同调度思想以及解决过载调度问题的方法。本课题研究了虚拟客户环境(Virtualized Clients)下的调度技术,以期在基于虚拟计算的物理资源多路复用和面向客户的I/O 即时响应之间找到平衡点。通过研究,我们发现导致虚拟客户环境下音视频应用播放不畅的根本原因在于,Credit调度器对于特权Domain(IDD)的调度,由于Credit的过度损耗导致特权Domain无法很好地调度,我们提出了新的调度器SDP(Simple Dynamic Priority)来解决该问题。除了调度问题外,过长的I/O路径也是非常严重的问题。基于此,我们研究了Xen虚拟机环境下的音频设备的PV驱动,从根本上解决了虚拟客户环境下的音频播放问题。本课题深入研究了并行负载在虚拟化平台上的严重的同步开销问题,通过研究,我们发现很多并行应用(如由MPI运行时库所创建的并行应用)在虚拟化平台上运行所导致的同步开销并不是由其他很多文献提出的客户操作系统内核中的互旋锁(spin-lock)所导致,而是由进程的虚假运行状态以及失败的调度释放(yield)所引起的。基于此,我们提出了进程在同步点通知虚拟机管理器释放其VCPU运行的方法,此方法在减少同步负载的基础上,避免了采用协同调度算法所必须考虑的很多复杂问题。本课题深入研究了虚拟化后的多核硬件平台的计算资源管理问题,提出适合多核硬件资源管理的算法以及调度方法,提高了虚拟化后的多核硬件资源利用率。本课题研究并开发了Xen虚拟化环境中对VCPU调度数据的分析工具VSA,该工具能够对Trace数据中涉及调度的内容进行自动分析和分类,极大地提高了对Xen虚拟化平台调度数据的分析和处理效率。此外,本课题对虚拟化领域的前瞻性内容——嵌入式系统的虚拟化问题,以及GPU上的计算问题进行了研究。本课题的研究成果将对虚拟计算(以及其衍生的云计算)技术的发展、应用的普及以及未来的发展起到积极的推动作用。