某系统采用 32 位虚拟地址、4KB 页面和二级页表。一级页号与二级页号各占 10 位,则虚拟地址的正确划分是()。
页面大小为 4KB=2^12B,因此低 12 位表示页内偏移。32 位地址还剩 20 位虚拟页号,题目说明两级各占 10 位,所以划分为 10+10+12。
选项分析
错误。10 位偏移只能表示 1KB 页面,不符合 4KB 条件。
错误。把一级页号和页内偏移的位数对调了。
正确。10+10+12=32,且 12 位偏移恰好覆盖 4KB 页面。
错误。页式存储必须保留页内偏移,两级页号也不能占满全部地址。
本题为什么容易错
有些同学见到两级页表就先把 32 位平分。页表层数只切分页号,页内偏移必须先由页面大小锁定。
简短答案
32 位虚拟地址、4KB 页面时,10-10-12 地址结构怎么理解,正确答案是 C(一级页号 10 位、二级页号 10 位、页内偏移 12 位)。页面大小为 4KB=2^12B,因此低 12 位表示页内偏移。32 位地址还剩 20 位虚拟页号,题目说明两级各占 10 位,所以划分为 10+10+12。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 一级页号 10 位、二级页号 12 位、页内偏移 10 位 | 本题干扰项 | 错误。10 位偏移只能表示 1KB 页面,不符合 4KB 条件。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 一级页号 12 位、二级页号 10 位、页内偏移 10 位 | 本题干扰项 | 错误。把一级页号和页内偏移的位数对调了。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 一级页号 10 位、二级页号 10 位、页内偏移 12 位 | 本题正确答案 | 正确。10+10+12=32,且 12 位偏移恰好覆盖 4KB 页面。 | 看到题干核心场景时优先联想到它 |
| 一级页号 16 位、二级页号 16 位,不需要页内偏移 | 本题干扰项 | 错误。页式存储必须保留页内偏移,两级页号也不能占满全部地址。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- 一级页号 10 位、二级页号 12 位、页内偏移 10 位:错误。10 位偏移只能表示 1KB 页面,不符合 4KB 条件。
- 一级页号 12 位、二级页号 10 位、页内偏移 10 位:错误。把一级页号和页内偏移的位数对调了。
- 一级页号 16 位、二级页号 16 位,不需要页内偏移:错误。页式存储必须保留页内偏移,两级页号也不能占满全部地址。
知识点详解
多级页表不减少虚拟地址空间,而是把庞大的线性页表拆开。对于稀疏地址空间,只需为实际使用的虚拟区域分配对应的下级页表。代价是页表遍历可能增加内存访问次数,因此处理器通常结合 TLB 缓存近期页表项。每个下级页表覆盖一段连续虚拟空间,未使用的区段无需创建对应页表。
备考速记
页面先定偏移,剩余才分几级页号。
操作系统在操作系统场景中的作用
操作系统在本题中的核心价值,是解决“某系统采用 32 位虚拟地址、4KB 页面和二级页表。一级页号与二级页号各占 10 位,则虚拟地址的正确划分是()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。
同类题怎么考
- 根据页面大小和地址长度拆分多级页表字段。
- 计算单级页表过大时,多级页表按需分配节省了多少空间。
操作系统在软件设计师软考中的考法
软考选择题通常不会只考概念定义,还会把操作系统放到操作系统场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。
解题思路
先把“二级”放一边,第一步只看页面大小。4KB 是 4096 字节,也就是 2^12,所以地址最低 12 位永远留给页内偏移。32 位减去 12 位,还剩 20 位用来找虚拟页。题目已经把这 20 位平均拆成一级 10 位、二级 10 位,答案就是 10-10-12。
考点定位
页面大小直接决定偏移位数,与页表有几级无关;多级页表只是把虚拟页号继续分段。
易错提醒
- 把 4KB 写成 4000B,导致无法用 2 的幂求位数。
- 认为二级页表会增加虚拟地址总位数。
- 混淆页表项大小和页面大小。
备考提示
- 所有地址转换题先写页面大小等于 2 的多少次方。
- 再检查一级索引项数、二级索引项数和页表项大小是否能装入一页。
你可能还想了解
- 多级页表为什么能节省内存?
- 4KB 页面为什么是 12 位偏移?
- 二级页表和 TLB 分别解决什么问题?
本文小结
4KB等于2^12字节,因此页内偏移固定为12位;32位虚拟地址剩下20位虚拟页号,再按题意拆成一级10位和二级10位,形成10-10-12结构。