x86硬件辅助虚拟化之虚拟机与VMM(1)(5)
CPU虚拟化
在VMM对硬件资源虚拟化的过程中,CPU虚拟化是非常重要的一个环节。CPU虚拟化是为物理机器上的每一个虚拟机提供一个或者多个虚拟CPU(简称VCPU),每个VCPU分时复用物理CPU,在任意时刻一个物理CPU只能被一个VCPU使用。VMM要在整个过程中合理分配时间片以及维护所有VCPU的状态(资深一些的读者应该会联想到现代多任务操作系统中TSS工作机理以及超线程技术中涉及到的上下文切换,是不是有似曾相识的感觉呢?),当进行VCPU切换时,要保存当前VCPU的状态,将被调度的VCPU状态载入物理CPU,可见如何保证VCPU的正确运行和合理调度是CPU虚拟化技术中需要解决的问题。
Type-2型VMM更易使用但是会损失一定效率