有一个虚拟页式存储系统采用最近最少使用(LRU)页面置换算法,
系统分给每个进程3页内存,其中一页用来存放程序和变量ij(不作他用)。假设一个页面可以存放150个整数变量。某进程程序如下:
VAR A: ARRAY[1.150, 1.200] OF integer; i,j:integer; FOR j: =1 to 200 DO FOR i: =1 to 150 DO A[ij]:=0;
设变量ij放在程序页面中,初始时,程序及变量ij已在内存,其余两页为空。矩阵A按行序存放。试问当程序执行完后,共缺页多少次
150
200
150×200
150x150
答案
150×200
解析
矩阵按行存放,分析代码了解到存放方式与访问方式不相同,是按列访问的。因此可把矩阵按页大小分为200
页,每页150个元素,分析当访问第1个元素(在第1页)时缺页,第2个元素(在第2页)缺页,第3个元素(在第3页)....时会发生缺
页于是得知共缺页150×200次。
技巧:
for顺序是先J后I:
正确答案一定是 N x N 的形式
如果[整数变量]和[ J ]和[ I ]相同,结果为 [ N x N ] [N为相同数]
如果[整数变量]和[ J ]和[ I ]不同,结果为 [ N x N ] [N为不同数]