问答题 如下程序在页式虚存系统中执行,程序代码位于虚空间页,A为128×128的数组,在虚空间以行主秩序存放A(1,1),A(1,2)…,每页放128个数组元素。工作集大小为2个页帧(开始时程序代码已在内存,占了1个页帧),用LRU算法,下面两种对A初始化的程序引起的页故障数分别为______和______。
第一空:
for j:=1 to 128 do
for i:=1 to 128 do
A(i,j):=0;
第二空:
for i:=1 to 128 do
for j:=110 128 do
A(i,j):=0;
【正确答案】
【答案解析】第1个空是128×128,第2个空是128。计算页故障数首先应给出访问串,其次是清楚是哪种替换策略。本题中所给的替换策略无效,因为任何一个替换策略在只有一个页帧的情况下产生的页故障数都是一样的,等于访问串中连续不相等页号的个数。如访问串为1,2,3,4,5,则故障数为5。
(1)中给出的循环条件要求访问的次序为:
A(1,1),A(2,1),…,A(128,1),A(1,2),A(2,2),…,A(128,2),…,A(1,128),A(2,128),…,A(128,128);
根据行主秩序存放的条件,访问串为1,2,3,…,128,1,2,3,…,128,…,即重复128遍128个不同的页号,则结果为128×128。
(2)中给出的循环条件要求访问的次序为:
A(1,1),A(1,2),…,A(1,128),A(2,1),A(2,2)…,A(2,128)…,A(128,1),A(128,2),…,A(128,128);
根据行主秩序存放的条件,访问串为1,2,…,128(重复的页号合并),结果为128。 [解析] 本题考的是页面替换策略中页故障数的计算方法,此类题目通常的出题方式是直接给出访问串,要求按照某替换算法计算页故障数,但像本题这样的方式也时有发生。