仮想記憶のしくみ

仮想記憶とは主記憶装置や補助記憶装置のアドレスを管理するメモリ空間です。

以前の記事でフラグメンテーションによってデータをロードできないという問題がありましたね。
そんな時、仮想記憶では連続したアドレスでプログラムを読み込んでいるけれど、実際は主記憶装置や補助記憶装置のアドレスを参照しているため記憶装置がフラグメンテーションでも大丈夫っていうことになります。

その参照する際にはメモリ変換ユニット(MMU:Memory Management Unit)をいうハードウェアを利用します。このユニットも用いて参照する仕組みを動的アドレス変換機構(DAT:Dynamic Address Translator)といいます。

また、主記憶装置は容量が少ない場合は補助記憶装置を主記憶装置とみたててCPUに処理させるのです。実際の方法がページング方式す。

ページング方式

プログラムをページという単位に分解して記憶します。

ページテーブルという表によって管理されます。
ページテーブルには仮想記憶のページ番号と主記憶装置のアドレスが1組になって複数記録されています。
もし、主記憶装置に求めているページがない場合には補助記憶装置が主記憶装置にページを読み込ませます。当然この時ページフォルトという割り込み処理が発生しています。
加えて、この時、補助記憶装置から主記憶装置にページを転送することをページインといい。

主記憶装置から補助記憶装置にページを移すことをページアウトといいます。ページアウトは主記憶装置に容量がない時に発生するため、頻度が高いと処理が遅くなります。これをスラッシングといいます。


この記事が気に入ったらサポートをしてみませんか?