Memory 内核如何为页表分配空间?

Memory 内核如何为页表分配空间?,memory,linux-kernel,mmu,Memory,Linux Kernel,Mmu,我想说的是,首先进程会被分配到顶级页面表的一个页面 GPD PD1 PD2 PD3 +-----+ +------+ +------+ +------+ + 0 + +------+ +------+ +------+ + 0 + +------+ +------+ +------+ + 0 + +------+ +------+ +------+ +-----+ +------+ +------+ +------+ 总计:GPD为1页 现在,

我想说的是,首先进程会被分配到顶级页面表的一个页面

  GPD      PD1     PD2      PD3   
+-----+ +------+ +------+ +------+
+  0  + +------+ +------+ +------+
+  0  + +------+ +------+ +------+
+  0  + +------+ +------+ +------+
+-----+ +------+ +------+ +------+
总计:GPD为1页

现在,假设程序分配了2页(8KB)

总计:2页,GPD为1页,PD1为1页

现在,如果上一个程序需要另外两页:

  GPD      PD1     PD2      PD3 
+-----+ +------+ +------+ +------+
+  1  + +  22  + +  24  + +------+
+  2  + +  62  + +  0   + +------+
+  0  + +  16  + +  0   + +------+
+-----+ +------+ +------+ +------+
总计:3页,1页用于GPD,1页用于PD1,1页用于PD2

真的是这样吗

  GPD      PD1     PD2      PD3 
+-----+ +------+ +------+ +------+
+  1  + +  22  + +  24  + +------+
+  2  + +  62  + +  0   + +------+
+  0  + +  16  + +  0   + +------+
+-----+ +------+ +------+ +------+