2

マシンのアドレス空間は32ビットで、ページサイズは8KBです。ページテーブルは完全にハードウェアであり、エントリごとに1つの32ビットワードがあります。プロセスがスケジュールされると、そのページテーブルがメモリからハードウェアに1ワード/100nsの速度でコピーされます。各プロセスが100ミリ秒(ページテーブルのロード時間を含む)実行される場合、CPU時間の何分の1がページテーブルのロードに費やされますか?

はい; これは宿題の問題です。私はそれを調べました、そして今のところ私はそれを見つけました

ページテーブルのサイズ(バイト)=エントリの数*エントリのサイズ。したがって、x = 32 * 8192(ビット)= 262144

私はこれが間違った答えであり、52であることを知っています。後者の式で使用する4288ms

ページテーブルをロードする時間/合計時間=CPU使用率

よくわからない解決策がここに掲載されています。

http://www.cs.inf.ethz.ch/ssw/exercises/solution_04.pdf

4

2 に答える 2

3

ここで注意が必要なのは、ページテーブルのサイズを計算することです。それができたら、各テーブルエントリのロードにかかる時間を掛けます。テーブルエントリの大きさは関係ありません。ロードにかかる時間だけです。

したがって、32ビットのアドレス空間について考えてみてください。その中には8Kチャンクがいくつありますか?これは、参照したドキュメントの一部であり、ビットをサブプラクティスしています。8Kを記述するのに13ビットかかります。2 ^ 13 = 8Kに注意してください(1024は10ビットを取ることに注意してすばやく計算します。これは一種のニーモニックで覚えやすいです。8は3ビットと10 + 3 = 13を取ります。または、計算機を使用して2の累乗が等しいかどうかを確認します。 8K。)

アドレス空間全体の32ビットから13を差し引くと、19が得られるため、2^19ページになります。

ここで、2^19に100nsとビンゴを掛けます。あなたはそれを持っています。

于 2013-02-19T00:41:15.010 に答える
2

「32ビットアドレス空間と8KBページ」は、ページオフセット用に13ビット(8KB)があり、残りの19ビットがページテーブルエントリのインデックス作成用であることを意味します。

参照画像

上記の画像が機能しない場合は、ここで確認できます。

https://www.slideshare.net/kumar_vic/computer-memory-management/14?src=clipshare

<----------------------32 bits(word)---------------------->
<-----19 bits(index)----- ><-----13 bits(page offset)----->

したがって、ページテーブルには2^19のエントリがあります。

各エントリは、ディスクからメモリにコピーするために100nsを必要とします。

1ページテーブルをコピーするための合計時間には、2 ^ 19 * 100 ns=52.42ミリ秒が必要です。

1つのプロセスに費やされる合計時間は100ミリ秒であるため、ページテーブルのロードに費やされるCPU時間の割合は、(52.42)/(100)= 52.42%です。

于 2018-02-17T18:14:36.153 に答える