メモリー サポートと Windows オペレーティング システム

最終更新日: 2005年2月9日

Windows NT ベースのオペレーティング システムは、4 ギガバイト (GB) の仮想メモリーを表す 32 ビットのフラットな仮想アドレス空間をアプリケーションに提供してきました。通常このアドレス空間は、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 ライブラリを参照してください。


ページのトップへページのトップへ