页表映射示例
一级页表

上图一级页表中假设以 4KB 物理页为映射单位,一个进程 4GB 的虚拟地址空间需要:4GB/4KB = 1MB 个页表项,每个页表项目占用 4 个字节所以每个一级页表需要 4MB 的存储空间,每个进程需要 4MB 的内存存储表, 100 个进程就是 400MB。
- 虚拟地址:0x8003160
- 虚拟页号偏移:4K为映射单位,低 12bit 是虚拟页号偏移,即:0x160
- 虚拟页号:[31:12] 为虚拟页号,即 0x80003

根据上图的 MMU 转换原理,从页表中找到物理页号为 0x60003
所以物理地址 PA = 物理页号 + 物理页号偏移 = 0x60003 * 4096 + 0x160 = 0x600031
本文通过实例介绍了MMU中的页表映射,详细讲解了一级页表和二级页表的工作原理。一级页表占用4MB内存,而二级页表由16KB的一级页表和4MB的二级页表组成,能更有效地利用物理内存,尤其适用于不需映射全部虚拟地址空间的进程。
订阅专栏 解锁全文
1722

被折叠的 条评论
为什么被折叠?



