14、一个进程的大小占 5 个页面,每页的大小为 1K,系统为它分配了 3 个物理块。当前进 程的页表如图所示: 有那些页面不在内存? 请分别计算进程中虚地址为(1025)D、(2049)D 单元的物理地址(用十进制表示)。 块号 存在位 P 访问位 R 修改位 M 001C 1 1 0 000A 1 1 1 — 0 0 0 000D 1 0 0 — 0 0 0
时间: 2023-12-31 13:06:15 浏览: 180
根据页表中的存在位 P,可以知道页面 2 不在内存中。
虚地址 (1025)D 对应的页号为 1,页内偏移量为 1,因此需要访问页面 1。
虚地址 (2049)D 对应的页号为 2,页内偏移量为 1,但是页面 2 不在内存中,需要进行页面置换。
计算物理地址:
- 对于虚地址 (1025)D,页号为 1,页内偏移量为 1,可以得到以下计算过程:
物理块号 = 001C2 = (28)10
物理地址 = 28 × 1K + 1 = 28673
因此,虚地址 (1025)D 对应的物理地址为 28673。
- 对于虚地址 (2049)D,页号为 2,页内偏移量为 1,需要进行页面置换。根据题目中给出的页面情况,可以发现页面 1 和页面 3 都已经在内存中,因此需要选择其中一个页面进行置换。根据最近最少使用算法 (LRU),选择页面 1 进行置换。
页面 1 的修改位 M 为 0,因此不需要进行写回操作。将页面 1 的内容写入到物理块号为 000D2 的物理块中,同时更新页表和页面的相关信息。
物理块号 = 000D2 = (13)10
物理地址 = 13 × 1K + 1 = 13313
因此,虚地址 (2049)D 对应的物理地址为 13313。
相关问题
某操作系统采用请求页式存储管理机制,用户进程总共有10个页面,页面大小为1K,页表状态如下所示,进程将依次连续访问以下三个逻辑地址:0X7CB,0X17DE,0X1EAB。请给出上述逻辑地址对应的页内偏移地址,块号,物理地址。
根据题目给出的信息,用户进程总共有10个页面,每个页面大小为1K,所以每个页面包含1024个字节。进程的页表状态如下所示:
| 页号 | 物理块号 |
|------|----------|
| 0 | 2 |
| 1 | 1 |
| 2 | 5 |
| 3 | 3 |
| 4 | - |
| 5 | - |
| 6 | - |
| 7 | - |
| 8 | - |
| 9 | - |
接下来依次访问逻辑地址 0X7CB,0X17DE,0X1EAB,对应的页号分别为 7,23,30。具体的计算方法如下:
1. 对于逻辑地址 0X7CB,其二进制表示为 0111 1100 1011,前 10 位为页号,后 22 位为页内偏移地址,即
页号 = 0111 1100 10 = 0x7C
页内偏移地址 = 1011 = 0xB
2. 对于页号 7,该页已经在物理内存中,因此直接计算物理地址:
物理块号 = 2
页内偏移地址 = 0xB
物理地址 = 0000 0010 1111 1100 1011 = 0x02FCB
3. 对于逻辑地址 0X17DE,其二进制表示为 0001 0111 1101 1110,前 10 位为页号,后 22 位为页内偏移地址,即
页号 = 0001 0111 11 = 0x17D
页内偏移地址 = 1110 = 0xE
4. 对于页号 23,该页不在物理内存中,需要进行页面置换。由于现在物理内存中没有空闲块,因此需要选择一个页面进行置换。可以使用最简单的 FIFO 置换算法,选择最先进入物理块的页面进行置换,即页面 0,其对应的物理块号为 2。将页号为 23 的页面映射到物理块号为 2 的物理块中,得到物理地址:
物理块号 = 2
页内偏移地址 = 0xE
物理地址 = 0000 0010 0001 0111 1110 = 0x0217E
5. 对于逻辑地址 0X1EAB,其二进制表示为 0001 1110 1010 1011,前 10 位为页号,后 22 位为页内偏移地址,即
页号 = 0001 1110 10 = 0x1E
页内偏移地址 = 1011 = 0xB
6. 对于页号 30,该页不在物理内存中,需要进行页面置换。由于现在物理内存中没有空闲块,因此需要选择一个页面进行置换。可以使用最简单的 FIFO 置换算法,选择最先进入物理块的页面进行置换,即页面 1,其对应的物理块号为 1。将页号为 30 的页面映射到物理块号为 1 的物理块中,得到物理地址:
物理块号 = 1
页内偏移地址 = 0xB
物理地址 = 0000 0001 0001 1110 1011 = 0x011EB
因此,逻辑地址 0X7CB 对应的页内偏移地址为 0xB,块号为 2,物理地址为 0x02FCB;逻辑地址 0X17DE 对应的页内偏移地址为 0xE,块号为 2,物理地址为 0x0217E;逻辑地址 0X1EAB 对应的页内偏移地址为 0xB,块号为 1,物理地址为 0x011EB。
假设某分页系统采取1k字节大小的页面。又知页表项每项需要2个字节。若此分页系统只用单级页表,那么一个进程最多可以使用多大的物理地址空间?如果采用二级页表呢?
如果此分页系统只用单级页表,那么一个进程最多可以使用的物理地址空间大小为:
$2^{16}$ (页表项个数) $\times$ $2^{10}$ (每个页面的大小) = $2^{26}$ 字节
因为每个页表项需要2个字节,所以页表可以支持的最大页数为 $2^{16}$。
如果采用二级页表,每个页表项需要4个字节。因此,一个进程最多可以使用的物理地址空间大小为:
$2^{16}$ (二级页表的页表项个数) $\times$ $2^{10}$ (每个页面的大小) $\times$ $2^{16}$ (一级页表支持的最大页数) = $2^{42}$ 字节
可以看出,采用二级页表可以支持更大的物理地址空间。
阅读全文