单选题 某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法。假定系统为每个作业分配3个页面的主存空间,其中一个页面用来存放程序。现有某作业的部分语句如下。
Var A: Array[1..128, 1..128] OF integer;
i, j: integer;
FOR i:=1 to 128 DO
FOR j:=1 to 12 8 DO
A[i, j]:=0;
设每个页面可存放128个整数变量,变量i、j放在程序页中,矩阵A按行序存放。初始时,程序及变量i、j已在内存,其余两页为空。在上述程序片段执行过程中,共产生______次缺页中断。最后留在内存中的是矩阵A的最后______。
【正确答案】 B
【答案解析】
【正确答案】 A
【答案解析】本题的出题方式比较新颖,让人看上去觉得这个题很难,但实际上非常容易,比一般的页面淘汰算法题还要容易。只要理解最近最少使用页面淘汰算法,就能轻松解题。题目中提到系统为每个作业分配了3个页面的主存空间,其中一个页面用来存放程序,这样剩余的两个页面可用于存放数组数据,由于一个页面存储128个整数,所以正好可存矩阵A的一行数据。这样进入内存的数据序列为:第1行数据、第2行数据、第3行数据……当进入第3行数据时,内存的3个页面已满(3个页面的内容分别为:程序页、第1行数据页、第2行数据页),需要进行页面淘汰,淘汰算法是LRU,所以要把最久未使用过的页面淘汰掉。程序页时时都在被调用,显然不符合最久未使用这一原则,不能淘汰;第1行数据相对于第2行数据而言是最久未使用过的,所以淘汰第1行数据。当第4行数据进入时,淘汰第2行数据,以此类推,内存中最后剩下了矩阵A的最后两行数据。而每次调入一行数据,产生一次缺页中断,共有128页,故有128次缺页中断。