【基】仮想メモリのページングアルゴリズム(NRU,LRU,LFU,FIFO)
◆仮想メモリのページングアルゴリズム
メモリの中で、今後最も使われる可能性が少ないページ(プログラムの一部分)を決める方法のこと。
同時に複数のプログラムを起動したり、巨大なプログラムを実行したりすると、メモリが不足する。
その場合に備え、OSにはメモリの中で今後使われる可能性が少ないページを、ハードディスクに一次退避させ、メモリを空ける機能がある。
これを仮想メモリと呼ぶ。(ハードディスクを仮想的にメモリとして使う)
ページ:プログラム全体を固定サイズに区切った部分のこと。
仮想メモリに移すページを決めるアルゴリズムが以下の4種類。
「NRU」「LRU」「LFU」「FIFO」
※設問では「キャッシュメモリと主記憶の間でブロックを置き換える方式」と記述されていた。
◆ページイン、ページアウト、ページフォールト
ページングアルゴリズムにおける各種言葉の意味。
ページイン:仮想メモリ(ハードディスク)から、実メモリ(主記憶装置)にページを読み込むこと。
ページアウト:実メモリ(主記憶装置)から仮想メモリ(ハードディスク)にページを退避させること。
ページフォールト:実行しようとしたページが実メモリに存在しないこと。ページフォールトになったときは、採用されているページングアルゴリズム(NRU,LRU,LFU,FIFO)に従って、今後使われる可能性が少ないページを決め、仮想メモリに退避させる。また、プログラム開始時は実メモリが空なため、ページフォールトである。(開始時はプログラムを読み込み、実メモリに格納する必要があるため)
◆NRU
Not Recentry Used。
直訳:Not Recentry(最近ではない) Used(利用)
一定時間参照されていないブロック。
◆LRU
Least Recentry Used。
直訳:Least(最も少ない) Recentry(最近の) Used(利用)
最後に参照されてから最も長い時間が経過したブロック。
例:プログラム利用順が「A->B->B->C->A」のとき「B」が該当する。
◆LFU
Least Frequently Used。
直訳:Least(最も少ない) Frequently(頻度の) Used(利用)
参照頻度の最も低いブロック。
(つまり、利用回数が最も少ないページ)
例:プログラム利用順が「A->B->B->C->A」のとき「C」が該当する。
◆FIFO
First In First Out。
直訳:First In(最初にいれたものを) First Out(最初に出す)
読みこんでから最も長い時間が経過したブロック。
(つまり、最初に利用したページ)
例:プログラム利用順が「A->B->B->C->A」のとき「A」が該当する。
◆LIFO
Last In First Out。
直訳:Last In(最後にいれたものを) First Out(最初に出す)
読みこんでから最も短い時間が経過したブロック。
(つまり、最後に利用したページ)
例:プログラム利用順が「A->B->B->C->A」のとき「A」が該当する。
◆LIFO記載のサイト
◆注意:以下サイトにはLIFOはページングアルゴリズムには無関係であると記載してあるが。。。?(存在する旨の表記もあるサイトがある)
この記事が気に入ったらサポートをしてみませんか?