Operating systems based on Microsoft Windows NT technologies have always provided applications with a flat 32-bit virtual address space that describes 4 gigabytes (GB) of virtual memory.通常、アドレス スペースは、2 GB にアプリケーションが直接アクセスでき、その他の 2 GB には Windows 実行ソフトウェアのみがアクセスできるように分けられます。
32 ビット バージョンの Windows 2000 Advanced Server および Windows NT Server 4.0, Enterprise Edition オペレーティング システムは、3 GB のフラットな仮想アドレス スペースをアプリケーションに提供し、カーネルと実行コンポーネントが 1 GB のみを使用する Windows の最初のバージョンでした。お客様のご要望に応えて、Microsoft は、32 ビット バージョン Windows XP Professional とすべての 32 ビット バージョン Windows Server 2003 で、このサポートを利用できるようにしました。
Windows 2000 のメモリ サポート。Windows 2000 Professional と Server では、サポート可能な最大メモリ量は 4 GB であり、このセクションの後で説明するように、Windows NT 4.0 と同一です。ただし、Intel Pentium Pro 以降の IA-32 プロセッサ ファミリの PAE 機能を使用して、Windows 2000 Advanced Server は 8 GB の物理 RAM をサポートし、Windows 2000 Datacenter Server は 32 GB の物理 RAM をサポートします。
Windows XP Professional と Windows Server 2003 のメモリ サポート。Windows XP Professional および Windows Server 2003 上でサポート可能な最大メモリ量は、同じく 4 GB です。ただし、PAE 機能を使用して、Windows Server 2003, Enterprise Edition は 32 GB の物理 RAM をサポートし、Windows Server 2003, Datacenter Edition は 64 GB の物理 RAM をサポートします。
/3GB スイッチが Boot.ini ファイルで使用されない限り、プロセスとアプリケーションの仮想アドレス スペースは依然として 2 GB に制限されます。システムの物理 RAM が 16 GB を超え、/3GB スイッチが使用されているときには、/3GB スイッチが削除されるまで、オペレーティング システムは追加の RAM を無視します。これは、より多くのページ テーブル エントリをサポートするために必要なカーネルのサイズが増加したためです。管理者は /3GB 機能を知らないうちに自動的に失いたくないと考えることが想定されます。そのため、管理者には、この設定を明示的に変更することが要求されます。
/3GB スイッチは、プロセス ヘッダーで IMAGE_FILE_LARGE_ADDRESS_AWARE を使用するアプリケーションに 3 GB の仮想アドレス スペースを割り当てます。このスイッチは、アプリケーションが 2 GB を超えて 1 GB の追加の仮想アドレス スペースを扱えるようにします。
/3GB スイッチが Boot.ini ファイルで使用されない限り、プロセスとアプリケーションの仮想アドレス スペースは依然として 2 GB に制限されます。下記の例は、アプリケーション メモリ チューニングを有効にするための、Boot.ini ファイルでの /3GB パラメータの追加方法を示しています。
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINNT="????" /3GB
注 : 前の例の "????" は、下記のいずれかのバージョンのオペレーティング システムのプログラム上の名前です。
Windows XP Professional
Windows Server 2003
Windows Server 2003, Enterprise Edition
Windows Server 2003, Datacenter Edition
Windows 2000 Advanced Server
Windows 2000 Datacenter Server
Windows NT Server 4.0, Enterprise Edition
Windows NT 4.0 のメモリ サポート。Microsoft Windows NT 4.0 ワークステーションおよび Server オペレーティング システムで サポートされる最大物理メモリ量は、4 GB です。最大仮想メモリ量は、2 GB です。
Windows NT 4.0 Server, Enterprise Edition で、/3GB スイッチが最初に Boot.ini に加えられました。
アプリケーション メモリ チューニング。この機能は、メモリを集中的に使用するアプリケーションが、Intel ベースのコンピュータで、最高 50 パーセントの仮想メモリを余計に使用できるようにします。アプリケーション メモリ チューニングでは、オペレーティング システムに提供するコンピュータの仮想メモリを減らすことによって、より多くの仮想メモリをアプリケーションに提供します。
アプリケーションの変更。アプリケーション メモリ チューニングをサポートするために、API は不要です。ただし、3 GB のアドレス スペースをすべてのアプリケーションに自動的に提供することは、効果的ではありません。
3 GB のアドレス スペースを使用可能な実行可能ファイルは、それらのファイルのイメージ ヘッダーにビット IMAGE_FILE_LARGE_ADDRESS_AWARE セットを持つことが必要とされます。実行可能ファイルの開発者である場合は、リンカ フラグ (/LARGEADDRESSAWARE) を指定できます。
このビットを設定するには、Microsoft Visual Studio Version 6.0 またはそれ以降と Editbin.exe ユーティリティを使用する必要があります。このユーティリティでは、イメージ ヘッダー (/LARGEADDRESSAWARE) フラグを変更できます。このフラグの設定の詳細については、 Microsoft Visual Studio のドキュメントを参照してください。
一部の製造元は、アプリケーション メモリ チューニングを使用するようにアプリケーションを事前構成し、ユーザーがこの変更を行わなくても済むようにしています。詳細については、アプリケーションのドキュメントを参照してください。また、アプリケーション ベンダに連絡して、Large Address Awareness をサポートしているかどうか、またはそれらのベンダのアプリケーションで Large Address Awareness を有効にできるかどうかを確認してください。
物理アドレス拡張。PAE は、32 ビット (IA-32) Intel Pentium Pro およびそれ以降のプラットフォームのほとんどで動作しているアプリケーションに対して、最高 64 GB の物理メモリのサポートを可能にする、Intel によって提供されるメモリ アドレス拡張です。PAE のサポートは、Windows 2000、および 32 ビット バージョンの Windows XP と Windows Server 2003 で提供されます。64 ビット バージョンの Windows は、PAE をサポートしません。
PAE は、Address Windowing Extensions (AWE) アプリケーション プログラミング インターフェイス (API) を使用するアプリケーションをホスト オペレーティング システムでサポートすることにより、最近の IA-32 プロセッサが物理メモリをアドレス指定するために使用可能なビット数を 32 ビットから 36 ビットにまで拡張できるようにします。AWE API の詳細については、MSDN ライブラリを参照してください。