面试题答案
一键面试多级页表基本结构
- 原理:将页表进行分级,以树形结构组织。
- 以二级页表为例:
- 一级页表:存放在内存中,每个页表项指向一个二级页表。
- 二级页表:同样存放在内存,每个二级页表项指向具体的物理页框。
- 地址转换:逻辑地址被分为多个部分,如一级页号、二级页号和页内偏移。通过一级页表找到对应的二级页表,再从二级页表找到物理页框,结合页内偏移得到物理地址。对于更多级页表,原理类似,逐级查找。
相较于单级页表在解决内存管理问题上的优势
- 节省内存空间:
- 单级页表:若系统支持大量逻辑页,页表会非常庞大,占用大量连续内存空间。例如,32 位地址空间,页面大小为 4KB,页表项大小为 4B,则页表大小为 (2^{32}/4KB \times 4B = 4MB),这对于内存是较大的开销。
- 多级页表:只有一级页表常驻内存,其他级页表可按需调入。比如二级页表,只有一级页表项对应的二级页表在需要时才调入内存,减少了内存的占用。
- 提高内存利用率:多级页表允许不连续分配页表空间,避免了单级页表因需要连续内存空间而可能造成的内存碎片化问题,使内存分配更加灵活高效。
- 支持更大的地址空间:多级页表的层次结构可以更好地适应更大的逻辑地址空间,随着地址空间位数增加,多级页表通过分级查找的方式,依然能有效管理,而单级页表在面对极大地址空间时,内存消耗和查找效率问题会更严重。