仮想アドレス 【virtual address】 論理アドレス / logical address
概要
仮想アドレス(virtual address)とは、コンピュータ内のメモリ領域に対して、メモリ装置内での物理的な配置とは独立に割り当てられた所在情報(アドレス)のこと。OSが各プログラムにメモリ領域を割り当てる際に用いられる。現代のコンピュータおよびオペレーティングシステム(OS)の多くには「仮想メモリ」(virtual memory/仮想記憶)という仕組みがあり、メモリ領域に対して物理的な位置とは独立に番地(アドレス)を割り当て、各プログラムはこの番地を指定してデータを読み書きすることができる。このOSによって割り当てられるメモリアドレスのことを仮想アドレスという。
各プログラムには仮想アドレスとして連続したメモリ空間が提供されるが、実際のメモリ装置内での物理的な配置がこれと一致しているとは限らない。空き領域を飛び飛びに繋ぎ合わせて提供されたメモリ領域であっても仮想アドレスにより連続したメモリ空間としてアクセスすることができる。
また、ストレージ上に領域を確保してメモリの延長としてデータを記録し、実際にメモリアクセスが行われるタイミングで物理メモリ上の領域と内容を入れ替える「ページング」(あるいは「スワッピング」)を行うことができる。物理メモリ容量より多い容量をメモリ領域として確保できる。
仮想アドレスと物理アドレスの対応関係はオペレーティングシステム(OS)がCPUのメモリ管理機能(MMU)を利用して行うのが一般的で、仮想メモリが機能しているシステムではプログラム側から物理アドレスを直に指定してメモリアクセスを行うことは制限あるいは禁止されている。
(2022.1.28更新)