问题 问答题

有一矩阵var A:array[1..100,1..100] of integer以行为先进行存储。有一个虚存系统,物理内存共有三页,其中一页用来存放程序,其余两页用于存放数据。假设程序已在内存中占一页,其余两页空闲。
程序A:
for i:=1 to 100 do
for j:=1 to 100 do
A[i,j]:=0;
程序B:
for j:=1 to 100 do
for i:=1 to 100 do
A[i,j]:=0;
若每页可存放200个整数,程序A和程序B的执行过程各会发生多少次缺页若每页只能存放100个整数呢以上说明了什么问题

答案

参考答案:有两个内存块可以用来存放数组信息,每个主存块可存放200个数组元素,数组中的元素按行编址。对于程序A来说,其访问顺序也是按行进行,由于每行有100个元素,每访问两行遇到一次缺页中断。如果采用FIFO或LRU页面调度算法,一 * * 生50次缺页中断。
对于程序B来说,其访问顺序按列进行,与数组的按行存储顺序不一致,每访问两个数组元素将发生一次缺页中断。如果采FIFO或LRU页面调度算法,一 * * 生5000次缺页中断。
若每页只能存放100个整数,对于程序A,数组的存储顺序与访问顺序一致,每访问一行数组遇到一次缺页中断。如果采用FIFO或LRU页面调度算法,会产生100次缺页中断。对于程序B,数组的存储顺序与访问顺序不一致,每访问一个数组元素遇到一次缺页中断。如果采用FIFO或LRU页面调度算法,一 * * 生10000次缺页中断。
以上结果说明:页面越大,缺页中断次数越少;页面越小,缺页中断次数越多。

单项选择题 A1/A2型题
单项选择题