▼ 文中の用語 |
OSによるメモリ管理の方式の一つで、メモリ領域に物理的なアドレス(番地)とは別に仮想的なアドレスを割り当てて管理する方式。細切れのメモリ空間を連結して一つの連続した空間として利用したり、補助記憶装置(ハードディスクなど)上にも仮想的なメモリ領域を確保することで、物理メモリの容量を超えてメモリ空間を利用することができる。
OSは物理メモリ上の領域と仮想メモリ上の領域の対応付け(マッピング)を行い、MMU(Memory Management Unit)と呼ばれる専用のハードウェアによって相互のアドレスの変換を行う。物理メモリ空間でのアドレスを物理アドレスあるいは実アドレス、仮想メモリ空間でのアドレスを仮想アドレスあるいは論理アドレスと呼ぶ。OS上で動作するプログラム(プロセス)には仮想メモリ領域が割り当てられ、OSを介してメモリにアクセスする。こうすることで物理メモリ上で細切れの領域を集めて一つの大きな仮想メモリ領域を確保することが可能で、また、プログラムの側で物理メモリを管理する必要がなくなる。
また、ハードディスクなどの補助記憶装置に専用の領域(スワップファイル、スワップ領域、スワップパーティションなどと呼ばれる)を設け、仮想アドレスを割り当てることにより、仮想メモリ空間を物理メモリ空間より大きく取ることができる。ハードディスク上の領域に実際にアクセスするには物理メモリ上にその内容を読み込まなければならないため、物理メモリの中で現在使われていない領域との入れ替え(スワップ)がOSによって行われる。
仮想メモリの管理を一定の大きさの領域を単位として行う方式をページング方式、プログラムやデータのまとまりごとに不定長の大きさで管理する方式をセグメント方式と呼ぶ。現代ではほとんどの場合ページング方式が用いられる。ページング方式の仮想メモリでは、ページと呼ばれる決まった大きさ(4KBを採用しているシステムが多い)の領域にメモリを分割し、ページごとに仮想メモリ空間と物理メモリ空間の対応付けを管理する。