2017-02-14 16 views
0

私はちょうどページングについて学んでいて、オンラインで見つけたチュートリアルがちょっとしたことがあるように、私のページ置換のために行ったことが正しいかどうか疑問に思っていました。私は主に私が間違ったことをしたかどうかを明確にしたいと思っています。他の場所へ直接リンクする代わりに説明をしたいのですが、実際に役に立たないものをさらに解釈する必要があります。 Iは、配列のためのメモリの3つのフレームを有するものやっここでLRUとFIFOのページ置換が正しく行われていますか?

0、3、1、2、3、2、0、1、0、1、3、0、2、3、1

Screenshot of my working

Y =障害及びN =いいえ障害がありました。

UPDATE:私のFIFOを固定しようとしました、 new working for FIFO

+0

あなたのlruは正しいです。あなたのFIFOはlruとまったく同じように見えます、なぜですか? 2番目のゼロが来ると(#7)、フレームは3,1,2となりました。ページ1を削除したとき、lruは正しいが、FIFOは正しくありませんでした。 fifoでは、ページ3を削除する必要があります。ページ1はステップ3で導入されているため、ステップ2で導入されたページ3より若いです。ページ2は、ステップ4で導入された最年少です。 FIFOでは、最も古いもの、すなわち、 3ページ目をご覧ください。 – inquisitive

+0

@inquisitiveしたがって、私はFIFOをもう一度やりました。 – Kyle

+1

fifoでは、最も古いものを交換してください。ステップ#11を確認してください。ページ3はページ1(#3)、ページ2(#4)およびページ0(#7)と競合している。ページ1を削除する必要があるときに、ページ0を削除したのはなぜですか? – inquisitive

答えて

0

sequence of steps for fifo operation

FIFOをしながら、各段階で、我々は以前のキャッシュ状態をコピーします。キャッシュスロットは、左から右に向かって、最も古いものから最も若いものに注目されたい。ヒットまたはミスに応じて、次の2つのうちのいずれかを行います。

ヒットしたら何もしません。

もし見つからない場合は、一番左のキャッシュエントリを削除してください。新しいエントリを右側に追加します。

lruを実行している間は、ヒットするとヒットしたアイテムを一番右のスロットに移動します。これは、アイテムのヒットが同輩の中で最も若いことを意味します。