分页代码片段

Rum*_*chi 2 c paging operating-system

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

问题是

操作系统为每个进程分配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;
}
Run Code Online (Sandbox Code Playgroud)

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

My ans was 2000
Run Code Online (Sandbox Code Playgroud)

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

任何人都可以解释一下这个问题

Joh*_*ohn 5

认为将内部声明改为

x[i][j]=125;
Run Code Online (Sandbox Code Playgroud)

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