図1 仮想アドレス空間,仮想アドレス空間は,実行しているプロセスごとに複数存在します。
図1 仮想アドレス空間,仮想アドレス空間は,実行しているプロセスごとに複数存在します。
[画像のクリックで拡大表示]

 仮想アドレス空間は,プロセスごとに割り当てられた論理的なメモリー領域です。これは,連続したアドレスで示された領域であり,リニア・アドレス空間とも呼ばれます。
 IA-32アーキテクチャを採用したLinux搭載コンピュータの場合の仮想アドレス空間を図示すると,図1のようになります。仮想アドレス空間は,実行しているプロセスごとに独立して複数存在します。
 仮想アドレス空間は「ユーザー空間」と「カーネル空間」の2つに分けられます。ユーザー空間は,ユーザー・アプリケーションのプロセスが動作する際に利用されるメモリー領域です。一方,カーネル空間はシステム全体を制御する際に利用されるメモリー領域です。カーネル空間には,さまざまな制御情報,各種キャッシュや共有メモリーなどの各プロセスが共有する情報,カーネル自身が格納されます。
 仮想アドレス空間の最大サイズは,OSおよびCPUのアーキテクチャによって異なります。例えば,OSがLinuxでIA-32アーキテクチャを採用したコンピュータの場合には,最大4Gバイトになります。ユーザー空間は最大3Gバイト,カーネル空間は最大1Gバイトです。