IT系の国家試験、特に応用情報技術者試験で必ずと言っていいほど登場するのが「仮想記憶」の仕組みだよ。その中でも特に重要な「ページング方式」について、初心者でもイメージしやすいように解説していくね。
仮想記憶とページングの基本!メモリが足りないときはどうする?
おゆかよ博士!パソコンの「メモリ」が足りなくなったら、プログラムは動かなくなっちゃうの?
物知り博士いい質問だね。実は、物理的なメモリ容量より大きなプログラムを動かす魔法があるんだ。それが仮想記憶(バーチャルメモリ)だよ。
おゆかよ仮想記憶?本物のメモリじゃないの?
物知り博士そう。ハードディスクやSSDの一部をメモリのふりをして使うんだ。
そのデータを管理する単位をページと呼んで、固定のサイズに区切って管理する方法をページング方式と言うんだよ。
そのデータを管理する単位をページと呼んで、固定のサイズに区切って管理する方法をページング方式と言うんだよ。
ページフォルト、ページイン、ページアウトの流れ
仮想記憶では、必要なデータが常にメモリにあるとは限らない。そこからがページングの仕組みの見せ所なんだ。
おゆかよあ、必要なページがメモリに見当たらない!助けて博士!
物知り博士あわてないで。アクセスしようとしたページが主記憶(本物のメモリ)にない状態をページフォルトと言うんだ。
これが発生すると、OSが「ちょっと待って、今持ってくるから」と動くんだよ。
これが発生すると、OSが「ちょっと待って、今持ってくるから」と動くんだよ。
おゆかよ持ってくるってどこから?
物知り博士補助記憶(SSDやHDD)からだよ。補助記憶にあるページを主記憶に読み込むことをページインと呼ぶよ。
もしメモリがいっぱいで空きがなかったら、使っていないページを追い出さないといけない。これをページアウトと言うんだ。
もしメモリがいっぱいで空きがなかったら、使っていないページを追い出さないといけない。これをページアウトと言うんだ。
どのページを追い出す?FIFOとLRUの違い
ページアウトするとき、適当にページを捨てるわけにはいかないよね。応用情報技術者試験では「どのページを追い出すか」のアルゴリズムがよく問われるよ。
おゆかよ何を基準に追い出すページを決めるの?
物知り博士代表的なのが2つあるんだ。
1. FIFO (First-In First-Out):一番「最初に入ってきた」ページを追い出す。
2. LRU (Least Recently Used):一番「最後に使われてから時間が経った」ページを追い出す。
1. FIFO (First-In First-Out):一番「最初に入ってきた」ページを追い出す。
2. LRU (Least Recently Used):一番「最後に使われてから時間が経った」ページを追い出す。
おゆかよLRUの方が、ずっと使ってる大事なページを賢く残してくれそうだね!
まとめ:ページングのサイクルを覚えよう
最後におさらいだ。この一連の流れが頭に入っていれば、試験問題も怖くないよ!
- 仮想記憶:補助記憶を使ってメモリを広く見せる仕組み
- ページング:データを一定サイズの「ページ」で管理すること
- ページフォルト:必要なページが物理メモリにない発生状態
- ページイン:補助記憶からメモリへ読み込むこと
- ページアウト:いらないページをメモリから追い出すこと
- スラッシング:ページイン・アウトが多発してPCが激重になる状態
物知り博士試験では「スラッシング」が原因でパフォーマンスが落ちる、というのもよく出るからセットで覚えておいてね!



コメント