某虚拟存储系统采用最近最少使用(LRU)页面淘汰算法。假定系统为每个作业分配3个页面的主存空间,其中一个页面用来存放程序。现有某作业的部分语句如下。
Var A: Array[1..128,1..128] OF integer;
i,j: integer;
FOR i:=1 to 128 DO
FOR j:=1 to 128 DO
A[i,j]:=0;
设每个页面可存放128个整数变量,变量i、j放在程序页中,矩阵A按行序存放。初始时,程序及变量i、j已在内存,其余两页为空。在上述程序片段执行过程中, * * 生 (30) 次缺页中断。最后留在内存中的是矩阵A的最后 (31) 。
(31)处填()。
A.2行
B.2列
C.1行
D.1列
参考答案:A
解析:
[分析]: 系统为每个作业分配3个页面的主存空间,其中一个页面用来存放程序。二维数组A[128][128]共有128行128列,即每行有128个整型变量。由题知,每个页面可存放128个整型变量且矩阵A按行序存放,所以正好可以存放矩阵A的一行数据。这样进入内存的数据序列为:第1行、第2行、第3行、……。当第3行数据进入内存时,内存中的3个页面已满,需要进行页面淘汰。本题中采用的是最近最少使用页面淘汰算法,每次淘汰最久未被访问的页面。因为用来存放程序的页面时时都在调用,是不会被淘汰的,第1行相对第2行数据来说是最久未使用过的,所以淘汰第1行数据。当第4行数据进入内存时淘汰第2行数据,以此类推,所以最后留在内存中的是矩阵A的最后2行。由于每次调入一行数据,产生一次缺页中断,共有128行数据,所以有128次缺页中断。