2

OSに関する質問をしてみました。しかし、何が起こっているのか理解できません。

質問は

オペレーティング システムは、プロセスごとに 100 個のメモリ フレームを割り当てます。このシステムのページ サイズは 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;
}

を。2 次元配列の x[0][0] が仮想アドレス 1000 に格納されている場合、x[1][0] の仮想アドレスは何ですか?

My ans was 2000

b. プログラマーは、上記のプログラムの 1 行を変更することで、ディスクの読み取り回数を減らすことができることに気付きました。その行を変更します。

誰かこの質問を説明してくれませんか

4

1 に答える 1

5

内部ステートメントを次のように変更すると思います

x[i][j]=125;

ドライブへの書き込みを減らします。あちこちにジャンプするのではなく、メモリを順番に設定します。

于 2013-06-15T05:08:09.157 に答える