作业长度(6 页)与页号位数的关系:页号位数≥最大页号所需位数
- 作业长度 6 页意味着页号范围是 0~5(共 6 页),理论上 3 位二进制(2³=8≥6)即可表示。
- 但由题目算得页号占 5 位,因此:
- 即使作业只有 6 页,页号仍需用 5 位表示,例如页号 2 表示为
00010
(左补 2 个 0)。 - 补位不改变数值,只是用固定位数满足系统地址划分规则,与作业实际长度无关。
- 即使作业只有 6 页,页号仍需用 5 位表示,例如页号 2 表示为
核心问题:作业页数(6 页)和页号位数(5 位)的关系
1. 作业只有 6 页,所以页号最大是 5
- 比如你有 6 本作业本(0~5 号),每次只能用这 6 本中的一本,不会用到第 7 本(6 号)或更多。
- 5 的二进制是
101
,但系统规定页号必须用 5 位表示,所以补成00101
(前两位是 0)。
2. 5 位二进制能表示的最大页号是 31,但作业只用 0~5
- 5 位二进制能表示 0~31(共 32 个数),但你的作业只有 0~5 号,所以合法页号的 5 位二进制最高位一定是 0:
- 页号 5:
00101
(最高位第 4 位是 0) - 页号 31:
11111
(最高位是 1,但作业不用这么大的页号)
- 页号 5:
3. 当逻辑地址合法时(作业内的页号),最高位必然是 0
- 假设逻辑地址是合法的(比如访问作业内的页号 2),转成 5 位二进制是
00010
,最高位是 0。 - 此时十六进制转二进制后,比如
0A5C
转 16 位是0000101001011100
,最高位是 0,去掉后不影响页号(前 5 位还是00010
)。
4. 如果最高位是 1,说明地址非法(超出作业范围)
- 比如页号是 16(二进制
10000
),5 位二进制是10000
,最高位是 1,但你的作业没有 16 号作业本,这是非法地址。 - 这种情况属于程序错误,系统会报错,不是正常地址转换要处理的情况。
一句话总结
- 合法地址(作业内的 6 页)的页号用 5 位二进制表示时,最高位一定是 0,所以十六进制转二进制后的 16 位最高位也是 0,可以安全去掉。
- 非法地址(页号≥6)的最高位可能是 1,但这些地址本身就是错误的,和正常转换无关。
就像你去食堂打饭,只能用 0~5 号餐盘(作业 6 页),而餐盘柜有 32 个格子(5 位页号),你用的餐盘格子号(0~5)的二进制最高位肯定是 0,不会用到最高位是 1 的格子(6~31 号)。