问答题 在一个请求页式存储管理系统中,进程P共有5页,访问串为3,2,1,0,3,2,4,3,2,1,0,4时,试采用FIFO置换算法和LRU置换算法,计算当分配给该进程的页面数分别为3和4时,访问过程中发生的缺页次数和缺页率,比较所得的结果并解释原因。【哈尔滨工业大学2000年】
【正确答案】正确答案:1)采用FIFO置换算法,分配给进程的页面数为3时的缺页情况见表3-13。共缺页9次,缺页率为9/12=75%。 2)采用FIFO置换算法,分配给进程的页面数为4时的缺页情况见表3-14。共缺页10次,缺页率为10/12=83%。 3)采用LRU置换算法,分配给进程的页面数为3时的缺页情况见表3-15。缺页次数为10次,缺页率为10/12=83%。 4)采用LRU置换算法,分配给进程的页面数为4时的缺页情况见表3—16。缺页次数为8次,缺页率为8/12=67%。由比较结果可以看出:在FIFO置换算法中,缺页率可能会随着所分配的物理块数的增加而增加,即出现Belady异常现象;而LRu这类堆栈类算法则不会出现这种现象。注:这里需要说明一下这里的页面置换示意图的表示方法。有些教材中采用的足表3—17中的方式(FIFO置换算法,3个页面)。其中,每次进行页面访问后,都将内存中的页面按照FIFO置换算法的队列关系或LRU置换算法的堆栈关系进行调整排序,这样,下一次缺页时不需要再进行选择,直接置换最上面的页面即可。我们这里不采用这种表示方式,而是保持页面在内存中的位置不变,这符合实际的情形。对于缺页时的置换,通过横向观察,同样可以容易地选择。以FlFO置换算法,4个页面为例,见表3—18。在访问页面3时,此页不在内存中,发生缺页中断;这时对内存中的每个页面进行横向观察,其横向连续的长度即为在内存中驻留的时间,也就对应了进入内存的顺序。此时页面4、2、1、0的横向长度(阴影部分)分别为1、6、5、4,故选择驻留时间为6的页面2置换。再以LRU置换算法,4个页面为例,见表3-19。
【答案解析】