在一个请求页式的虚拟存储系统中,每个页面的大小分为40%字节。如下某个程序需要将数组赋值,假设执行代码已经驻留内存,而数据页面尚未分配,数组按先行后列存放。请计算,其缺页中断次数是( )。 int a[1024][1024]; int

admin2021-08-17  27

问题 在一个请求页式的虚拟存储系统中,每个页面的大小分为40%字节。如下某个程序需要将数组赋值,假设执行代码已经驻留内存,而数据页面尚未分配,数组按先行后列存放。请计算,其缺页中断次数是(    )。
    int a[1024][1024];
    int i,j;
    i=0:
    for(j=0;j<=1023;j++)
    A[j]=j;

选项 A、2
B、1
C、1024
D、512

答案D

解析 本题考查对C语言程序在使用内存时的分配机制。采用请求页式虚拟存储管理的基本点的是按需分配内存,仅当使用到该页时才通过缺页中断分配内存。C语言对数组的存放是先行后列的,整型数组每个占用2个字节。据此,我们可以计算,40%字节可以存放2行数组,由于程序中并非按行赋值,而是按列赋值,所以一页只赋值2个数组(是跳跃地赋值)。若每申请一页产生1次缺页中断,那么总共要产生1 024/2=512次缺页中断。
转载请注明原文地址:https://kaotiyun.com/show/1X3i777K
0

相关试题推荐
最新回复(0)