只要程序执行上下文切换,TLB就会改变?


1

如果每次程序执行上下文切换时TLB都会被刷新,那么当该程序再次运行时,TLB会在哪里重新加载其表?此外,如果表被刷新,那么其他程序如何阻止写入属于该程序的内存?

Answers:


1

它从空开始,并在访问发生时重新加载。

TLB是一种优化,可以避免读取较慢的页表信息以定位应用程序内存; 特别是,内存访问控制是从页表而不是TLB完成的。

你清除它的原因是双重的:因为如果你没有,那么下一个进程的访问可能会进入你进程的内存(与你的假设完全相反!),并且因为它可以被用来窥探你的进程的记忆和/或活动。


我在一本书中读到TLB有自己的表,只有在自己的表中找不到任何内容时才会进入页表。
tony_sid 2011年

0

TLB从页表重新加载。页表始终具有最新映射。

像处理器缓存一样,TLB只是页表中的内容的副本,因此刷新它不会丢失信息。此外,即使刷新TLB,一个程序的内存也不会分配给其他程序,因此它们无法写入该程序的内存。

有关TLB的详细信息,请参阅我关于TLB的调查报告

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.