[发明专利]虚拟机客户操作系统同步任务感知方法无效
申请号: | 200910237996.7 | 申请日: | 2009-11-27 |
公开(公告)号: | CN101876918A | 公开(公告)日: | 2010-11-03 |
发明(设计)人: | 白跃彬;许聪;李智 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/46 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 虚拟机 客户 操作系统 同步 任务 感知 方法 | ||
技术领域
本发明涉及计算机科学中的多核处理器以及虚拟机领域,特别是基于虚拟SMP平台的虚拟机任务同步感知方法。
背景技术
虚拟机(VM)是支持多操作系统并行运行在单个物理服务器上的一种系统,能够更加有效地利用底层硬件资源。随着计算机硬件的飞速发展,计算机的性能也迅速提高,尤其是多核处理器的出现和普及,使得日常人们使用的个人计算机(PC)具有了与以往高性能服务器相当的性能。而用户在日常使用中很少能够充分发挥出计算机的性能造成了大量计算资源的浪费。因此,将虚拟化技术应用到当今各种高性能计算机上,将一套硬件资源划分成若干个虚拟的个人终端或者服务器成了充分利用计算机资源,提高硬件利用率的一条有效途径。如今,Xen,VMWare,KVM等虚拟化方案已经成为高性能数据中心,大型服务器,系统软件开发等领域用来降低硬件采购成本,降低能源消耗,处理系统突发问题和调试系统软件的常用手段。同时虚拟化技术还在虚拟集群和高性能计算领域有着广阔的利用前景。
在上述应用场景中,由于多核处理器和多处理器的广泛应用,大多数应用程序均采用并行计算的方式来充分利用计算资源。这时就需要与之相符的协同调度算法与之对应,以减少由于虚拟化技术造成的系统消耗。以Xen虚拟机为例,虽然其默认的Credit调度器可以很好的应对多核处理器和多处理器Symmetrical Multi-Processors(SMP)平台,而且拥有很高的系统吞吐率,但是它不能很好的应对并发程序运行时产生的一些问题。例如,在科学计算中,多个线程(或进程)既要并发执行,又需要相互同步。比如一个线程需要等待另一个线程的结果才能继续执行,这种情况就需要另一个线程能尽快执行得到结果;而多个线程会在不同的CPU上执行以达到并发。这种应用如果在虚拟CPU(VCPU)不同步的虚拟机上运行,就会发生因另一个VCPU未及时运行而带来的其它VCPU空等的现象,显然这将造成并发程序执行性能的下降。为此,人们提出了能够让VCPU同时运行的协同调度方法co-scheduling方法。但是由于缺乏虚拟机监视器(VMM)与虚拟机中的客户操作系统(Guest OS)的交流,传统的被动的调度策略都无法应对虚拟机中应用程序运行方式的瞬息变化,造成调度粒度无法满足系统的要求。因此,一种能够帮助VMM识别虚拟机中应用程序的运行方式和运行状态,帮助调度器实时地采用相对应的调度策略的方法显得十分必要。
发明内容
本发明涵盖一般的虚拟机资源监控方法,重点以识别虚拟机中Guest OS上运行的应用程序的类型为目标,设计并实现了基于虚拟SMP平台的虚拟机并发任务感知方法。具体包括:
在VMM的Hypervisor层加入了虚拟机任务类型识别器,用于在虚拟机中的应用程序在进程创建或进程切换时截获驱动虚拟机(Domain0)访问硬件资源的信息;
根据截获的硬件访问信息,查找虚拟机Guest OS中进程对应的结构体在内存中的首地址,并还原出该进程task_struct结构,并得出进程中的线程数和线程状态。
根据线程相互间的运行状态,把虚拟机中正在运行的应用程序分为普通型和并发型两种,前者以单进程或单线程的方式运行;后者多以多进程或多线程的方式并发运行,进程或线程在程序的运行过程中需要相互同步。
对其VCPU仍采用类似Credit的调度方法已获得较高的吞吐率,待虚拟机任务感知识别器识别出虚拟机Guest OS中的应用类型后,将相关信息告知VCPU调度器。
与现有技术相比较,本发明的创新之处在于:能够为虚拟机中运行的并发程序暂时模拟一个类似物理计算机的运行环境,使得该虚拟机的VCPU能够同时运行,降低了并发程序的进程或线程之间的同步消耗。具体体现在:
1.本发明中,动态监视虚拟机客户操作系统中进程或线程的状态,根据对二者的分析可以得出当前虚拟机中的任务类型,将对虚拟机任务的监控从系统级提高到任务级。
2.本发明中,对于Guest OS中进程或线程的监控不需要更改Guest OS和应用程序本身,也不需要在虚拟机中安装任何额外的软件。
3.本发明中,可以将对虚拟机任务的监控信息与虚拟机调度器共享,为VCPU的调度提供依据信息。
本发明提出如下方法:
一种基于多核处理器平台的虚拟机客户操作系统同步任务感知方法,包括从虚拟机监视器追踪虚拟机客户操作系统中任务所对应的进程和线程的步骤和通过线程同步分析法判断客户操作系统运行的任务的类型并以此对虚拟机进行分类的步骤,其特征在于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910237996.7/2.html,转载请声明来源钻瓜专利网。