请问完全内存虚拟化处理缺页异常的流程是什么?
问题:
请问在完全内存虚拟化(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社区:请问完全内存虚拟化处理缺页异常的流程是什么?
相关文章