仮想記憶は限られた物理メモリを越えるアドレス空間を提供する技術。OS の重要機能です。
仮想記憶って、どういう仕組みなの?
仮想記憶は、物理メモリより大きなアドレス空間をプログラムに見せる技術なのよ。
実メモリが足りない分は、ハードディスク (スワップ領域) に退避するの。
補足すると、管理単位としてはページングが一般的ね。
仮想アドレス空間を固定長 (例: 4KB) のページに区切って、物理メモリと対応付けるの。
ページが見つからなかったら、どうなっちゃうんですかぁ?
ページフォルトという例外が発生して、OSがディスクから該当ページを読み込んでメモリに乗せるの。
これが頻発すると、スラッシングと呼ばれる、処理が進まない状態になっちゃうのよ。
あと、ページ置換アルゴリズムも重要ね。
FIFO・LRU・LFUなどがあって、どのページを追い出すかを決めるの。
中でもLRU (Least Recently Used) が、最もよく使われる方式よ。
つまり仮想記憶のおかげで、大きなプログラムも動かせるってこと?
そういうこと。
物理メモリが8GBでも、仮想アドレス空間は数百GBにも見えるから、実質無制限のメモリを使えるように見えるの。
ただし、速度は物理メモリより遅くなるけどね。
確認クイズ
仮想記憶でページが主記憶に存在しないとき発生する事象を何と呼ぶか。
- セグメンテーション違反
- ページフォルト
- デッドロック
- スラッシング
こたえを見る
正解: 2. ページフォルト
ページフォルトは仮想記憶でアクセスしたページが主記憶になく、補助記憶 (HDD/SSD) から読み込む必要がある時に発生する例外です。多発するとスラッシングを引き起こします。