当前位置: 首页 > 专利查询>北京大学专利>正文

一种虚拟机管理器的动态内存映射方法技术

技术编号:2831853 阅读:229 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种虚拟机管理器的动态内存映射方法,其步骤为:分别建立虚拟机和虚拟机管理器的页面池;虚拟机访问违例时虚拟机管理器动态建立并更新虚拟机物理内存集合P到虚拟机管理器页面池中的机器内存集合M的映射关系f(p);采用本发明专利技术的方法可以同时支持上层的按需取页、虚拟存储和内存共享功能,使得虚拟机管理器在充分保证虚拟机访问内存性能的前提下,实现虚拟机内存的动态管理和调配。

【技术实现步骤摘要】

本专利技术涉及虚拟化方法,特别是虚拟机管理器的动态内存映射方法。技术背景虚拟机(Virtual Machine, VM)技术源于上世纪60年代,其核心思想是在一台物理主 机上虚拟出多个虚拟计算机(VM),其上能同时运行多个独立的操作系统,这些客户操作系 统(Guest OS)通过虚拟机管理器(Virtual Machine Monitor, VMM)访问实际的物理资源。 内存虚拟化是虚拟机管理器(VMM)的重要功能之一。由于内存是虚拟机最频繁访问的设备 之一,内存虚拟化的效率将对虚拟机的性能产生重大影响。而由于现代计算机通常都采用段 页式存储管理、多级页表等复杂的存储体系结构,这又给VMM的高性能内存虚拟化设计带 来了很大挑战。当需要在同一物理主机上同时部署多个虚拟机时,VMM能否提供可伸缩的内存管理功 能就显得尤为重要。这是因为VMM需要实现物理内存在虚拟机之间的分割复用,如果这种 分割是静态的,则一台物理主机上所能并发执行的虚拟机数量必然受到实际硬件的机器内存 大小的限制。同时,由于虚拟机上运行的软件对内存的需求各不相同,而且是动态变化的, 基于静态分割的内存管理机制必然会造成内存资源的不合理分配,从而大大影响虚拟机执行 的性能。因此,为了使VMM系统具有更好的伸縮性和可扩展性,理想的VMM应该提供以下一 些内存管理功能■按需取页。只有当虚拟机真正需要的时候,VMM才将物理内存分配给它,而不是简 单地将固定大小的内存空间划分给虚拟机。按需取页能够提高内存资源的利用率。■虚拟存储。VMM应该能够利用交换等技术,给虚拟机提供超过实际机器内存大小的 内存空间。虚拟机上的Guest OS能够象运行在裸机上一样,透明地使用VMM提供 的整个物理内存。■内存共享。VMM应该允许虚拟机内部、以及虚拟机之间只读地共享完全相同的内存 区域,从而缓解大量虚拟机并发运行时的内存资源紧缺。内存共享是实现虚拟机快速 复制的重要基础。当前的虚拟机管理系统分别实现了以上部分管理功能。如开源虚拟机管理器Xen实现了基于Ballooning的虚拟存储技术,即允许VMM从其它虚拟机窃取一些未使用机器内存页面, 给急需内存的虚拟机使用;VMWare公司的VMWare Workstation实现了基于交换的虚拟存储 技术,即允许将虚拟机的部分物理内存页面交换到宿主操作系统(HostOS)的交换磁盘分区 上;而VMWare ESX Server还实现了基于页面内容比较的虚拟机间内存共享技术。但是,由于各种内存管理功能的底层的实现机制是相互独立的,现有虛拟机管理系统中 的这些内存管理机制具有以下缺点第一、机制的可扩展性不强。受到开发周期的影响,上述VMM在实现不同的内存管理 功能时,分别引入了不同的底层支持机制,导致内存管理模块日益复杂而难以管理,限制了 系统的可扩展性。例如,为了实现Ballooning功能,Xen引入了 Grant Table机制(参见2004 年Keir Fraser, S映i/aniM^e jcce^ w欣Jfew WWwa/她c/ /we Moor, in Proceedings of the 1st Workshop on Operating System and Architectural Support),但是该机制并不适用于按需 取页、内存交换和内存共享,因而难以继续加入这些内存管理功能。第二、完整性和耦合度不高。现有VMM大都未能实现上述所有的内存管理功能。而即 使是已实现的功能,也都分别采用独立的模块设计。由于模块所用到的底层机制是相互独立 的,这些模块之间难以有效地协同工作,甚至是相互冲突的。例如在VMWare ESX Server中, 内存共享机制是不能与交换机制同时启用的。而在实际应用中,我们往往希望VMM能够综 合地、并发地利用所有可能的内存管理技术,实现资源利用率的最大化。
技术实现思路
本专利技术的目的是建立统一的动态内存映射机制,使得能够在充分保证虚拟机访问内存的 性能的前提下,实现虚拟机内存的动态管理和调配。我们认为,VMM应该用一套单一的机制来支持上层的按需取页、虚拟存储和内存共享 功能,即该机制应该具有很好的通用性。通用性带来的好处是实现代码复用,并降低VMM 本身的复杂性,同时能够有效地控制不同内存管理功能之间不兼容性。同时,这套机制应该是高效的。由于内存是虚拟机最频繁访问的设备之一,内存虚拟化 的效率将对虚拟机的性能产生重大影响。只有将该机制带来的性能的开销控制在10%以内, 才能认为该机制是实用的。此外,这套机制必须具有良好的可扩展性。利用它实现一个新的内存管理功能不应该影响到已实现的功能。另外,该机制不但能够适用于现有的内存管理功能,还要为今后可能的新内存管理技术提供支持。综上,本专利技术是要提出一套通用的、高效的、可扩展的虚拟机内存管理机制,以解决现有VMM系统中的内存管理机制相互独立所带来的代码可维护性差、可扩展性差、耦合度低 等难题。针对以上问题,本专利技术提出了虚拟机的动态内存映射机制。动态内存映射是VMM进行 内存管理的一种底层机制,它允许VMM在虚拟机运行时,动态地改变虚拟机的物理内存与 真实硬件的机器内存的对应关系。从而能够很好地支持VMM实现按需取页、虚拟存储和内 存共享等上层的内存管理功能。我们将从基本思想、主要构成、工作流程三个层次详细说明 动态内存映射机制的
技术实现思路
。一、动态内存映射机制的基本思想现代计算机通常都具备内存分页保护机制,这给VMM进行内存虚拟化提供了必要硬件 支持。但由于客户操作系统本身也会进行页式内存管理,虚拟机系统中实际上存在着三个地 址概念■机器地址(Machine Address),指真实硬件的物理地址,即地址总线上应该出现的地 址信号。■物理地址(Guest Physical Address),指经过VMM抽象的、虚拟机所看到的伪物理地 址。■虚拟地址(Guest Virtual Address),指Guest OS提供给其应用程序使用的线性地址空 间。基于以上概念,本专利技术提出的动态内存映射模型的定义如下定义虚拟机所见到的物理内存为集合P (以页面为单位),虚拟机的生存周期为序列 ,假设在时刻G时,VMM提供给该虚拟机的机器内存为集合Mi (以页面为单 位),映射力是从P到Mi的一个部分函数,即对于任意的/ eP,力(p0或_/;(p) = {m},me Mi,且满足下列性质(函数的建立将在实施方式中描述)(1) 映射力和其值域M,允许随时间^动态变化;(2) 若在某个时刻,虚拟机的物理地址p没有机器页面与之对应,即乂&) = 0,则虚拟 机对内存p的读写访问都将陷入VMM;(3) 若在某个时刻,虚拟机的两个物理地址映射到同一机器地址,即对任意两个不同的 e P,若力(p!)=力(p2),则虚拟机对内存pi或者&的写访问都将陷入VMM;我们称函数序列尸=/0,力,是虚拟机内存P的一个动态内存映射。 在动态内存映射的定义中,性质(1)保证了映射力和其值域M,都是能够随着时间变化 的,因此允许VMM动态调整虚拟机使用的机器内存集合,或者动态调整虚拟机的物理内存 到机器内存的对应关系;性质(2)允许虚拟机的某些物理内存没本文档来自技高网
...

【技术保护点】
一种虚拟机管理器的动态内存映射方法,其步骤为:(1)分别建立虚拟机和虚拟机管理器的页面池,并进行初始化;所述页面池包括活动池和空闲池,其具有如下功能:分配:将一个页面从空闲池移入活动池,并且保证为该页面建立映射; 返还:将一个页面从活动池放回空闲池,之前删除与该页面有关的所有内存映射;扩大:将某些机器页面加入页面池的空闲池中,增大虚拟机所能使用的机器内存;收缩:将某些机器页面从页面池的空闲池中删除,减小虚拟机所能使用的机器内存;   (2)虚拟机访问违例时虚拟机管理器动态建立并更新虚拟机物理内存集合P到虚拟机管理器页面池中的机器内存集合M的映射关系f(p),其中p为物理内存集合P中的任意一个页面。

【技术特征摘要】
1.一种虚拟机管理器的动态内存映射方法,其步骤为(1)分别建立虚拟机和虚拟机管理器的页面池,并进行初始化;所述页面池包括活动池和空闲池,其具有如下功能分配将一个页面从空闲池移入活动池,并且保证为该页面建立映射;返还将一个页面从活动池放回空闲池,之前删除与该页面有关的所有内存映射;扩大将某些机器页面加入页面池的空闲池中,增大虚拟机所能使用的机器内存;收缩将某些机器页面从页面池的空闲池中删除,减小虚拟机所能使用的机器内存;(2)虚拟机访问违例时虚拟机管理器动态建立并更新虚拟机物理内存集合P到虚拟机管理器页面池中的机器内存集合M的映射关系f(p),其中p为物理内存集合P中的任意一个页面。2. 如权利要求1所述的方法,其特征在于所述页面的数据结构包括页面号、引用计数、状态标志o3. 如权利要求l所述的方法,其特征在于采用影子页表建立所述映射关系/(p)。4.如权利要求3所述的方法,其特征在于虚拟机管理器动态更新所述影子页表项的映射关系 /(p)Xg(v),同步更新对应的逆映射(/(p)Xg(v))—、其中g(v)为虚拟地址到物理地址的映 射关系,v为虚拟地址。5. 如权利要求l所述的方法,其特征在于所述活动池与所述空闲池通过双向链表连接。6. 如权利要求l所述的方法,其特征在于所述访问违例为在时刻^虚拟机访问了内存p,且 力(/7) = 0时,则虚拟机的执行将中断,控制转入虚拟机管理器,所述虚拟机管理器从页面池的空闲池中分配一块新的机器内存m,将其加入页面池的活动池,设置/,+1(^)={附},然后 恢复虚拟机执行。7. 如权利要求1所述的方法,其特征在于所述访问违例为在时刻^虚拟机访问了物理页面; , 且力0 ) = 0时,则虚拟机的执行将中断,控制转入虚拟机管理器,所述虚拟机管理器执行下 列步骤-(1) 虚拟机管理器判断当前页面池的空闲池是否充裕,若是,则虚拟机管理器分配一块新 的机器内存m将它加入页面池的活动池,设置/i+1(p) = {w},然后转到步骤(3);(2) 若否,则虚拟机管理器从页面池的活动池中选择一个页面集合S,将它们从页面池的 活动池中删除,同时,对于所有映射了S中机器页面的物理页面:c,设置/,+1 (x)-0,并将 页面x的内容写入交换空间,然后重新运行系统;(3) 虚拟机管理器检査所述物理页面p的内容是否在交换空间中,若是,则从交换空间中 将所述物理页面p的内容读入所述机器内存m,恢复虚拟机的执行;否则恢复虚拟机的执行。8. 如权利要求1所述的方法,其特征在于所述虚拟机管理器中的所有虚拟机共享同一页面池, 所述访问违例为在时刻G,其中一台虚拟机&试图写入物理页面p,若存在来自所述虚拟机A 或其他虚拟机的另一个物理页面使得和p'映射到同一机器页面时,虚拟机的执行将 中断,控制转入虚拟机管理器,所述虚拟机管理器分配一个新的机器页面m,将所述物理页面p的内容复制到所述机器页面m中;然后,虚拟机管理器将所述机...

【专利技术属性】
技术研发人员:罗英伟陈昊罡汪小林张彬彬孙逸峰许卓群
申请(专利权)人:北京大学
类型:发明
国别省市:11[中国|北京]

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

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