在一个请求分页虚拟存储系统中,用户编程空间 32 个页,页长 1KB,内存空间 16KB。 如果应用程序有 10 页长,若已知逻辑地址页号 0,1,2,3 已分得物理块 4,7,8,10,试 把虚拟地址 0AC5H、1AC5H 转换为物理地址。
时间: 2024-05-28 18:11:59 浏览: 105
首先需要确定页表存储的位置和格式。本题中,用户编程空间有 32 个页,每个页的页长为 1KB,因此总的逻辑地址空间大小为 32KB。这个逻辑地址空间被划分为大小为 1KB 的页,因此需要 32 个页表项,每个页表项的大小为 4 字节。假设页表存储在内存的某个位置,页表起始地址为 0x1000。
已知逻辑地址页号 0,1,2,3 已分得物理块 4,7,8,10,可以在页表中找到对应的页表项:
| 页号 | 物理块号 |
| --- | --- |
| 0 | 4 |
| 1 | 7 |
| 2 | 8 |
| 3 | 10 |
要将虚拟地址转换为物理地址,需要进行以下步骤:
1. 将虚拟地址拆分为页号和页内偏移量。
- 对于虚拟地址 0AC5H,页号为 0AC5H / 1000H = 0AH,页内偏移量为 0AC5H % 1000H = 0C5H。
- 对于虚拟地址 1AC5H,页号为 1AC5H / 1000H = 1AH,页内偏移量为 1AC5H % 1000H = 0C5H。
2. 在页表中查找对应的页表项,得到物理块号。对于虚拟地址 0AC5H,页号为 0AH,查找页号为 0AH 的页表项,得到物理块号为 4;对于虚拟地址 1AC5H,页号为 1AH,查找页号为 1AH 的页表项,得到物理块号为 7。
3. 将物理块号和页内偏移量组合成物理地址。对于虚拟地址 0AC5H,物理地址为 4 * 1000H + 0C5H = 40C5H;对于虚拟地址 1AC5H,物理地址为 7 * 1000H + 0C5H = 70C5H。
因此,虚拟地址 0AC5H 对应的物理地址为 40C5H,虚拟地址 1AC5H 对应的物理地址为 70C5H。
阅读全文