【问题标题】:Paging code snippet [closed]分页代码片段[关闭]
【发布时间】:2013-06-11 19:16:18
【问题描述】:

我尝试了一个与操作系统相关的问题。但我不明白发生了什么。

问题是

操作系统为每个进程分配 100 个内存帧。本系统的page 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

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

谁能解释一下这个问题

【问题讨论】:

  • 提示:检查循环变量如何用于索引数组。

标签: c operating-system paging


【解决方案1】:

认为将内部语句更改为

x[i][j]=125;

将减少驱动器上的写入。您将按顺序设置内存,而不是到处乱跳。

【讨论】:

  • 非常感谢您的快速回复
猜你喜欢
  • 2010-10-01
  • 2014-08-29
  • 1970-01-01
  • 2010-11-01
  • 2017-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
相关资源
最近更新 更多