论文部分内容阅读
虚拟化计算系统提供了一种动态组织计算资源的手段,能够消除硬件体系结构和软件系统之间的依赖关系,构建出满足多种应用需求的计算环境,提高计算资源的使用效率。虚拟化技术已经成为未来计算机技术的一个重要的发展方向,虚拟机监控器(VMM)是实施虚拟化的基础。内存作为计算机系统中最为重要的资源之一,在虚拟化系统中存在两方面问题。第一:内存在使用过程中往往面临着数量紧张和效率低下;第二:VMM需要向客户机提供与裸机无差别的运行环境,保证客户机能够以原有方式完成对内存的探测与管理。因此VMM需要提供一种合理而高效的机制,解决系统内存在上述两个方面的问题。本文在一种协作型VMM框架下,针对该模型中的内存管理需求,设计并实现了多种内存管理器,避免了上述两种内存管理方式的缺陷。本文主要解决了四个方面的问题:1、现有各种内存管理方式难以协作型VMM的特殊需求,本文采用了分区管理方式,实现双系统在内存资源方面的隔离及交互。2、buddy算法在页块合并方式上存在局限性,容易产生碎片,本文采用了任意相邻内存块可合并的方式,减少了小内存块数量,提高大内存块的分配效率。3、SLAB分配器存在一定的不足,本文采用了改进的SLAB内核内存管理,通过创建一个专用的管理结构,减少VMM与IOPM通信过程中的内存浪费。4、本文实现了基于影子页表与扩展页表的两种内存虚拟化方案,并采用了动态的内存调整机制,有效地提高了内存利用率。本文在VMM原型系统中设计并实现了物理内存管理器、内核内存管理器及内存虚拟化,并针对效率对内存管理策略进行了测试。实验结果表明,本文完成的相关工作可以满足协作型VMM对内存的各种需求,在常规内存管理及内存虚拟化方面具备较高的效率。