进程P有6个页面,页号分别为0~5,页面大小为4K,页面变换表如下所示。表中状态位等于1和0分别表示页面在内存和不在内存。假设系统给进程P分配了4个存储块,进程P要访问的逻辑地址为十六进制1165H,那么该地址经过变换后,其物理地址应为十六进制 (问题1) ;如果进程P要访问的页面4不在内存,那么应该淘汰页号为 (问题2) 的页面。

页式存储地址转换:当页面大小为2的幂次时,可直接将逻辑地址拆分为页号与页内偏移,通过逻辑地址除以页面大小取整得到页号,取余得到页内偏移;物理地址由页表中对应页号的页帧号与页内偏移直接拼接生成,页表中的状态位用于标识页面是否在内存,若状态位为0则会触发缺页中断。NRU最近未使用页面置换算法:通过访问位和修改位将页面划分为四类,淘汰优先级从高到低依次为未访问未修改(0,0)、未访问已修改(0,1)、已访问未修改(1,0)、已访问已修改(1,1),优先淘汰最近未访问(访问位为0)的页面,同类别中优先选择未修改的页面以减少磁盘写回开销,访问位一般由硬件维护,系统还会定期重置访问位来追踪页面的近期访问状态。
本题考察的是页式存储的地址转换与基于访问位/修改位的页面置换(NRU思想)。
问题1:
逻辑地址1165H在页大小4KB(即1000H)下,页号=1165H÷1000H=1,页内偏移=1165H mod 1000H=165H。
由页表知页1在内存且页帧号为3,故物理地址=页帧号3拼接页内偏移165H=3165H。
选择B选项3165H:页1映射到帧3并附加偏移165H,正确。
问题 2:
当前在内存的页为0、1、2、5,其访问位/修改位分别为页0:(1,0),页1:(1,1),页2:(1,0),页5:(0,1)。
按照优先淘汰最近未访问(访问位0),若同类则优先淘汰未修改(修改位0) 的思路(NRU优先级:(0,0)→(0,1)→(1,0)→(1,1)),最佳候选是类别(0,1)。仅页5属于该类,故应淘汰页5。
A选项0:访问位为1,非近期未访问,优先级低于页5,错误。
B选项1:访问位为1且已修改,优先级最低,错误。
C选项2:访问位为1,优先级低于(0,1),错误。
D选项5:访问位为0、修改位为1,满足优先淘汰条件,正确。
选择D选项。
