
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
主記憶が4ページのページング方式の仮想記憶システムで、10ページのプログラムがページ参照(P0,P1,P2,P3,P1,P4,P5,P4,P6,P7,P6,P4,P8,P7,P9)を行うとき、LRUとFIFOでページを追い出した場合の主記憶の最終状態の組合せを求める問題。
ページ参照列に対して、LRUとFIFOで、ページの置換を順にシミュレートし、最終状態を求める問題。
① LRU: 最も長く使われていないページを追い出す(使うたびに順位を更新)。FIFO: 最も早く読み込んだページを追い出す(使っても順位は変わらない)。空いた枠に入れる
② LRU: P4がP0、P5がP2、P6がP3、P7がP1、P8がP5、P9がP6を追い出す → P4, P7, P8, P9。FIFO: P4がP0、P5がP1、P6がP2、P7がP3、P8がP4、P9がP5を追い出す → P8, P9, P6, P7
③ ②
LRU(最も長い間使われていないページを追い出す)では、P0〜P3を読み込み(4面が埋まる)。P1は参照(ヒット)。P4でP0を追い出し、P5でP2を追い出し、P4はヒット。P6でP3を追い出し、P7でP1を追い出し、P6・P4はヒット。P8でP5を追い出し、P7はヒット。P9でP6を追い出す。最終状態は、上から順に、P4、P7、P8、P9。FIFO(最も早く読み込まれたページを追い出す)では、P0〜P3を読み込み、P1はヒット。P4でP0を追い出し、P5でP1、P4はヒット、P6でP2、P7でP3を追い出し、P6・P4はヒット。P8でP4を追い出し、P7はヒット。P9でP5を追い出す。最終状態は、P8、P9、P6、P7。したがって、LRU=P4、P7、P8、P9、FIFO=P8、P9、P6、P7の②が正しい。
LRUは、ヒットしたページの参照履歴を更新する。FIFOは、ヒットしても順序は変わらず、読み込まれた順に追い出す。置換したページは、追い出されたページと同じ位置に入る。
キーワード: ページング、仮想記憶、LRU、FIFO、ページ置換、ページ置換アルゴリズム、ページフォールト、情報工学部門