系统虚拟化与云计算3_内存虚拟化

上传人:我*** 文档编号:133343565 上传时间:2020-05-26 格式:PDF 页数:48 大小:414.61KB
返回 下载 相关 举报
系统虚拟化与云计算3_内存虚拟化_第1页
第1页 / 共48页
系统虚拟化与云计算3_内存虚拟化_第2页
第2页 / 共48页
系统虚拟化与云计算3_内存虚拟化_第3页
第3页 / 共48页
系统虚拟化与云计算3_内存虚拟化_第4页
第4页 / 共48页
系统虚拟化与云计算3_内存虚拟化_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《系统虚拟化与云计算3_内存虚拟化》由会员分享,可在线阅读,更多相关《系统虚拟化与云计算3_内存虚拟化(48页珍藏版)》请在金锄头文库上搜索。

1、系统虚拟化与云计算系统虚拟化与云计算 商彦磊商彦磊 shangyl 北京邮电大学网络技术研究院 网络与交换技术国家重点实验室网络与交换技术国家重点实验室 教学内容 绪论 算体系架构与虚拟化技术 计算体系架构与虚拟化技术 虚拟化概述虚拟化概述 CPU的虚拟化 内存虚拟化内存虚拟化 内存虚拟化内存虚拟化 I O虚拟化 虚拟化实施与应用 虚拟化的现状与未来虚拟化的现状与未来 内存虚拟化 计算机内存架构 内存虚拟化的必要性 内存虚拟化概述 内存虚拟化概述 内存虚拟化方法 内存架构 地址空间 物理地址空间 物理地址空间 虚拟地址空间 地址 地址 逻辑地址 虚拟地址 物理地址 内存管理机制 分段机制 分段

2、机制 分页机制 计算机系统结构计算机系统结构 CPU M CPU MMU Memory Controller 本地 总线本地 总线 Interface 高速高速I O 总线总线 NIC Controlle B id Frame NIC Controlle r Bridge Frame Buffer LANLAN 低速低速低速低速 I O 总线总线 USBCD ROM 地址空间 内存可以视为一个大数组 地址就是数组的 索引 地址空间是更大的数组包括两种类型 地址空间是更大的数组 包括两种类型 物理地址空间 虚 虚拟地址空间 物理地址空间 对CPU而言 内存和其他硬件设备都是可以使 用的资源用的资

3、源 资源组合在一起分布在CPU的物理地址空间 CPU使用物理地址索引这些资源 X86系统CPU的物理地址空间为4GB X86系统CPU的物理地址空间为4GB 内存和I O地址只占用物理地址空间的一部分 内 存可以I O设备共享地址空间参考I O虚拟化 存可以I O设备共享地址空间 参考I O虚拟化 04GB 物理地址空间物理地址空间物理地址空间物理地址空间 RAMROM设备 帧缓 冲器 虚拟地址空间 一个平台只有一个物理地址空间 每个程序都认为自己独享整个平台的硬件资源 为了让多个程序有效地隔离和使用物理地址空 为了让多个程序有效地隔离和使用物理地址空 间的资源 引入虚拟地址空间 CPU负责将

4、虚拟地址转换成物理地址 使程序 能够正确访问到该虚拟地址空间所映射到的物能够正确访问到该虚拟地址空间所映射到的物 理地址空间 虚拟地址空间 04GB 虚拟地址空间虚拟地址空间 当前进程操作系统 虚拟地址空间虚拟地址空间 04GB 物理地址空间物理地址空间 RAMROM设备 帧缓 冲器 地址 根据访问的地址空间不同 索引可以分为虚 拟地址和物理地址 逻辑地址 逻辑地址 虚拟地址 物理地址 物理地址 由于x86的段机制 还有一种另外的地址 逻辑地址 逻辑地址 逻辑地址是程序直接使用的地址 逻辑地址由16位的段选择符和一个32位 的偏移量构成的偏移量构成 虚拟地址 虚拟地址又称为线性地址 虚拟地址是

5、逻辑地址转换后的结果 用 于索引虚拟地址空间于索引虚拟地址空间 当CPU使用分页机制使用分页机制时 虚拟地址必须 转换成物理地址才能访问平台内存或硬 件设备件 未启用分页机制未启用分页机制时 虚拟地址等于物理 地址地址 物理地址 为了唯一标识 处理器采用统一编址的方式将物 理内存映射为物理地址空间理内存映射为物理地址空间 物理地址用于索引物理地址空间 是CPU提交到总线用于访问平台内存和硬件设备的最 终地址 和其他地址的关系 分段机制启用 分页未启用 逻辑地址 虚拟地址 物理地址 分段 分页机制同时启用 逻辑地址 虚拟地址 物理地址 物理地址举例 分段机制 分段是一种简单的内存管理机制 把内存

6、划分成以起 始地址和长度描述的段始地址和长度描述的段 分段机制构成 四个基本部分 逻辑地址 段选择寄存器 段描述符和段 四个基本部分 逻辑地址 段选择寄存器 段描述符和段 描述符表 核心思想 使用段描述符描述段的基地址段的基地址长度以及各种属性 使用段描述符描述段的基地址段的基地址 长度以及各种属性 当程序使用逻辑地址访问内存的某个部分时 CPU通过 逻辑地址逻辑地址中的段选择符段选择符索引段描述符表段描述符表以得到该内存逻辑地址逻辑地址中的段选择符段选择符索引段描述符表段描述符表以得到该内存 对应的段描述符段描述符 根据段描述符段描述符中的基地址将逻辑地 址 逻辑地 址转换为虚拟地址虚拟地址

7、 分段机制 分页机制 分页机制是用粒度化的单位 页 管理虚拟地 址空间和物理地址空间 分页机制的核心思想 分页机制的核心思想 通过页表将虚拟地址转换成物理地址 配合旁路 转换缓冲区 TLB 加速地址转换转换缓冲区 TLB 加速地址转换 分页机制构成 主要由页表 CR3寄存器和TLB三个部件构成 分页机制 页表的概念 页表是将虚拟地址转换成物理地址的数据结构 一个地址对齐到页边界后的值称为页帧号 页 框架 实际是该地址所在页面的基地址框架 实际是该地址所在页面的基地址 虚拟地址对应的页帧号即虚拟页帧号 VFN 帧帧机 物理地址对应的页帧号即物理页帧号 PFN 或机 器页帧号 MFN 页表也可视为

8、存储VFN到PFN映射的数据结构 页表的组成 页目录项 PDE 页目录项包含页表的物理地址 页目录项包含页表的物理地址 页目录项存放在页目录 PD 中 页目录的物理地址存放在控制寄存器 CR3 也称 页目录的物理地址存放在控制寄存器 CR3 也称 为页目录基地址寄存器 PDBR 页表项 PTE 页表项 PTE 页表项包含该虚拟地址对应的PFN PTE存放在页表 PT 中存放在页表中 通过虚拟地址的偏移量0 11位和基地址 就可以 得到虚拟地址对应的物理地址 二级页表 TLB Translation Lookaside Buffer 旁路转换缓冲区TLB用来对最近用到的页面映 射进行缓存 TLB

9、提高了地址转换效率 TLB提高了地址转换效率 当CPU访问某个虚拟地址 其所在页面的映射存在于 TLB中时 无须查找页表即可进行地址转换TLB中时 无须查找页表即可进行地址转换 TLB保存的是VFN到PFN的转换 CPU从TLB获得个虚拟地址对应的PFN后要与 CPU从TLB获得一个虚拟地址对应的PFN后 要与 虚拟地址的偏移相加 得到最后的物理地址 并非从TLB中获取物理地址 虚拟地址转换成物理地址的过程 虚拟地址虚拟地址物理地址物理地址 TLB 虚拟地址虚拟地址物理地址物理地址 1245 TLB 12 3 45 操作系统的页面失操作系统的页面失 效处理程序效处理程序 进程进程 页表页表 效

10、处理程序效处理程序 页表页表 2 内存虚拟化的必要性 在未进行虚拟化之前 操作系统对内存的要求 物理地址从0开始 内存地址是连续的 内存是续的 VMM与客户OS对内存认识上的冲突 在CPU虚拟化后虚拟机监视器VMM成为硬件资源的 在CPU虚拟化后 虚拟机监视器VMM成为硬件资源的 管理者 操作系统变为了客户OS 不再管理物理资源 VMM必须对客户OS所访问的内存进行虚拟化 VMM必须对客户OS所访问的内存进行虚拟化 内存虚拟化的目标 为每个客户OS提供从0开始的内存地址空间 为每个客户OS提供连续的内存地址空间 在虚拟机之间虚拟机与VMM之间进行有效 在虚拟机之间 虚拟机与VMM之间进行有效

11、隔离 防止某个虚拟机内部的活动影响到其他的虚拟机 甚至是VMM本身 从而造成安全上的漏洞 客户机物理地址的引入 内存虚拟化的核心在于引入新的地址空间 客户机物客户机物 理理地址空间地址空间理理地址空间地址空间 引入虚拟化后 VMM负责管理和分配每个虚拟机的物 理内存客户机操作系统看到的是一个虚构的客户机理内存 客户机操作系统看到的是一个虚构的客户机 物理地址空间 指令目标地址是一个客户机物理地址 无虚拟化情况下 客户机物理地址就是实际物理地址 无虚拟化情况下 客户机物理地址就是实际物理地址 在虚拟化情况下 客户机物理地址不能直接发送到系统总 线上 VMM需要负责先将客户机物理地址转换成一个实际

12、物 理地址后 再交由物理处理器来执行 虚拟化后的三种地址空间 内存 内存虚拟化的主要任务 引入了客户机物理地址空间 内存虚拟化就主要处理以下两 个方面的问题个方面的问题 给定一个虚拟机 维护客户机物理地址到宿主机物理地址 之间的映射关系之间的映射关系 截取虚拟机对客户机物理地址的访问 根据所记录的映射 关系 将其转换成宿主机物理地址关系 将其转换成宿主机物理地址 维护VMM与客户机以及多个客户机之间的隔离性 客户机物理地址到宿主机物理客户机物理地址到宿主机物理 地址的映射 这是一个数据结构的映射问题 客户机客户机OS维护虚拟机中进程所使用的虚拟地址到客户机物理地址 客户机客户机OS维护虚拟机中

13、进程所使用的虚拟地址到客户机物理地址 的映射 用公式表示 GPA g GVA 用公式表示g GVA代表客户机虚拟地址 GPA代表客户机物理地址 VMM维护客户机物理地址到宿主机物理地址之间的映射 用公式表示 HPA f GPA HPA代表宿主机物理地址 虚拟机进程所使用的客户机虚拟地址要变成物理处理器可以执行 虚拟机进程所使用的客户机虚拟地址要变成物理处理器可以执行 的宿主机物理地址 需要经过两层转换 即 HPA f g GVA 内存虚拟化方法 基于软件的内存虚拟化方法 影子页表法 硬件辅助内存虚拟化 硬件辅助内存虚拟化 VT x ETB 类虚拟化 页表写入法 页表写入法 两次地址翻译 在客户

14、机物理地址空间后 客户机的应用程序要在物 理内存分配资源就需要以下两次转换 理内存分配资源 就需要以下两次转换 GVA GPA 客户机虚拟地址 GVA Guest Virtual Address 到客户客户机虚拟地址 GVA Guest Virtual Address 到客户 机物理地址 GPA Guest Physical Address 的地址转 换 客户OS完成 客户OS完成 GPA HPA 客户机物理地址 GPA 到宿主机物理地址 HPA Host 客户机物理地址 GPA 到宿主机物理地址 HPA Host Physical Address 的地址转换 VMM完成 GPA与HPA映射关

15、系表 为了实现GPA HPA的地址翻译 VMM为每个虚拟机动态维护一张从GPA 到HPA映射关系表 VMM截获修改客户机页表和刷新TLB的指令 根据GPA到HPA映射关系表 修改从GVA到GPA映射的操作 变成修改GVA到相应HPA映射的操作 0起始地址 引入地址映射表后 HPA只有一个0起始地址 但在不同GPA空间里 可以各 有一个从0开始地址 地址连续性 客户OS看来连续的客户机物理内存空间其对应的宿主机物理内存空间可能 客户OS看来连续的客户机物理内存空间 其对应的宿主机物理内存空间可能 是不连续的 VMM为多个虚拟机分配宿主机物理内存的灵活性 提高了宿主机物理内存的 利用率利用率 隔离

16、性 VMM通过映射表确保运行于同一宿主机上的不同客户机访问的是不同的物理 内存 即相同的客户机物理地址被映射到了不同的宿主机物理地址上 内存虚拟化方法 基于软件的内存虚拟化方法 影子页表法影子页表法 硬件辅助内存虚拟化 硬件辅助内存虚拟化 类虚拟化 影子页表 1 一份影子页表与一份 客户OS的页表对应 2 影子页表完成GPA直 2 影子页表完成GPA直 接到HPA的地址翻译 3 有的材料中 3 有的材料中 客户机虚拟地址虚拟地址 客户机物理地址物理地址 宿主机物理地址机器地址 宿主机物理地址机器地址 虚拟MMU 虚拟MMU 为了使影子页表工作 VMM要对MMU进行虚拟化 客户OS的页表不能被物理MMU直接利用进行地 址翻译 客户OS所能看到和操作的都是虚拟MMU 客户OS所维护的页表只是被客户OS载入到虚拟MMU 不能被物理MMU直接利用来进行MMU硬件实现的地址 翻译 真正被VMM载入到物理MMU中的页表是影子页表 引入影子页表的系统结构 影子页表的作用 影子页表是被物理MMU所装载使用的页表 VMM要为客户OS的每套页表都维护相应的影子页表 影子页表简化了地址翻译 影子页表简化了地

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号