|
|
51CTO旗下网站
|
|
移动端

内存虚拟化技术,具体的实现方法有哪两种?

操作系统的内存管理单元(Memory Management Unit,MMU)只能完成一次虚拟地址到物理地址的映射,但获得的物理地址只是虚拟机物理地址而不是机器物理地址,所以需要VMM参与,以获得总线上可以使用的机器地址为实现虚拟地址到机器地址的高效转换,目前普遍采用的方法是由VMM根据映射f和g生成复合映射f·g并直接写入MMU。

作者:佚名来源:中科院计算所培训中心|2017-11-16 09:20

引入内存虚拟化技术后,内存系统中存在3种地址。

机器地址(Machine Address,MA):真实硬件的机器地址,在地址总线上可以见到的地址信号。

虚拟机物理地址(Guest Physical Address,GPA):经过VMM抽象后虚拟机看到的伪物理地址。

虚拟地址(Virtual Address,VA):Guest OS提供给其应用程序使用的线性地址空间。

虚拟地址到虚拟机物理地址的映射关系,记作g

虚拟机物理地址到机器地址的映射关系,记作f

操作系统的内存管理单元(Memory Management Unit,MMU)只能完成一次虚拟地址到物理地址的映射,但获得的物理地址只是虚拟机物理地址而不是机器物理地址,所以需要VMM参与,以获得总线上可以使用的机器地址为实现虚拟地址到机器地址的高效转换,目前普遍采用的方法是由VMM根据映射f和g生成复合映射f·g并直接写入MMU,具体的实现方法有两种:

MMU半虚拟化(MMU Paravirtualization)

这种方式主要为Xen所用

主要原理是:当Guest OS创建新页表时,VMM从维护的空闲内存中为其分配页面并进行注册,以后,Guest OS对该页表的写操作都会陷入VMM进行验证和转换;VMM检查页表中的每一项,确保它们只映射到属于该虚拟机的机器页面,而且不包含对页表页面的可写映射;然后,VMM会根据其维护的映射关系f,将页表项中的虚拟机物理地址替换为相应的机器地址;***把修改过的页表载入MMU,MMU就可以根据修改过的页表直接完成虚拟地址到机器地址的转换。这种方式的本质是将映射关系f·g直接写入Guest OS的页表中,以替换原来的映射g。

影子页表

全虚拟化使用影子页表技术实现内存虚拟化。其与MMU半虚拟化不同的是,VMM为Guest OS的每个页表维护一个影子页表,并将f·g的映射关系写入影子页表,Guest OS的页表内容保持不变,然后,VMM将影子页表写入MMU。

影子页表的维护将带来时间和空间上的较大开销。时间开销主要体现在Guest OS构造页表时不会主动通知 VMM,VMM 必须等到Guest OS发生缺页时才会分析缺页原因再为其补全影子页表。而空间的开销主要体现在VMM需要支持多台虚拟机同时运行,每台虚拟机的 Guest OS 通常会为其上运行的每个进程创建一套页表系统,因此影子页表的空间开销会随着进程数量的增多而迅速增大。

影子页表缓存

为权衡时间开销和空间开销,现在一般采用影子页表缓存(Shadow Page Table Cache)技术,即VMM在内存中维护部分最近使用过的影子页表,只有当影子页表在缓存中找不到时,才构建一个新的影子页表。当前主要的虚拟化技术都采用了影子页表缓存技术。

虚拟机文件系统的虚拟化技术

【编辑推荐】

  1. 存储网络 – 了解FCoE的8个技术细节
  2. 深入浅知虚拟化和灾难恢复
  3. DRAM核心设计的新旧存取技术差异
  4. 磁带数据储存技术“卷土重来”?
  5. 什么是存储虚拟化?记录层和块层都包含哪些设备?
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

计算机病毒分析与防治简明教程

本书全面翔实地介绍了各种病毒的原理,以操作系统的发展为主线,结合病毒的发展过程来综合分析病毒。在分析工具上,较多地利用了脚本语言、...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客