电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

KVM 介绍(2):CPU 和内存虚拟化

KVM 介绍(2):CPU 和内存虚拟化_第1页
1/44
KVM 介绍(2):CPU 和内存虚拟化_第2页
2/44
KVM 介绍(2):CPU 和内存虚拟化_第3页
3/44
(1) 介绍和安装 (2) CPU 和内存虚拟化 (3) 1/0 QEMU 全虚拟化和准虚拟化 ( Para-virtulizaiton ) (4) 1/0 PCI/PCIe 设备直接分配和 SR-IOV (5) libvirt 介绍 (6) Nova 通过 libvirt 管理 QEMU/KVM 虚机 (7) 快照 ( snapshot ) (8) 迁移 ( migration ) 1. 为什么需要 CPU 虚拟化X86 操作系统是设计在直接运行在裸硬件设备上的,因此它们自动认为它们完全占有计算机硬件。x86 架构提供四个特权级别给操作系统和应用程序来访问硬件。Ring 是指 CPU 的运行级别,Ring0 是最高级别,Ring1 次之,Ring2 更次之......就 Linux+x86 来说,讨算机系统窝用户和操作系统的奮Ring3应用程序的代码运行在最低运行级别上 ring3 上,不能做受控操作。如果要做,比如要访问磁盘,写文件,那就要通过执行系统调用(函数),执行系统调用的时候,CPU 的运行级别会发生从 ring3 到 ringO 的切换,并跳转到系统调用对应的内核代码位置执行,这样内核就为你完成了设备访问,完成之后再从 ringO 返回 ring3。这个过程也称作用户态和内核态的切换。那么,虚拟化在这里就遇到了一个难题,因为宿主操作系统是工作在 ringO 的,客户操作系统就不能也在 ringO 了,但是它不知道这一点,以前执行什么指令,现在还是执行什么指令,但是没有执行权限是会出错的。所以这时候虚拟机管理程序(VMM)需要避免这件事情发生。虚机怎么通过 VMM 实现 GuestCPU 对硬件的访问,根据其原理不同有三种实现技术:1. 全虚拟化2. 半虚拟化3. 硬件辅助的虚拟化1.1 基于二进制翻译的全虚拟化(FullVirtualizationwithBinaryTranslation)GuestOSVMDirectExecutionofUserRequestsHostComputerSystemHardwareBinaryTranslationofOSRequestsUserApps客户操作系统运行在 Ring1,它在执行特权指令时,会触发异常(CPU 的机制,没权限的指令会触发异常),然后 VMM 捕获这个异常,在异常里面做翻译,模拟,最后返回到客户操作系统内,客户操作系统认为自己的特权指令工作正常,继续运行。但是这个性能损耗,就非常的大,简单的一条指令,执行完,了事,现在却要通过复杂的异常处理过程。异常"捕获(trap)-翻译(handie)-模拟(emulate”) 过程:GuestOSexecuteaprivilegedinstructionHardwareexception(trap)e.g.generalprotectionfauhVMM'sexe&ptloribaridleremulatethephviSegedinytru 匚廿 on1.2.超虚拟化(或者半虚拟...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

KVM 介绍(2):CPU 和内存虚拟化

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部