某分页存储系统的页面大小为 4KB,逻辑地址为 0x12345。该地址对应的页号和页内偏移分别是()。
4KB=4096B=2^12B,因此逻辑地址低 12 位是页内偏移,其余高位是页号。十六进制每位表示 4 个二进制位,低 12 位正好是末尾 3 个十六进制数字 345,所以页内偏移为 0x345,剩余高位 0x12 是页号。
选项分析
错误。该拆法只给偏移保留了 8 位,相当于页面大小 256B。
正确。4KB 页面需要 12 位偏移,即 3 个十六进制数位,得到页号 0x12、偏移 0x345。
错误。给偏移保留 16 位相当于页面大小 64KB。
错误。只有地址恰好位于页首时偏移才为 0,本地址末 12 位并非全 0。
本题为什么容易错
最容易错在 KB 与位数的换算:4KB 不是 2^4,也不是十进制 4000。存储管理题通常按 1KB=1024B 计算,因此 4KB=2^12B。
简短答案
分页存储中,逻辑地址的页号和页内偏移怎么算,正确答案是 B(页号 0x12,页内偏移 0x345)。4KB=4096B=2^12B,因此逻辑地址低 12 位是页内偏移,其余高位是页号。十六进制每位表示 4 个二进制位,低 12 位正好是末尾 3 个十六进制数字 345,所以页内偏移为 0x345,剩余高位 0x12 是页号。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 页号 0x123,页内偏移 0x45 | 本题干扰项 | 错误。该拆法只给偏移保留了 8 位,相当于页面大小 256B。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 页号 0x12,页内偏移 0x345 | 本题正确答案 | 正确。4KB 页面需要 12 位偏移,即 3 个十六进制数位,得到页号 0x12、偏移 0x345。 | 看到题干核心场景时优先联想到它 |
| 页号 0x1,页内偏移 0x2345 | 本题干扰项 | 错误。给偏移保留 16 位相当于页面大小 64KB。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 页号 0x12345,页内偏移 0 | 本题干扰项 | 错误。只有地址恰好位于页首时偏移才为 0,本地址末 12 位并非全 0。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- 页号 0x123,页内偏移 0x45:错误。该拆法只给偏移保留了 8 位,相当于页面大小 256B。
- 页号 0x1,页内偏移 0x2345:错误。给偏移保留 16 位相当于页面大小 64KB。
- 页号 0x12345,页内偏移 0:错误。只有地址恰好位于页首时偏移才为 0,本地址末 12 位并非全 0。
知识点详解
分页系统把逻辑地址分成页号和页内偏移。页号用于查询页表,获得页框号及有效位、访问权限等信息;页内偏移在地址转换过程中保持不变。若页面大小是 2^n 字节,偏移字段固定为 n 位。得到页框号后,物理地址可按“页框号×页面大小+页内偏移”计算。
备考速记
页面多大先化成 2 的幂,低几位由指数决定。
页内偏移在页内偏移场景中的作用
页内偏移在本题中的核心价值,是解决“某分页存储系统的页面大小为 4KB,逻辑地址为 0x12345。该地址对应的页号和页内偏移分别是()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。
同类题怎么考
- 给定页面大小和逻辑地址,求页号与页内偏移。
- 给出页表中的页框号,进一步拼接或计算物理地址。
- 判断某逻辑地址是否越界或对应页面是否在内存。
页内偏移在软件设计师软考中的考法
软考选择题通常不会只考概念定义,还会把页内偏移放到页内偏移场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。
解题思路
这题先别把 0x12345 转成十进制。4KB 是 2^12,而一个十六进制数位正好 4 位二进制,所以从右边切 3 个十六进制数位:345 留在页内,左边的 12 就是页号。这样算得更快,也更不容易在除法里出错。
考点定位
页面大小为 2^n 字节时,逻辑地址低 n 位为页内偏移,高位为页号;也可用页号=floor(地址/页面大小)、偏移=地址 mod 页面大小计算。
易错提醒
- 把页面大小 4KB 误认为偏移只需要 4 位。
- 十六进制拆分时忘记每一位等于 4 个二进制位。
- 把页号和页框号混为一谈;逻辑地址先给出页号,查页表后才得到页框号。
备考提示
- 遇到 1KB、2KB、4KB、8KB 页面,先分别写成 2^10、2^11、2^12、2^13。
- 十六进制地址在偏移位数为 4 的倍数时可以直接按数位切分,否则再转二进制。
你可能还想了解
- 4KB 页面为什么需要 12 位页内偏移?
- 页号和页框号有什么区别?
- 怎样由页框号计算物理地址?
- 页面大小不是十六进制整位时怎样拆地址?
本文小结
4KB=2^12B,逻辑地址低12位是页内偏移。0x12345 的末3个十六进制数位对应12位,所以偏移为0x345,剩余高位0x12为页号。