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

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

作者:佚名 2017-11-16 09:20:20

存储

存储软件

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

创新互联建站-专业网站定制、快速模板网站建设、高性价比龙城网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式龙城网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖龙城地区。费用合理售后完善,十余年实体公司更值得信赖。

引入内存虚拟化技术后,内存系统中存在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在内存中维护部分最近使用过的影子页表,只有当影子页表在缓存中找不到时,才构建一个新的影子页表。当前主要的虚拟化技术都采用了影子页表缓存技术。

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

网站题目:内存虚拟化技术,具体的实现方法有哪两种?
网站URL:http://www.csdahua.cn/qtweb/news35/49935.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网