Only 3.5GB available with 4 GB RAM installed?Designed as a 32-bit operating system (OS), Windows XP supports an address range from 0 to 4 GB of physical or virtual memory. Even if a computer is loaded with 2 GB of physical RAM, the OS still has access to 4 GB of virtual memory via disk paging. Physical memory addresses are allocated to manage both the computer’s resources (machine hardware) and RAM. The PCI memory addresses starting down from 4 GB are used for things like the BIOS, IO cards, networking, PCI hubs, bus bridges, PCI-Express, and the largest block of addresses is allocated for graphics cards.
If a computer is loaded with 4 GB of physical RAM, it may allocate 0.5 to 1.25 GB for the PCI memory address range before any RAM (physical user memory) addresses are allocated. Thus, the available addresses for RAM may be limited to 2.75 – 3.7 GB with a 32-bit OS, dependent on the AGP aperture size or PCI Express graphics RAM. To access more than 4 GB of memory the Windows client operating system (Windows XP) needs to be upgraded to the 64-bit version of Windows.
Optimize the virtual memory usage
Under typical circumstances and for each process, 2 GB of virtual address space is allotted for the user-mode process, and another 2 GB of virtual address space is allotted to the operating system. When you use the /3GB switch in the Boot.ini file, 3 GB of virtual address space is allotted for the user-mode process, and only 1 GB of virtual address space is allotted to the operating system. This reallocation of the extra 1 GB of address space memory can be more easily joined before all large memory blocks are used.
After you have installed Windows XP, modify the Boot.ini file (in the root folder), and then add the /3GB and the /USERVA=2990 parameters to the startup line, as in the following example:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /3GB /USERVA=2990
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
Note: The Microsoft sources suggest the usage of "/USERVA=3030", but this often fails in practice.
Please use "/USERVA=2990" instead.
Note: The example shows a second boot configuration without the new parameters which is optional.
Learn more: http://support.microsoft.com/kb/823440/EN-US/
Download the latest Shuttle BIOS versions: http://global.shuttle.com/download/download.asp