Skip to content

2026年 408 操作系统 第 28 题

操作系统2026年选择题2分

题目

若 64 位的系统采用三级虚拟分页存储管理方式,其结构如下表所示,第三级页表所占用的页框数是( )。

| 补充位(25) | 一级页表(9) | 二级页表(9) | 三级页表(9) | 页内偏移(12) |

错因

A

把题问的"所有第三级页表占用的页框数"误读成"一个第三级页表占用的页框数"。一个三级页表 = 512 项 × 8 B/项 = 4 KB = 1 页框,没错;但三级页表不止一个——每个二级页表项都指向一个独立的三级页表,全部加起来才是题目要的"占用页框总数"。漏了"乘以三级页表个数"这一步。

B

只乘了一级索引,漏乘二级索引。算法上:三级页表的个数应当等于"一级页表条目数 × 一个一级条目下二级页表的条目数" = 。选 B 的人只算到 ,再不知怎么折半得 256,相当于只考虑了一级或二级一层的条目数。多级页表是"逐级展开"的乘法关系,必须把一级和二级的条目数都乘上。

D

把"页内偏移"也卷进了乘法。,再除以某个数得 256M,或者直接把"三级页表项总数 "误算成"占用页框数"。但页内偏移 12 位是给"页内寻址"用的,对应"三级页表条目数"。三级页表条目本身只看 9 位索引(512 项),不参与上层的乘法。

总解析

判断思路:分两步——① 一个三级页表占多少页框;② 总共有多少个三级页表。

步骤 1:一个三级页表的大小

三级页表项数
每项大小(64 位系统典型 PTE)8 字节
一个三级页表大小
页大小(由页内偏移 12 位决定)
一个三级页表占用页框数 个页框

题目给的 9-9-9-12 切分配 64 位 PTE,让"一个页表正好等于一个页框"——这是多级页表的标准设计,让每级页表自己也能像普通页一样换入换出

步骤 2:三级页表的总个数

逐级展开:

项数每级"分支因子"
一级页表每个一级条目指向 1 个二级页表
全部二级页表的总条目每个二级条目指向 1 个三级页表
三级页表总数

步骤 3:合并

为什么不是 256M:虚地址 64 位中只有 39 位()被有效使用——上面 25 位是"补充位",不参与任何索引,所以总寻址空间是 而非 。从这 字节里,按 4KB 页划分能得到 = 128M 个页框(这是数据页),但承载这些数据页所需的三级页表个数是 = 256K,差了一个数量级,因为每个三级页表覆盖了 的虚拟地址空间。

最终答案是 C(256K)

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数