【正确答案】正确答案: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。
