3

質問がありますが、よくわかりません。誰か助けていただければ幸いです。質問は次のようなものです。

プログラムに対する次の一連の要求は、460バイトのプログラムから取得されます。10、11、104、170、73、309、185、245、246、434、458、364((つまり、メモリ内に1つのプログラムがあります。は460バイトの長さで、テキスト内のバイトを参照しています。10は、プログラムの10番目のバイトが参照されることを意味します。10は相対アドレスです。メインメモリは、このプログラムの合計200バイトを保持できます。結果を要求するものを示します。ページ障害の場合、およびFIFO(ファーストインファーストアウト)および50バイトのページサイズに対する最適なページ置換アルゴリズムを使用したページ障害の数はいくつですか。

これが私が思ったことです。まず、メモリに何もないため、最初の要求(10)によってページフォールトが発生します。次に、ページサイズが50バイトであるため、バイト10〜60がメモリにロードされるとき。2番目の要求が来たとき(11)、それはすでにメモリにあるため、ページフォールトではありません。次に、104はページフォールトを引き起こし、104〜154のバイトがメモリにロードされます。170もページフォールトを引き起こし、170-220はメモリなどにロードされます。これはそのようになります。私の論理は本当ですか?

前もって感謝します。

4

1 に答える 1

0

いいえ。3番目の要求により、バイト100〜149がメモリにロードされます。これは、バイナリが実質的に50バイトのチャンクに分割され、バイト104が3番目のチャンクに分類されるためです。

また、物理メモリは4ページしか保持できないことも考慮する必要があります。ある時点で、ページを破棄し、ページがロードされたときにページフォールトを再トリガーする必要がある場合があります。

于 2013-01-01T19:15:20.997 に答える