Appearance
题目
一个分段存储管理系统中,地址长度为 32 位,其中段号占 8 位,则最大段长是( )。
错因
A
把段号位数当成段长——8 位是段号字段(最多 个段),不是段内偏移。段长由段内偏移位数决定,不是段号位数。把"段号"和"段长"两个不同概念的位数混了。
B
可能凑了一个中间值(16 位偏移 → )——但段号 8 位、地址总 32 位 → 段内偏移 = 32 - 8 = 24 位,不是 16。把字段长算错了。
D
把整个地址空间当段长——但段长是单个段的最大字节数,不是整个虚拟地址空间。地址空间 = 段数 × 段长上限 = 字节,但每段最大只有 。
总解析
分段地址结构:
| 字段 | 位数 | 含义 | 取值范围 |
|---|---|---|---|
| 段号 | 8 | 第几个段 | 0 ~ = 255(最多 256 段) |
| 段内偏移 | 24 | 段内第几字节 | 0 ~ |
最大段长 = 段内偏移能寻址的最大字节数:
关键判定:段内偏移位数决定单段最大长度——这是段内寻址的范围。段号位数决定有多少段,跟单段长度无关。两者乘起来 () 是整个地址空间。
| 项 | 计算 | 结果 |
|---|---|---|
| 地址总位数 | — | 32 |
| 段号位数 | 题给 | 8 |
| 段内偏移位数 | 32 - 8 | 24 |
| 最大段长 | 字节 |
最终答案是 C。