题目重述
某系统采用页式内存管理,主存用户可用区域共 640K字节,被划分为 160块(块号0~159)。现有一作业的地址空间包含 4页(页号0~3),分别被分配到主存的第 2、4、1、5 块中。请回答以下问题:
- 每一页的长度为多少字节?
- 写出该作业的页表。
- 计算每一页在主存中的起始地址(用十六进制表示)。
解题过程
(1) 计算页的长度
关键逻辑:主存总容量被均匀划分为块,页与块大小相等。
- 主存总容量 = 640K字节 = 640 × 1024字节 = 655,360字节
- 块数 = 160块
(2) 构造页表
页表的作用:记录逻辑页号与物理块号的映射关系。
根据题目描述,作业的页号0~3分别被分配到主存的块号2、4、1、5。
页表如下:
页号(逻辑页) | 块号(物理块) |
---|---|
0 | 2 |
1 | 4 |
2 | 1 |
3 | 5 |
(3) 计算每页的起始地址(十六进制)
关键公式:
步骤:
- 块大小:4096字节 = (0x1000)(十六进制)。
- 地址转换:
- 页号0 → 块号2 → (2 \times 0x1000 = 0x2000)
- 页号1 → 块号4 → (4 \times 0x1000 = 0x4000)
- 页号2 → 块号1 → (1 \times 0x1000 = 0x1000)
- 页号3 → 块号5 → (5 \times 0x1000 = 0x5000)
结果表格:
页号 | 起始地址(十六进制) |
---|---|
0 | 0x2000 |
1 | 0x4000 |
2 | 0x1000 |
3 | 0x5000 |
验证
-
地址范围验证:
- 主存总容量为640K字节,即地址范围 (0x0000) 至 (0xA0000)((640 \times 1024 = 655360 = 0xA0000))。
- 所有计算出的起始地址(如 (0x2000)、(0x5000))均在此范围内,合法。
-
单位一致性验证:
- 题目中所有容量和地址均以 字节(B) 为单位,无需转换为位(b)。
- 十六进制地址直接表示字节地址(例如 (0x2000 = 8192) 字节)。
最终答案
- 页的长度:4096 字节(4K)
- 页表:
页号 块号 0 2 1 4 2 1 3 5 - 起始地址:
页号 起始地址 0 0x2000 1 0x4000 2 0x1000 3 0x5000
关键概念强调
- 页与块的关系:在页式内存管理中,页的大小等于块的大小。
- 地址计算:物理地址 = 块号 × 块大小 + 页内偏移,但本题仅需计算起始地址(偏移为0)。
- 单位选择:内存管理以 字节 为基本单位,无需转换为位。