有一个虚拟页式存储系统,
采用最近最少使用(LRU)页面置换算法,系统分给每个进程3页内存,其中一页用来存放程序和变量ij(不作他用)。假设一个页面可以存放300个整数变量。某进程程序如下:
VAR A: ARRAY[1..150, 1..100] OF integer; i,j:integer; FOR i: =1 to 150 DO FOR j: =1 to 100 DO A[ij]:=0;
设变量ij放在程序页面中,初始时,程序及变量i,j已在内存,其余两页为空。矩阵A按行序存放。试问当程序执行完后,共缺页多少次
100
50
150
200
答案
50
解析
二维数组在内存中表现为连续的数据, 100行150列数据,则有15000个数据,每个页面可以存放300个整数变
量,存放在50个页面中,因此,缺页中断为50次。
技巧:
for顺序是先I后J:
用第一个for循环数乘第二个for循环数再除[可以存放N个整数变量]
105*100/150=100