A 32-bit Windows operating system will recognize up to 4GB of RAM, but will not be able to utilize the total amount because the address space is only 4GB in size. The draw from critical functions such as the system BIOS, motherboard resources, memory mapped I/O, AGP, PCI, PCI-E, and other memory allocations for PCI devices use this space as well. After all these functions have taken their share of the address space you usually will have around 3.5GB of free address space.
Hope this helps.
Edited by dc3, 30 September 2013 - 12:55 PM.