问题
单项选择题
如下程序实现为100×100的矩阵初始化为0,假定矩阵按列存放,开始时内存为空,程序和相关变量常驻内存,若分配给矩阵a的内存块为1页,页面大小为每页100个整数字。程序如下;
int I,j,a[100][100];
for(j=0;j<100;j++)
for (I=0;I<100;I++)
a[1][j]=0;
则程序运行完毕发生的缺页中断次数为( )。
A.99
B.100
C.100*100
D.不能确定
答案
参考答案:B
解析:[分析] 由于分配给矩阵的内存块为1页,.而每页大小为100个整数字,在此题环境中,由于程序及变量已经在内存中并常驻内存,不会发生缺页中断,只有当程序需要的数据所在页面不在内存中时,才会引起缺页中断,因为页面大小为100个整数字,每次缺页中断调取100个整数字进入内存,刚好为数组的一列程序,所以当以上程序运行完毕时,共需要调取100列数据,共发生100次缺页中断。