1.在一个系统虚拟机环境里,host平台上的真是硬件资源被guest虚拟机共享,硬件资源的分配和访问由软件层--虚拟监控程序(VMM)负责管理.
2.VMM拥有真实的系统硬件资源,它会决定各个需要资源的虚拟机之间的访问调度策略:资源划分或者分时共享.
3.host计算机和guest技术使用相同的ISA类型的虚拟机.
4.VMM针对虚拟机的状态管理:
@ 在一个虚拟机系统内,每个虚拟机都有他自己的Context 信息.比如寄存器信息.一个guest的寄存器状态可能会作为host的一块Memory保存.
@ 间接方式:主机的Memory的固定位置保存每个guest的状态.使用VMM管理的指针来指出当前活跃的guest机状态.
@ 直接方式:将当前活跃的guest机状态信息直接复制到主机存储结构的正常位置,而当另一个guest被激活时再将其copy.
5.VMM必须保持对所有的硬件资源的全局控制.可以通过截获那些对特权资源的访问,从而实现对整体资源的控制.
@针对tickout间隔计时器.VMM会自己首先处理,而不会让各个guest虚拟机内的操作系统去直接处理它.
@其间,中断处理代码(Dispatcher)完成了包括1.save guest OS's Context. 2.决定下一个被激活的guest OS和加载下一个guest OS的Context.
@针对用户模式遇到特权指令,必须由VMM截获和仿真它.
6.@本地虚拟机.
@用户模式host虚拟机系统.
@双重模式host虚拟机系统.
宿主虚拟机系统:将虚拟机安装在已运行的现有OS中的主机平台上.在该模式下,VMM利用host OS上的可用操作来控制和管理guest虚拟机需要的硬件资源.
通过内核扩展,驱动技术.
7.资源虚拟化---处理器
@虚拟化处理器的关键在于客户机指令的执行,
1.指令仿真
2.Direct Native Execution.适用于host机和guest机的ISA一致的情况.
当一条指令需要被仿真时,就会自然触发一个trap,而trap的Dispatcher会找到适当的解释程序,解释这条指令,然后将控制权返回.
8.VMM处理特权指令分析:
@Load PSW (LPSW,IBM System/370):系统模式下,这条指令用户存储器中的一个双字加载处理器状态字.
@Set CPU Timer:系统模式下,这条指令用于存储器某个位置的内容来设置CPU间隔计数器.
@控制敏感指令. 试图改变系统资源配置的指令.
@行为敏感指令的行为或者运行结果依赖于系统资源配置(POPF/LRA)
@无害指令
9.VMM的功能分为:调度器,分配器和一组解释程序.
10.
@递归虚拟机
@处理问题指令
@关键指令的修补:
#发现关键指令的一种方法是VMM在每个客户基本块的首部取得控制权,然后循序扫描直到块的尾部,对于扫描中发现的关键指令则用一个到VMM的trap来替换.
#同时在VMM辅助表里保存该条关键指令和它的原始地址.而另一个到VMM的trap操作则放置在块的尾部,使得VMM在块运行结束后重新获得控制权,以便对下一个块进行扫描和修补
@高速缓存仿真代码.