ページングのアルゴリズムにおいて、その性質の違いが情報処理の試験で問われることがある。
LRUとLFUの違い
メモリに書き込まれたデータを対比させるタイミングの違いで区別される。試験の問題としてはLFUよりもLRUのほうがパズル要素があるため出題されるケースが多いと思われる。
LRU…Least Recentry Used =もっとも最近使われていないもの
LFU…Least Frequently Used =もっとも頻繁に使われていないもの
暗記よりも英語のイメージでつかむ
※LeastはLittleの最上級で「もっとも~されていない」の意味がある。Recentry=最近、Frequently=頻繁に、という意味で、英語的に意味が分かればどういうものかイメージができるがイメージができないと厳しい。暗記しておかないと詰んでしまうわけだが…暗記よりも英語の意味を理解しておいて、アルゴリズムとして意図をイメージできるかを大切にしたい。
FIFOとLILOもセットで理解しておく
なお、以下のものはページングアルゴリズムではなくてデータ構造だが、データがメモリに入ってきてあるタイミングでデータが消されるという意味では似ているため、FIFOとLILOについても一緒に知っておくとよい。試験の問題でも一緒くたにされて性質が問われることがある。
FIFO(First-In, First-Out)
⇒ 最初に入ってきたものが最初に出ていく=キュー構造
LILO(Last-In, Last-Out)
⇒ 最後に入ってきたものが最後に出ていく=スタック構造
FIFO「フィフォ」は最初に入ってきたアイテムが最初に出ていくので、イメージとしてはアイテムが滞留する一本道で順番に追い出されていく”キュー”(Queue)=順番待ちのイメージ。
LILO「リロ」は最初に入ってきたアイテムが最後に出ていくので、イメージとしてアイテムが積み上がる”スタック”(Stack)=積み重なったもののイメージである。
※他にもFILOやLIFOというデータ構造があるらしいが、まず試験にも実務にも出てこないし、仮に出てきても英語のイメージがあればわかるので省略する。
まとめ
- ページングアルゴリズム
- LRU
- LFU
- データ構造
- FIFO
- LILO
※LRUやLFUはアルゴリズムであり、FIFOやLILOはデータ構造そのもの。そもそも言葉が指している対象が異なるので注意すること。

コメント