分页代码片段

时间:2013-06-15 05:03:09

标签: c operating-system paging

我尝试了一个与操作系统相关的问题。但我无法理解发生了什么。

问题是

操作系统为每个进程分配100个内存帧。该系统的页面sie是1000字节。内存是字节可寻址的。程序员注意到,在运行以下程序时,即使没有任何读取或写入文件的指令,计算机也会连续读取硬盘。他还注意到该计划需要很长时间才能完成。

int main()
{
    int i,j;
    char[1000][1000];
    for(i = 0;i<1000;i++)
        for(j=0;j<1000;j++)
            x[j][i]=125;
    return 0;
}

一个。如果二维数组的x [0] [0]存储在虚拟地址1000,那么x [1] [0]的虚拟地址

My ans was 2000

湾程序员注意到,通过修改上述程序的一行,他可以减少磁盘读取次数。修改该行。

任何人都可以向我解释这个问题

1 个答案:

答案 0 :(得分:5)

认为将内部声明更改为

x[i][j]=125;

会减少驱动器上的写入。你要按顺序设置内存而不是跳到那里。