下表是某页式内存分配的情况,
页面大小为 4096B,有效位为 1 表示该页在内存。系统将逻辑地址 0x0E8D、0x3010、0x411B、0x00FB、0x231E 转换为物理地址时,会发生几次缺页中断
逻辑页号 | 页框号 | 有效位 |
0 | 08000000 | 1 |
1 | -------- | 0 |
2 | 08005000 | 1 |
3 | -------- | 0 |
4 | FF003000 | 1 |
1 次
2 次
3 次
4 次
答案
1 次
解析
根据提供的页式内存分配表和页面大小(4096B或0x1000十六进制),我们可以将每个逻辑地址转换为逻辑页号,并检查这些页号在页表中的有效性(即有效位是否为1)。
对于给定的逻辑地址:0x0E8D、0x3010、0x411B、0x00FB、0x231E,我们可以这样计算它们的逻辑页号:
0x0E8D 的逻辑页号 = 0x0E8D / 0x1000 = 0(因为0x0E8D小于0x1000,所以商为0)
0x3010 的逻辑页号 = 0x3010 / 0x1000 = 3(注意只取整数部分)
0x411B 的逻辑页号 = 0x411B / 0x1000 = 4(因为0x411B大于0x4000,所以商为4)
0x00FB 的逻辑页号 = 0x00FB / 0x1000 = 0(同样,因为0x00FB小于0x1000)
0x231E 的逻辑页号 = 0x231E / 0x1000 = 2(因为0x231E在0x2000和0x3000之间)
接下来,我们检查这些逻辑页号在页表中的有效性:
逻辑页号0:有效(有效位为1)
逻辑页号3:无效(页框号为空,有效位为0)
逻辑页号4:有效(有效位为1)
逻辑页号0(再次):有效(与第一次相同)
逻辑页号2:有效(有效位为1)
因此,在将逻辑地址转换为物理地址时,只有逻辑页号3(对应逻辑地址0x3010)在页表中是无效的,这会导致一次缺页中断。
所以答案是 1 次 缺页中断。