欢迎来到天天文库
浏览记录
ID:33606606
大小:334.19 KB
页数:58页
时间:2019-02-27
《虚拟化技术与云计算2_cpu虚拟化》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、虚拟化技术与云计算商彦磊shangyl@bupt.edu.cn北京邮电大学网络技术研究院网络与交换技术国家重点实验室教学内容绪论计算体系架构与虚拟化技术虚拟化概述CPU的虚拟化内存虚拟化I/O虚拟化虚拟化实施与应用虚拟化的现状与未来CPU虚拟化处理器虚拟化概述可虚拟化条件指令模拟CPU软件虚拟化方案CPU硬件虚拟化方案虚拟环境与可虚拟化条件虚拟环境由三部分组成:硬件、虚拟机监视器(VMM)及虚拟机虚拟机可以视为物理机的一种高效隔离的复制:同质、高效、资源受控虚拟机的三个特点
2、决定了不是所有体系结构都可以虚拟化虚拟机虚拟机监视器硬件特权指令与敏感指令多数计算机体系结构都有2个或以上的特权级,用来分隔系统软件和应用软件。系统中有一些操作和管理关键系统资源的指令会被定为特权指令特权指令只有在最高特权级上能够正确执行如果在非最高特权级上运行,特权指令会引发异常,处理器会陷入到最高特权级在虚拟化后,有一类指令称为敏感指令,即操作特权资源的指令所有特权指令都是敏感指令;并不是所有敏感指令都是特权指令陷入再模拟为使VMM完全控制系统资源,不允许直接执行虚拟机操作系统(客户OS
3、)的敏感指令陷入再模拟系统的所有敏感指令都是特权指令(前提)将VMM运行在最高特权级,客户OS运行在非最高特权级陷入再模拟:当客户OS因执行敏感指令(此时也是特权指令)而陷入到VMM时,VMM模拟执行引起异常的敏感指令虚拟化漏洞一个系统是否可虚拟化:关键在该系统对敏感指令的支持上所有指令都是特权指令:可虚拟化的结构无法支持在所有敏感指令上触发异常:不是可虚拟化的结构,即存在“虚拟化漏洞”一个结构存在虚拟化漏洞:存在敏感指令不属于特权指令存在虚拟化漏洞系统的虚拟化方案可采用一些方法弥补或避
4、免虚拟化漏洞模拟的方法:最直接解释执行:取一条指令,模拟出这条指令执行的效果,再取下一条指令不存在陷入问题,避免了虚拟化漏洞性能差既要填补漏洞,又要保证性能,只能使用辅助手段:直接在硬件层面填补虚拟化漏洞通过软件避免虚拟机中使用到无法陷入的敏感指令3个概念1:虚拟寄存器未虚拟化的系统中,OS直接访问物理处理器,处于最高特权级,可以控制系统的所有关键资源:寄存器、内存、I/O外设等虚拟化后,VMM接管物理处理器,以前的OS变成客户OS降级到非最高特权级。试图访问关键资源的指令成为敏感指令。
5、VMM通过多种方法保证这些敏感指令的执行能够触发异常,从而陷入到VMM进行模拟当客户OS试图访问关键资源时,该请求并不会真正发生在物理寄存器。VMM会通过准确模拟物理处理器的行为,将其访问定位到VMM为其设计与物理寄存器对应的“虚拟”的寄存器上。3个概念2:上下文进程上下文:某个时刻物理处理器中与运算相关的寄存器的状态构成了当前进程上下文当OS进行调度时,当前进程的上下文(即寄存器状态)被保存在特定的内存区域中,而下而下个程的下一个进程的上下文被恢复到相应的寄存器中,从进程的角度看就好像从未被中断
6、一样。虚拟处理器上下文更复杂:客户OS本身包含许多敏感指令,会试图访问和修改物理处理器上定义的所有寄存器,这种访问和修改会被VMM重定位到虚拟处理器上。对虚拟处理器,其上下文包括了更多的系统寄存器。3个概念3:虚拟处理器从客户OS来讲,其运行的虚拟处理器需要具备与其“期望”的物理处理器一致的功能和行为从VMM角度,虚拟处理器是其需要模拟完成的一组功能集合。虚拟处理器的功能可以由物理处理器和VMM共同完成对非敏感指令,物理处理器直接解码处理其请求,并将相关效果直接反映到物理寄存器上;对于敏感指令
7、,VMM负责陷入再模拟,从程序角度也就是一组数据结构与相关处理代码的集合数据结构用于存储虚拟寄存器的内容相关处理代码负责按照物理处理器的行为将效果反映到虚拟寄存器上。VMM的陷入模式VMM陷入利用了处理器的保护机制,使用中断和异常来完成的,基于处理器保护机制触发的异常敏感指令的执行虚拟机主动触发异常。即陷阱异步中断,包括处理器内部中断源和外部的设备中断源CPU虚拟化方案CPU软件虚拟化方案模拟执行<->基于软件的完全虚拟化解释执行代码扫描与修补二进制代码翻译直接源代码改写<->类
8、虚拟化CPU硬件虚拟化方案CPU软件虚拟化方案在硬件设计未考虑虚拟化而导致虚拟化漏洞时,首先考虑到基于软件方式实现虚拟化两种可行的基于软件的虚拟化解决方案:模拟执行<->基于软件的完全虚拟化直接代接源代码改写<->类虚拟化模拟技术所有的虚拟化形式都可以用模拟来实现。三种常见的模拟技术:解释执行是最简单最直接的模拟实现方式代码扫描与修补二进制代码翻译不同体系结构的虚拟化比较困难,通常使用解释执行在一种硬件体
此文档下载收益归作者所有