当出现页面错误时,您是否将页面读取到 TLB 和 PT 中?



我目前正在学习虚拟内存,我遇到了一些关于TLB未命中和页面错误的问题。我的理解是:

当您错过TLB时,请转到PT。如果 PT 命中,那就太好了,您将 PT 条目从内存复制到 TLB。

当您有 TLB 未命中时,当您转到 PT 时也会错过,然后转到磁盘并将页面复制到 PT。

此时,您已将页面复制到 PT,但是否更新了 TLB?例如,您是否也将页面复制到 TLB?还是您只更新 PT?

谢谢!

你省略了一些步骤。首先,检查页表条目是否存在。很可能不是。在这种情况下,您有一个内存访问陷阱(某种类型,取决于系统对它的调用)。其次(条目存在),您将对页面和处理器模式的访问与页表条目允许的访问进行比较。如果不允许,则存在内存访问陷阱。第四,检查页面是否已映射到内存。如果是这样,一切都很好。否则,将生成页面错误异常。操作系统必须以某种方式处理这个问题。

第五,操作系统需要重新启动导致故障的指令。

此时,您可能可以将页面添加到 TLB。