ITPub博客

首页 > 自动化运维 > > 请问完全内存虚拟化处理缺页异常的流程是什么?

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

作者:飘絮絮絮丶 时间:2020-06-01 14:07:44 0 删除 编辑

问题:

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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3137261/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-09-09

  • 博文量
    2646
  • 访问量
    42191