问题 问答题

在页式虚拟存储器中,一个程序由P1~P8共8个页面组成,程序执行过程中依次访问的页面如下:3、4、2、6、4、3、7、4、3、6、3、4、8、4、6。假设系统分配给这个程序的主存有3个页面,采用CLOCK页面替换算法对这3个页面进行调度。画出主存页面调入、替换和命中情况表并统计出命中率。(对于CLOCK算法,命中时不移动指针。)

答案

参考答案:[表示方法一]
CLOCK算法:“←”表示指针位置;“Y”表示访问位为1、“N”表示访问位为0。如表4.17所示。


[表示方法二] 上面的表格还可以写为:“←”表示指针位置;“*”表示访问位为1、没有标记表示访问位为0。如表4.18所示。


从表中得到命中6次,命中率为6/15=40%。

解析: 页面流的调度过程如表4.16所示。

表4.16 页面流的调度过程
访问页面 物理块0 物理块1 物理块2 缺页否 说明
初始状态 →∧ P指向块0
0 0 0
访问页3 3 →∧ 调入页3,块0访问位置1,指针
p后移
1 0 0
访问页4 3 4 →∧ 调入页3,块1访问位置1,指针
p后移
1 1 0
访问页2 →3 4 2 调入页2,块2访问位置1,指针
p后移
1 1 1
访问页6 6 →4 2 指针p循环后移(移动前修改访
问位),找到块0的访问位为0,替
换进页6,p后移
1 0 0
访问页4 6 →4 2 页4在内存,将其访问位修改为
1,指针p不动
1 1 0
访问页3 →6 4 3 指针p循环后移(移动前修改访
问位),找到块2的访问位为0,替
换进页3,p后移
1 0 1
访问页7 6 7 →3 指针p循环后移(移动前修改访
问位),找到块2的访问位为0,替
换进页3,p后移
0 1 1
访问页4 4 →7 3 指针p循环后移(移动前修改访
问位),找到块0的访问位为0,替
换进页4,p后移
1 1 0
访问页3 4 →7 3 页3在内存,将其访问位修改为
1,指针p不动
1 1 1
访问页6 4 6 →3 指针p循环后移(移动前修改访
问位),找到块1的访问位为0,替
换进页6,p后移
0 1 0
访问页3 4 6 →3 页3在内存,将其访问位修改为
l,指针p不动
0 1 1
访问页4 4 6 →3 页4在内存,将其访问位修改为
1,指针p不动
1 1 1
访问页8 →4 6 8 指针p循环后移(移动前修改访
问位),找到块2的访问位为0,替
换进页8,p后移
0 0 1
访问页4 →4 6 8 页4在内存,将其访问位修改为
1,指针p不动
1 0 1
访问页6 →4 6 8 页6在内存,将其访问位修改为
1,指针p不动
1 1 1

填空题
单项选择题