在加州大学伯克利分校的John Kubiatowicz(Kuby教授)关于操作系统的视频讲座中,他提到TLB命中并不意味着相应的页面在主内存中。页面错误仍然可能发生。
从技术上讲,TLB是页表条目的缓存,因为所有页表条目都没有在主内存中提供相应的页面。 TLB也是如此。 TLB命中可能导致页面错误。
但根据教科书中给出的算法,我无法找到这样的案例。在TLB未命中内核上引用页表并更新TLB高速缓存以进行适当的地址转换。下一次TLB命中不能导致页面错误。当内核换出页面时,它会更新该页表条目的相应位并使相应的TLB无效,因此下次在主内存中加载页面之前不会有TLB命中。
那么有人可以代表kuby教授的主张的正确性,并指出一个案例,而不是TLB命中(TLB中找到的相应虚拟地址的翻译物理地址),会发生页面错误吗?