页表映射示例
一级页表
上图一级页表中假设以 4KB 物理页为映射单位,一个进程 4GB 的虚拟地址空间需要:4GB/4KB = 1MB 个页表项,每个页表项目占用 4 个字节所以每个一级页表需要 4MB 的存储空间,每个进程需要 4MB 的内存存储表, 100 个进程就是 400MB。
- 虚拟地址:0x8003160
- 虚拟页号偏移:4K为映射单位,低 12bit 是虚拟页号偏移,即:0x160
- 虚拟页号:[31:12] 为虚拟页号,即 0x80003
根据上图的 MMU 转换原理,从页表中找到物理页号为 0x60003
所以物理地址 PA = 物理页号 + 物理页号偏移 = 0x60003 * 4096 + 0x160 = 0x60003160
二级页表
二级页表:
- 一级页表 PGD: 一共 4096项,每个 ent