某虚拟页式存储管理系统中采用最近最少使用(LRU)页面置换算法,
系统给每个进程分配 3 页内存,每页大小为 128 个整数。某进程创建后,代码部分占用 2 页内存并驻留,数据部分占用 1 页内存且当前为空。对于如下程序
VARA:ARRAY [1…128,1…128] OF INTEGER; FOR j: = 1 TO 128 DO FOR i: = 1 TO 128 DO A[i,j] := 0;
该程序执行中会产生多少次缺页中断
128×128
128×1
64×64
128×64
答案
128×128
解析
代码页有两页,数据页只有一页,数据页发生缺页。数据按行顺序存储,数据存储是有128行,每行128个数据,
那么每个数据页存储一行。但是代码访问数据是按列的方式访问,于是每页只访问到了每行数据的一个数据,然后发生缺页,调入下一
行数据(一页),如此重复,就有128行,每行中访问一次换页,这就访问了一列,总共有128列,128*128次缺页。
技巧:
for顺序是先J后I:
正确答案一定是 N x N 的形式
如果[整数变量]和[ J ]和[ I ]相同,结果为 [ N x N ] [N为相同数]
如果[整数变量]和[ J ]和[ I ]不同,结果为 [ N x N ] [N为不同数]