一种虚拟机监视器、虚拟机系统及其内存处理方法技术方案

技术编号:2911434 阅读:201 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供虚拟机监视器、虚拟机系统及其内存处理方法,其中该虚拟机监视器包括:分配模块,用于分别为多个客户操作系统中的每个客户操作系统分配物理内存;第一设置模块,用于设置所述每个客户操作系统对应的所述物理内存中的可用物理内存,所述每个客户操作系统对应的所述可用物理内存的地址没有交叉;第一映射模块,用于在所述每个客户操作系统对应的可用物理内存与第一机器内存之间建立一一对应的第一映射关系,所述第一机器内存的地址与所述每个客户操作系统对应的可用物理内存的地址相同。本发明专利技术实现了多个GOS的DMA访问。

【技术实现步骤摘要】

本专利技术涉及虚拟机技术,特别是涉及一种虚拟机监视器、虚拟机系统及其内存处理方法
技术介绍
在现有的虚拟化过程中,都有一个通用的虚拟设备平台,包括虚拟声卡、虚拟显卡等,由虚拟机监视器(Virtual Machine Monitor,VMM)将客户操作系统(Guest OS,GOS)对虚拟设备平台中的虚拟设备的访问通过服务操作系统(Service OS,SOS)或者主机操作系统(Host OS)访问到真实的硬件上。上述的架构无法解决多个GOS对真实硬件的共享问题,因此,在上述通用的虚拟化平台中,不论真实硬件平台是什么,虚拟化出来的设备都一致,虽然这样对于各个客户操作系统都适用,但会出现如下问题:虚拟机系统显示的硬件设备与真实的硬件设备不一致,用户无法看到真实的硬件;真实硬件的某些特性无法使用,如显卡硬件加速特性、声卡的高级特性等。为解决上述问题的存在,现有技术中提供了一种虚拟机系统及其硬件设备访问方法,其公开了下述的虚拟机系统。为了解决系统内存与硬件作DMA(Direct Memory Access,直接存储器访问)操作的问题,将原来运行在低端内存的虚拟机监视器的地址从低端内存移到高端内存,使GOS的物理内存地址与系统的物理内存地址(及机器地址)保持一一对应,以实现GOS的DMA传输。然而,上述的虚拟机系统及其硬件设备访问方法仅能解决一个GOS的DMA传输问题,在虚拟机系统中存在多个GOS时,无法实现所有的GOS的DMA传输问题。-->
技术实现思路
本专利技术实施例的目的是提供一种虚拟机监视器、虚拟机系统及其内存处理方法,在虚拟机系统存在多个GOS,使所有的GOS都能实现DMA传输。为了实现上述目的,本专利技术实施例提供了一种虚拟机监视器,其中,包括:分配模块,用于分别为多个客户操作系统中的每个客户操作系统分配物理内存;第一设置模块,用于设置所述每个客户操作系统对应的所述物理内存中的可用物理内存,所述每个客户操作系统对应的所述可用物理内存的地址没有交叉;第一映射模块,用于在所述每个客户操作系统对应的可用物理内存与第一机器内存之间建立一一对应的第一映射关系,所述第一机器内存的地址与所述每个客户操作系统对应的可用物理内存的地址相同。优选地,上述的虚拟机监视器还包括:第二设置模块,用于设置所述客户操作系统对应的E820表,将所述客户操作系统的所述物理内存中所述可用物理内存之外的物理内存配置为不可用物理内存。优选地,上述的虚拟机监视器还包括:第二映射模块,用于在所述每个客户操作系统的不可用物理内存与第二机器内存之间建立第二映射关系。优选地,上述的虚拟机监视器还包括:第三映射模块,用于在第二客户操作系统的用于启动的物理内存与第三机器内存之间建立第三映射关系,其中,所述第二客户操作系统的可用物理内存地址的起始值大于零。为了更好的实现上述目的,本专利技术实施例还提供了一种虚拟机系统,包括多个客户操作系统和虚拟机监视器,其中,所述虚拟机监视器包括:分配模块,用于分别为多个客户操作系统中的每个客户操作系统分配物理内存;第一设置模块,用于设置所述每个客户操作系统对应的所述物理内存中的可用物理内存,所述每个客户操作系统对应的所述可用物理内存的地址没有交-->叉;第一映射模块,用于在所述每个客户操作系统对应的可用物理内存与第一机器内存之间建立一一对应的第一映射关系,所述第一机器内存的地址与所述每个客户操作系统对应的可用物理内存的地址相同。优选地,上述的虚拟机系统中还包括:第二设置模块,用于设置所述客户操作系统对应的E820表,将所述客户操作系统的所述物理内存中所述可用物理内存之外的物理内存配置为不可用物理内存。优选地,上述的虚拟机系统中还包括:第二映射模块,用于在所述每个客户操作系统的不可用物理内存与第二机器内存之间建立第二映射关系。优选地,上述的虚拟机系统中还包括:第三映射模块,用于建立第二客户操作系统的用于启动的物理内存与第三机器内存之间的第三映射关系;所述第二客户操作系统的可用物理内存地址的起始值大于零。为了更好的实现上述目的,本专利技术实施例还提供了一种虚拟机系统的内存处理方法,其中,包括:分别为多个客户操作系统中的每个客户操作系统分配物理内存;设置所述每个客户操作系统对应的所述物理内存中的可用物理内存,所述每个客户操作系统对应的所述可用物理内存的地址没有交叉;在所述每个客户操作系统对应的可用物理内存与具有与所述每个客户操作系统对应的可用物理内存的地址相同的地址的第一机器内存之间建立一一对应的第一映射关系。优选地,上述的方法还包括:设置所述客户操作系统对应的E820表,将所述客户操作系统的所述物理内存中所述可用物理内存之外的物理内存配置为不可用物理内存;在所述每个客户操作系统的不可用物理内存与第二机器内存之间建立第二映射关系。本专利技术实施例具有以下有益效果:-->通过设置可用物理内存和不可用物理内存,保证多个客户操作系统的所述可用物理内存的地址没有交叉,进而建立每个客户操作系统的可用物理内存与具有相同地址的第一机器内存之间的一一对应的映射关系,由于每个客户操作系统的可用物理内存与具有相同地址的第一机器内存之间的一一对应,且相同第一机器内存不会被映射到不同的GOS的可用物理内存,因此,保证了每个GOS的可用物理内存都会有与之一一对应的机器内存,所以,利用本专利技术实施例,实现了所有GOS的DMA访问。附图说明图1为本专利技术实施例的虚拟机系统的结构示意图;图2为本专利技术实施例的方法的流程示意图。具体实施方式要实现多个GOS的DMA,必须要保证多个GOS的可用物理内存与机器内存之间的一一对应,但现有方法中,由于GOS的可用物理内存地址都是从0开始,保证了其中一个GOS的可用物理内存与机器内存之间的一一对应,就无法保证其它GOS的可用物理内存与机器内存之间的一一对应,本专利技术实施例通过将设置GOS的可用物理内存,保证GOS之间的可用物理内存地址没有重叠之处,进而将GOS的可用物理内存一一对应到机器内存,使多个GOS同时实现DMA。以下结合附图说明本专利技术的虚拟机系统及其硬件访问方法。图1为本专利技术的虚拟机系统的结构示意图,如图1所示,虚拟机系统包括:多个GOS、VMM以及硬件,其中,VMM中设置有:分配模块,用于为多个GOS中的每个GOS本文档来自技高网
...

【技术保护点】
一种虚拟机监视器,其特征在于,包括: 分配模块,用于分别为多个客户操作系统中的每个客户操作系统分配物理内存; 第一设置模块,用于设置所述每个客户操作系统对应的所述物理内存中的可用物理内存,所述每个客户操作系统对应的所述可用物理内 存的地址没有交叉; 第一映射模块,用于在所述每个客户操作系统对应的可用物理内存与第一机器内存之间建立一一对应的第一映射关系,所述第一机器内存的地址与所述每个客户操作系统对应的可用物理内存的地址相同。

【技术特征摘要】
1.一种虚拟机监视器,其特征在于,包括:
分配模块,用于分别为多个客户操作系统中的每个客户操作系统分配物理
内存;
第一设置模块,用于设置所述每个客户操作系统对应的所述物理内存中的
可用物理内存,所述每个客户操作系统对应的所述可用物理内存的地址没有交
叉;
第一映射模块,用于在所述每个客户操作系统对应的可用物理内存与第一
机器内存之间建立一一对应的第一映射关系,所述第一机器内存的地址与所述
每个客户操作系统对应的可用物理内存的地址相同。
2.根据权利要求1所述的虚拟机监视器,其特征在于,还包括:
第二设置模块,用于设置所述客户操作系统对应的E820表,将所述客户
操作系统的所述物理内存中所述可用物理内存之外的物理内存配置为不可用
物理内存。
3.根据权利要求2所述的虚拟机监视器,其特征在于,还包括:
第二映射模块,用于在所述每个客户操作系统的所述不可用物理内存与第
二机器内存之间建立第二映射关系。
4.根据权利要求1所述的虚拟机监视器,其特征在于,还包括:
第三映射模块,用于在第二客户操作系统的用于启动的物理内存与第三机
器内存之间建立第三映射关系,其中,所述第二客户操作系统的所述可用物理
内存地址的起始值大于零。
5.一种虚拟机系统,包括多个客户操作系统和虚拟机监视器,其特征在
于,所述虚拟机监视器包括:
分配模块,用于分别为多个客户操作系统中的每个客户操作系统分配物理
内存;
第一设置模块,用于设置所述每个客户操作系统对应的所述物理内存中的
可用物理内存,所述每个客户操作系统对应的所述可用物理内存的地址没有交
叉;
第一映射模块,用于在所述每个客户操作系统对应的可用物理内...

【专利技术属性】
技术研发人员:汤良
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利