0

このプロジェクトの目標は、データのマトリックスで外積を計算する以前に作成されたプログラムを使用し、その上でページ置換アルゴリズムをテストすることです。

アイデアは、プログラムによって使用されるページ数と、外積が計算されるループ中にさまざまなページ番号が参照される順序を把握することです。

ページ サイズは、テスト目的で 4096 に制限されることになっています。ページ参照文字列を理解するためにどこから始めればよいか完全にはわかりません。計算する必要があるループは次のとおりです。

for(int i=0; i<6; i++)
{
    for(int j=0; j<6; j++)
    {
        x->result[i][j]+=array[i]*array[j]; //cross product algorithm                                         
                                             //performed on line
    }
}

提供できるヘルプやアドバイスをいただければ幸いです。どこから始めればよいかかなり迷っていますが、参照文字列を実際に取得する方法がわかれば、残りの作業を行うことができます。

4

1 に答える 1

0

式で参照されるページ番号は次のx->result[i][j]+=array[i]*array[j]とおりです。

  • (uintptr_t)(void *)&x->result[i][j]/4096
  • (uintptr_t)(void *)&array[i]/4096
  • (uintptr_t)(void *)&array[j]/4096

(ただし、x->result[i][j]ページの境界を越えないでください) array[i]; array[j]1 回の反復内でそれらが参照される順序は、言語標準によって定義されていません。

于 2016-03-04T09:24:57.450 に答える