1

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

当你有一个 TLB 未命中时,你去 PT。如果 PT 有命中,那么很好,您将 PT 条目从内存复制到 TLB。

当你有一个 TLB 未命中,并且当你去 PT 时你也错过了,然后你去磁盘并将页面复制到 PT。

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

谢谢!

4

1 回答 1

1

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

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

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

于 2015-04-22T03:34:00.023 回答