学员问题:
如何用最佳置换算法或先进先出置换算法在所给的图中看出页置换次数和页缺次数????
疑难解答: 举例说明:假设虚拟地址空间有8个页面,物理内存有4个页框,给出如下24页的访问字符串:
0 2 1 3 5 4 6 3 7 4 7 3 3 5 5 3 1 1 1 7 2 3 4 1 程序执行前,物理内存是空的,所以第1次访问页面0时发生缺页1,页面0被调入内存,内存映像为(0);
第2、3、4次分别访问的是页面2、1、3,它们都不在内存中,因此又连续发生3次缺页,内存映像变为(0,2,1,3)。
假设采用FIFO页面置换算法,第5次访问(页面5)时,页面0被置换出内存,内存映像变为(2,1,3,5),发生了一次缺页和置换;
第6次访问问(页面4)时,又发生缺页和置换,内存映像变为(1,3,5,4);第7次访问(页面6)时,再次发生缺页和置换,内存映像成为(3,5,4,6);
第8次访问的是页面3,命中;
第9次访问的是页面7,发生缺页和置换,内存映像成为(5,4,6,7);
第10次访问的是页面4,命中;第11次访问的是页面7,命中;.........如此做下去,就可以计算出发生缺页和置换的次数。所以这里的关键是要透彻理解每个置换算法,这样才能计算正确。 出这类题目的用意,也正是考察是否对页面置换算法有深入了解。 |