有一个虚拟页式存储系统采用最近最少使用(LRU)页面置换算法,系统分给每个进程3页内存,其中一页用来存放程序和变量i,j(不作他用)。假设一个页面可以存放150个整数变量。某进程程序如下: VAR A:ARRAY[1..300,1..150] OF

admin2022-06-21  37

问题 有一个虚拟页式存储系统采用最近最少使用(LRU)页面置换算法,系统分给每个进程3页内存,其中一页用来存放程序和变量i,j(不作他用)。假设一个页面可以存放150个整数变量。某进程程序如下:
    VAR A:ARRAY[1..300,1..150] OF integer;
    i,j:integer
    FOR j:=1 to 150 DO
    FOR i:=1 to 300 DO
    A[i,j]:=0;
    设变量i,j放在程序页面中,初始时,程序及变量i,j已在内存,其余两页为空。矩阵A按行序存放。试问当程序执行完后,总共缺页的次数是(          )次。

选项 A、150
B、300
C、45000
D、90000

答案C

解析 矩阵A在内存中是按行存放,但是程序访问矩阵A是按列访问(内循环i为矩阵A的行号,每一轮内循环访问的都是第j列元素),由于页面大小可以存放150个整型变量,而矩阵行元素数量为300,所以每个页面只可以存放半行矩阵元素,这样就会导致由缺页而调入内存的页面在对下一行元素的访问中再次未命中,又需要将下一行i列元素所在的页面调入内存,所以整个程序执行过程中,对数组A中每个元素的访问,都是未命中状态,缺页次数为数组A的元素个数,即300×150=45000次。因此.本题答案选择C选项。
转载请注明原文地址:https://kaotiyun.com/show/YWyZ777K
0

相关试题推荐
最新回复(0)