On a 32-bit system, no matter how much memory you have in your machine, Windows can only use so much, and any given program, even less.
Hmmmm... Let take the example of Windows XP pro ( the usual version ( 32 bit ), not the x64 )...
Yes, with standart installation, you have access to only 4 GB address range... where you can use between 3 and 3.5 gb due to the address range needed for your material ( by example, i have a Nvidia 8800 ultra with 768 mb... this remove 768 mb from the 4 GB address range )...
Second problem, any process can only use 2 GB ram at maximum... standart installation use 2 GB for application and 2 GB for kernel...
So, it seem that Krya is right.... BUT ...
You can modify your boot.ini and have a better result...
By example, you can add the /PAE flag in your boot.ini... Windows XP remain a 32 bits system but the PAE allow 36 bit memory range... good for 64 GB of physical memory... the PAE is a good option for people with older processor, who are not a x86-64, since the PAE is supported from the old Pentium Pro...
A other example, you can add the /3g flag to your boot.ini... this allow application to use a maximum of 3 GB ram in place of 2 GB ram... 50% more place... beware, the /3g flag reduce your kernel space from 2 gb to 1 gb... no a big problem for usual people but these who run a host server or mail server, etc... can run out of memory for the kernel... mean a blue screen !!!
Now, there is a catch... windows XP and windows vista desktop version can only use 4 gb... so, with the PAE, you have the full 4 gb ram to use, address for material are using the address over the 4 gb range... windows 2000 advanced server can use 8 gb, the extended version 32 gb... windows server 2003 entreprise SP1 can use 64 gb... for info, windows XP SP2 use the PAE by default if your processor have the NX feature ( no-execute )...
So, for the people with IA32 bit processor, you can tune your windows XP 32 bits and be allow to use more memory... but this solution is only valid if you have 4 gb RAM... over 4 GB ram and below 64 gb, you need a 32 bit server edition of windows... over 64 gb ram and below 16 exabytes of ram, you need a 64 bit windows edition...
Of course, you can use other 32 bits operating system... MAC OS X 10.5 have a 32 bit kernel but support 32 GB ram... Linux 32 bit from the kernel 2.6 support PAE with a maximum of 64 GB ram...