アドレス空間 (address space)
最終更新日: 2003/12/15
ハードウェアまたはソフトウェアから参照可能なメモリ領域のこと。
コンピュータのメモリには、1byteごと、もしくは1ワードごとにその住所(アドレス)が付けられており、このメモリにデータを書き込んだり、メモリからデータを読み出したりする場合には、それに対応するアドレスを指定する必要がある。この住所(アドレス)として利用できるメモリ領域の総計がアドレス空間である。例えば32bitのコンピュータでは、2の32乗、つまり40億個分の場所の指定が可能になっている。
アドレス空間は、一般的には目的別にいくつかの領域に分けて使われる。プログラムのコードを置く領域が「コード領域」、データを置く領域が「データ領域」、スタックとして利用する領域が「スタック領域」である。さらに動的にDLLをロードする「DLL領域」や、ファイルをマッピングして簡単にアクセスできるようにする「ファイル・マッピング領域」などが使われることもある。また、ユーザー・プログラムとして利用する「ユーザー領域」と、OSカーネルが利用する「カーネル(OS)領域」を分離し、不正なアクセスなどからOSの保護することも多い。
最近のOSでは、仮想アドレス空間が利用できるようになっており、システムに搭載された物理メモリよりも大きなサイズのアドレス空間を利用できるようにしている。
アドレス空間の例 典型的なアドレス空間の例。データ(ヒープ)やスタックのサイズはプログラムの実行に伴って動的に変化するので、自由に変更できるように、このように空き領域の両端から利用することが多い。 |
Copyright (C) 2000-2007 Digital Advantage Corp.