Remember, you are using a 32-bit operating system. The maximum amount of virtual address space 32 bits give you access to is 4GB. The hardware, software, and OS kernel all require address reservations. All those reservations are "virtual" and do not necessarily take up any space in RAM or the swap file (not until it is committed).
Though it may sound like Greek to you, there's actually an easy way to understand it. Let's imagine for a moment that all the hardware in your system requires a
maximum of 1GB in address space. At bootup, 1GB worth of [maroon]addresses[/maroon] is then reserved in case it is ever needed. At this point, only a small portion of that is actually pointing to a location in physical RAM or in the page file on the hard drive. This is especially true if you don't have that much of either available (i.e. like if you only had 256MB of RAM with a 384MB swap file).
Say you start with 1GB of RAM. The entire amount can be reported in Task Manager, because it's active and available to the OS. Same goes for 2GB, 2.5GB, all the way up to 3GB. As soon as you go over 3GB, the operating system has to limit the amount of available RAM that applications and the OS kernel can see, because up to 1GB could be requested by the hardware at any time in our example. That doesn't mean it's not being used. It just means that any byte of RAM over 3GB is reserved EXCLUSIVELY for the hardware. This makes sense, because in order for the OS to use more than 3GB, it would have to also map more than 3GB worth of virtual memory addresses. Because 1GB of the 4GB is already mapped at bootup, we know that's not possible.
Hopefully that gives you a sense of what you're seeing. If you look around on the net, you will see all sorts of similar issues with 4GB of RAM installed. The amounts in task manager vary. I've seen 3GB, 3.2GB, 3.56GB, etc. It all depends on the hardware you have in your PC and its requirements for address space. Motherboards with PCI-Express see the worst hits. I've read that it easily takes up to 512MB of addresses for all the different ports, and those boards with SLI capabilities take up even more. Factor in your video card, BIOS, and other hardware using DMA and you can see how quickly that 1GB or so can disappear.
There is a setting you can enable in Windows XP that helps give more address space beyond the 32-bit limitation. It's called the /PAE switch developed by Intel and you can read more about it here:
I'm not sure if that switch is limited to only Intel chipsets or not, but you should definitely make sure your motherboard supports it before turning it on. In addition, updating your BIOS can help too. The
/3GB switch doesn't do anything for the issue you're seeing. It should only be used when you're positive that applications will benefit. It is not a smart move in general because it takes 1GB away from the kernel and hardware making it available to applications instead. That can impact network functionality, such as the number of connections the PC can handle, which is vital to a server. Unless you have software (like Adobe CS) that can make use of it, I'd would disable that switch.
Here are a few more links that might help:
~cdogg
"
Insanity: doing the same thing over and over again and expecting different results." - Albert Einstein
[tab][navy]For general rules and guidelines to get better answers, click here:[/navy] faq219-2884