单选题
28.
在一个请求页式的虚拟存储系统中,每个页面的大小分为4096字节。如下某个程序需要将数组赋值,假设,执行代码已经驻留内存,而数据页面尚未分配,数组按先行后列存放。请计算,其缺页中断次数是( )。
int a[1024][1024];
int i,j;
i=0:
for(j=0;j<=1023;j++)
a[i][j]=j;
A、
2
B、
1
C、
1024
D、
512
【正确答案】
D
【答案解析】
本题考查对C语言程序在使用内存时的分配机制。采用请求页式虚拟存储管理的基本点的是按需分配内存,仅当使用到该页时才通过缺页中断分配内存。C语言对数组的存放是先行后列的,整型数组每个占用2个字节,据此,我们可以计算,4096字节可以存放2行数组,由于程序中并非按行赋值,而是按列赋值,所以一页只赋值2个数组(是跳跃地赋值),若每申请一页产生1次缺页中断,那么总共要产生1024/2=512次缺页中断。
提交答案
关闭