请问完全内存虚拟化处理缺页异常的流程是什么?

2020-06-01 00:00:00 专区 异常 虚拟 客户机 影子

问题:

请问在完全内存虚拟化(Full Memory Virtualization,包括使用影子页表Shadow Page Table)中,处理缺页异常的流程是什么?

例如,KVM, VMWare都是使用完全内存虚拟化技术来虚拟化物理内存的。请问它们处理缺页异常的流程是什么样的呢?

3x


解答:

这个问题问了x86虚拟技术中核心、复杂的部分,相当于问操作系统是如何进行内存管理的。
我不懂,但知道一些。

VMWare具体不清楚,但机制应该差不多。像KVM这样的,page fault分为两种:客户机page fault和shadow page fault(影子页表错误)。
对于前者,直接返回注入(虚拟机中一个术语,通知中断、异常等事件的发生,实质是跳转到客户操作系统对应的handler去执行)给客户机,由客户机自己的page fault handler处理。对于shadow fault,是由于客户机页表和影子页表不一致产生的,此时根据客户机页表项,重新生成影子页表对应条目。  

文章来源CU社区:请问完全内存虚拟化处理缺页异常的流程是什么?

相关文章