仮想メモリ 【virtual memory】 仮想記憶 / バーチャルメモリー
概要
仮想メモリ(virtual memory)とは、オペレーティングシステム(OS)によるメモリ管理の方式の一つで、メモリ領域に物理的なアドレス(番地)とは別に仮想的なアドレスを割り当てて管理する方式。細切れのメモリ空間を連結して一つの連続した空間として利用したり、ストレージ(外部記憶装置)上にも仮想的なメモリ領域を確保することで、メインメモリ(物理メモリ)の容量を超えてメモリ空間を利用することができる。
物理メモリと仮想メモリの対応付け
OSは物理メモリ上の領域と仮想メモリ上の領域の対応付け(マッピング)を行い、コンピュータ内部のMMU(Memory Management Unit)と呼ばれる制御回路によって相互のアドレスの変換を行う。かつてはMMUが独立したICチップなどとして提供されることもあったが現在ではほとんどの場合マイクロプロセッサ(CPU/MPU)に内蔵されている。
物理メモリ空間でのアドレスを「物理アドレス」(physical address)あるいは「実アドレス」(real address)、仮想メモリ空間内におけるアドレスを「論理アドレス」(logical address)あるいは「仮想アドレス」(virtual address)と呼ぶ。
OS上で動作するプログラム(プロセス)には仮想メモリ領域が割り当てられ、OSを介してメモリにアクセスする。こうすることで物理メモリ上で細切れの領域を集めて一つの大きな仮想メモリ領域を確保することができる。個々のプログラム側でも自ら物理メモリ領域を管理する必要がなくなり、OSから連続したアドレス空間が与えられたように見える。
ストレージ領域の利用
ハードディスクやSSDなどのストレージ装置上に専用の領域(スワップファイル、ページファイル、スワップ領域などと呼ばれる)を設け、仮想アドレスを割り当てることにより、仮想メモリ空間を物理メモリ空間より大きく取ることができる。
ストレージ上の領域に実際にアクセスするには物理メモリ上にその内容を読み込まなければならないため、物理メモリの中で現在使われていない領域との入れ替え(スワップ)がOSによって行われる。
メインメモリの物理容量に対してあまりに大きな仮想メモリを確保すると、このスワップ処理が頻繁に発生するようになり、ついには処理がほとんど進まない状況に陥る「スラッシング」(thrashing)現象が発生することがある。
ページとセグメント
仮想メモリの管理を一定の大きさの領域を単位として行う方式を「ページング方式」、プログラムやデータのまとまりごとに不定長の大きさで管理する方式を「セグメント方式」と呼ぶ。
現代ではほとんどの場合ページング方式が用いられる。ページング方式の仮想メモリでは、ページと呼ばれる決まった大きさ(4KBを採用しているシステムが多い)の領域にメモリを分割し、ページごとに仮想メモリ空間と物理メモリ空間の対応付けを管理する。
OSの用語一覧
その他の関連用語
試験出題履歴
基本情報技術者試験 : 【令6修7 問13】 【令6修6 問13】 【令5修7 問13】 【令5修1 問19】 【令4修7 問17】 【令4修6 問18】 【令4修1 問19】 【令3修12 問17】 【令3修6 問18】 【令3修1 問17】 【令3修1 問18】 【令2修1 問17】 【令1修12 問17】 【令1修7 問17】 【平31修1 問17】 【平30修12 問18】 【平30修7 問17】 【平29秋 問20】 【平29修7 問18】 【平29修6 問18】 【平29春 問15】 【平29春 問19】 【平29修1 問18】 【平29修1 問19】 【平28秋 問17】 【平28修7 問17】 【平28修6 問17】 【平28修6 問18】 【平27秋 問17】 【平27修7 問17】 【平27修7 問18】 【平27修6 問18】 【平27春 問18】 【平27春 問20】 【平26修12 問19】 【平26春 問16】 【平26修1 問21】 【平25修12 問25】 【平25修7 問24】 【平25修6 問24】 【平25春 問20】 【平25修1 問23】 【平24秋 問19】 【平24春 問21】 【平24春 問22】 【平24修1 問24】 【平23修7 問24】 【平23修6 問21】 【平23修6 問24】 【平23春 問20】 【平22修12 問22】 【平22修7 問22】 【平22春 問20】 【平21修12 問21】 【平21修7 問19】 【平21修6 問20】