アドレス空間
仮想記憶方式において、仮想アドレス空間と物理アドレス空間とを対応させるためのアドレス変換が必要となる。仮想アドレス空間がそのままの配置で物理アドレス空間に存在するなら、単に何らかのオフセットの加減算で変換が済むが、実際にはページング方式やセグメント方式が使用されているため、変換はやや複雑となる。多重仮想記憶方式では、複数の仮想アドレス空間内のアドレスが物理的には同じ位置を示していることもある。
情報処理において、アドレス空間 (アドレスくうかん、英: address space) とは、メモリアドレスが意味を成すコンテキストを定義したもの。あるいは、一連のメモリアドレスによってアクセス可能なメモリ空間を意味する。
メモリアドレスはコンピュータのメモリ内の物理的位置を識別するものであり、住所とある意味で類似している。アドレスはデータが格納されている位置を指すが、それはちょうど人間の住所がその人の居住地を指すのと同じである。人間の住所とのアナロジーで言えば、「アドレス空間」とは、町や市や国といったある範囲の地域に対応すると考えることができる。2つのアドレスが数値的に同じでも、それぞれ異なるアドレス空間内のアドレスであれば、異なる位置を指していると言える。これは2つの市に「××町○丁目△-□」という住所が存在したとき、それらが別の場所を指すのと同じことである。
アドレス空間の例:
主記憶装置(物理メモリ)
仮想メモリ
I/O ポート空間
IPアドレス
××町○丁目(番地 △-□ がアドレスに相当)
○○○市××町(○丁目△-□ がアドレスに相当)
仮想記憶方式のオペレーティングシステム(OS) は仮想メモリをカーネル空間とユーザー空間に分離する。カーネル空間はカーネルやデバイスドライバ走行のために厳密に確保される。カーネル空間とユーザー空間の区別はOSやCPUアーキテクチャによって異なる。ユーザー空間を持たない実装もある (MS-DOS、NetWare3)。一般的な実装例として、ひとつの連続した仮想アドレス空間の特定のアドレスを境にして、ユーザー空間とカーネル空間を分離している場合が多い (Windows系OS、Unix系OS)。