我想知道为什么我们需要在操作系统中使用分层页表来处理每个进程的页表,使用 CPU 中的 PTBR 和 PTLR 寄存器(通常存储在 PCB 中)。
感谢 PTLR,我可以检查当前进程的页表大小限制,因此它的页表将只包含其地址内存空间的条目(不会像系统地址内存空间那么大)。
如果一个进程的虚拟地址空间不是稀疏的(它的虚拟页码是 0、1、2,...),我将有一个最多包含一些 K 条目的进程页表:它的总大小最多为几个 MB ,我认为使用简单的连续数组会更好。
那么,为什么很多真正的解决方案(即x86 和x64)都是基于多级页表(或Hashed Page Tables)的呢?
谢谢。
问问题
527 次