Halaman 2 dari 4
Memory Support and Windows Operating Systems
Updated: February 9, 2005
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. The address space is usually split so
that 2 GB of address space is directly accessible to the application
and the other 2 GB is only accessible to the Windows executive software.
The
32-bit versions of the Windows 2000 Advanced Server and Windows NT
Server 4.0, Enterprise Edition, operating systems were the first
versions of Windows to provide applications with a 3-GB flat virtual
address space, with the kernel and executive components using only 1
GB. In response to customer requests, Microsoft has expanded the
availability of this support to the 32-bit version of Windows XP
Professional and all 32-bit versions of Windows Server 2003.
Windows 2000 Memory Support. With Windows 2000 Professional
and Server, the maximum amount of memory that can be supported is 4 GB
(identical to Windows NT 4.0, as described later in this section).
However, Windows 2000 Advanced Server supports 8 GB of physical RAM and
Windows 2000 Datacenter Server supports 32 GB of physical RAM using the
PAE feature of the IA-32 processor family, beginning with Intel Pentium
Pro and later.
Windows XP Professional and Windows Server 2003 Memory Support.
The maximum amount of memory that can be supported on Windows XP
Professional and Windows Server 2003 is also 4 GB. However, Windows
Server 2003, Enterprise Edition supports 32 GB of physical RAM and
Windows Server 2003, Datacenter Edition supports 64 GB of physical RAM using the PAE feature.
The virtual address space of processes and applications is still limited to 2 GB unless the /3GB
switch is used in the Boot.ini file. When the physical RAM in the
system exceeds 16 GB and the /3GB switch is used, the operating system
will ignore the additional RAM until the /3GB switch is removed. This
is because of the increased size of the kernel required to support more
Page Table Entries. The assumption is made that the administrator would
rather not lose the /3GB functionality silently and automatically;
therefore, this requires the administrator to explicitly change this
setting.
The /3GB switch allocates 3 GB of virtual address
space to an application that uses IMAGE_FILE_LARGE_ADDRESS_AWARE in the
process header. This switch allows applications to address 1 GB of
additional virtual address space above 2 GB.
The virtual address space of processes and applications is still limited to 2 GB, unless the /3GB switch is used in the Boot.ini file. The following example shows how to add the /3GB parameter in the Boot.ini file to enable application memory tuning:
===============================================
[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 2003Windows 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 Memory Support. With Microsoft Windows NT
4.0 Workstation and Server operating systems, the maximum amount of
physical memory supported is 4 GB. The maximum amount of virtual memory
is 2 GB.
With Windows NT 4.0 Server, Enterprise Edition, the /3GB switch was first added to Boot.ini.
Application Memory Tuning.
This capability allows memory-intensive applications to utilize up to
50 percent more virtual memory on Intel-based computers. Application
memory tuning provides more of the computer's virtual memory to
applications by providing less virtual memory to the operating system.
Application Changes.
No APIs are required to support application memory tuning. However, it
would be ineffective to automatically provide every application with a
3-GB address space.
Executables that can use the 3-GB address
space are required to have the bit IMAGE_FILE_LARGE_ADDRESS_AWARE set
in their image header. If you are the developer of the executable, you
can specify a linker flag (/LARGEADDRESSAWARE).
To set this bit,
you must use Microsoft Visual Studio Version 6.0 or later and the
Editbin.exe utility, which has the ability to modify the image header
(/LARGEADDRESSAWARE) flag. For more information on setting this flag,
see the Microsoft Visual Studio documentation.
Some manufacturers
preconfigure their applications to use application memory tuning,
making it unnecessary for you to make this change. For more
information, see your application documentation and contact your
application vendor to determine whether they support Large Address
Awareness or whether you can enable it in their application.
Physical Address Extension.
PAE is an Intel-provided memory address extension that enables support
of up to 64 GB of physical memory for applications running on most
32-bit (IA-32) Intel Pentium Pro and later platforms. Support for PAE
is provided under Windows 2000 and 32-bit versions of Windows XP and
Windows Server 2003. 64-bit versions of Windows do not support PAE.
PAE
allows the most recent IA-32 processors to expand the number of bits
that can be used to address physical memory from 32 bits to 36 bits
through support in the host operating system for applications using the
Address Windowing Extensions (AWE) application programming interface
(API).
|