内存虚拟化技术就是把物理机的内存进行统一管理,虚拟封装成虚拟机所使用的虚拟内存,以提供给每个虚拟机进行使用,将虚拟内存空间独立提供给虚拟机中的进程。内存技术与CPU 技术的重要性同等重要,访问次数同等频繁。
虚拟内存实现就在于对物理内存进行管理,按虚拟层对内存的需求划分物理内存,建立虚拟层所需内存地址与物理机内存地址的映射关系,保证虚拟层的内存访问在虚拟内存和物理机内存的连续和一致。
映射关系的技术实现是内存虚拟化的核心。
早期内存管理技术,是通过基于硬件的内存扩展和优化程序的软件方法实现的,成本高昂。虚拟内存技术因此诞生,通过CPU 的内存管理单元和页表转换技术,提升了内存性能,维护了基于应用程序所能看到的虚拟内存和物理内存的映射关系。虚拟内存管理引入了虚拟物理内存和机器内存的概念,以此建立虚拟内存地址与物理机内存地址的映射关系,如图3-2所示。
虚拟层中的进程使用的逻辑内存与虚拟物理内存建立一级映射地址关系,虚拟物理内存与物理机的机器内存建立二级映射地址关系。
具体映射地址维护的管理技术有以下两种。
图3-2 虚拟内存地址映射关系
一是影子页表法,如图3-3所示。操作系统维护自己的页表,页表中的内存地址反映一级映射关系,虚拟层的页表反映二级映射关系。一级映射关系和二级映射关系拥有共同的虚拟物理内存地址的变量,当操作系统访问内存页表时,对页表就要进行读写地址的操作,一级映射关系发生变化,通过一级映射中虚拟物理地址的变化,传递至二级映射关系,二级映射关系中虚拟物理地址的变化会导致物理机机器内存地址的变化,从而建立了新的内存地址映射关系,这种传递式的映射管理方法,类似人的影子一样,随人的变化而变化,都是基于本身的。(www.xing528.com)
图3-3 影子页表实现框图
二是页表写入法,直接为操作系统建立逻辑内存与机器内存的映射关系,如图3-4所示。当操作系统访问页表时,由虚拟内存管理单元完成对页表内存地址的操作,直接返回机器内存和虚拟内容地址的映射关系,操作系统始终能看清真实的机器地址,但每次操作系统对内存页表的访问,都要依靠虚拟层的监视器进行。
图3-4 页表写入实现框图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。