Appearance
题目
某计算机采用二级页表的分页存储管理方式,按字节编址,页大小为2¹⁰ B,页表项大小为 2B,逻辑地址空间大小为2¹⁶页,则页目录表中包含表项的个数至少是( )。
错因
A
可能算成 ——但 是一页能放的字节数,一页能放的页表项数是 。把"页大小(字节)"和"页能放多少 PTE"混了,结果偏少。
C
可能算成 ——可能用了"页表项数 = "这种错估算。每个页表项 2B, 项每页才对。把 2B 写成 4B 算就会得到 256。
D
把 512 当成页目录项数——但 512 是每个二级页表能放的项数(一个二级页表占一页 = B / 2B = 512 项),不是页目录项数。把"二级页表大小"和"页目录大小"混淆方向。
总解析
二级页表结构:页目录 → 二级页表 → 页框。要算页目录有多少项。
第 1 步:算总页数
逻辑地址空间 = 页 → 总共要 个页表项(每个虚拟页对应一个 PTE)。
第 2 步:算一个二级页表能装多少项
一个二级页表占用一页内存:
第 3 步:算需要多少个二级页表
总 PTE 数 / 每页能装的 PTE 数:
第 4 步:每个二级页表对应一项页目录项
页目录里的每一项指向一个二级页表 → 页目录项数 = 二级页表数 = 128。
| 项 | 值 |
|---|---|
| 总页表项数 | |
| 每个二级页表的项数 | 512 |
| 二级页表数 | 128 |
| 页目录项数 | 128 |
速记:两次除法——总 PTE 数除以"每页 PTE 数" = 二级页表数 = 页目录项数。一次错可能落到 64 / 256 / 512。
最终答案是 B。