http://live.pirillo.com/ – Windows Vista 32 bit "supports" up to 4GB of memory, but is 4GB of memory enough to run Windows Vista? Sometimes it’s more than enough.
If you’re running a 32 bit system, 4GB is your technical upper limit. Of course, Windows may not report that you have all 4GB available! Addressof has a good article on why this happens:
Here is a little piece to the total 64-bit puzzle that no-one seems to be telling anyone about. In that 4GB of address space, your video card memory is partitioned. Meaning if you have a 256MB video card, 256MB is consumed in the 4GB of total addressable space that a 32-bit processor can utilize. Here’s the problem; what if you have a video card that has 512MB, 640MB, 768MB? Yup, that will be mapped to the 4GB of addressable space. So if you had a 768MB NVidia 8800 card and 4GB of RAM, you’d lose 768MB of that 4GB of memory immediately to the device making it non-accessible "memory" for the OS. And it doesn’t stop there, all of your other devices that need to be communicated with (you know, anything with a driver) consumes part of this address space. So in my current 4GB worth of RAM system, 1.25GB worth of addressable space is consumed by devices.
Under a 64 bit system you can use 4GB of memory and much more – up to 16 exbibytes! And if we know Windows, it will use all 16 exbibytes
Is 4 GB of memory enough to run Windows Vista? Yes it is, according to Chris. What do you recommend?





Windows addresses a maximum of 3,37GB at my server, this was due to DEP (Data Executing Prevention) who uses up a few of the 4GB adressable adresses. To expand the adresses you can make advantage of PAE (Physical Address Extension). With PEA windows “supports” up to 8GB of RAM. At windows 2k3 server this option goes on by default at insering for 4GB ram. This allows windows to make use of ALL the 4096MB’s. What doesnt change is the kernel mode. Windows has a built-in maximum of 2GB for kernel mode. By using the /3GB switch the kernel mode even gets decreased to 1GB. Even with PAE and 8GB of memory the kernel mode doesnt use more then 2GB (or 1GB with the /3GB switch on). This is why a Windows terminal server has a maximum of a couple of hundered users, even if it could use 32GB of ram, since the kernel mode wont use more then 2GB. Only sollution to this problem is using x64. For your problem, just turn on PAE and its solved. You can turn on PAE by using the /PAE switch at boot.ini, you can also turn of DEP to decrease the amount of used memory mappings, but it will still use a few.