页号转换,偏移保留
分页地址通常拆成虚拟页号与页内偏移。页表查出对应物理页框号,再与原来的偏移组合为物理地址;相邻虚拟页因而可以放在不相邻的物理页框中。
例如采用4 KiB页面时,页内位置需要12位。这个例子说明转换的两部分职责,不表示所有系统都固定使用同一种页面大小;具体格式须按架构和所选分页模式解释。
参考:[1]
表项还保存权限与状态
页表项往往不只存一个地址,还包含有效、驻留、读写执行权限、已访问或已修改等状态。具体位的含义与组合不同,系统有时还要查询额外记录才能解释一次异常。
常见的进程地址空间分别有自己的映射,因此相同虚拟地址可以指向不同物理内容。受控共享又允许多个映射引用同一页框;是否可以读写,仍取决于各自权限与共享安排。
多级结构减少空洞开销
简单线性页表为每个可能虚拟页留一项,大地址空间即使只用少数区域,也可能浪费大量表空间。多级页表把映射组织成分层结构,让完全未用的区域不必分配相应下层表页。
这种节省有查找成本:转换缓存未命中时,可能要逐级读取表项。TLB缓存已经取得的转换以减少重复遍历。因此页表设计同时涉及稀疏空间、分配复杂度和访问延迟,不能只比较表的总字节数。