|Windows XP will recognise all the of the 4 GBs of RAM but wont actually use it. After taking away whatever is used for the integrated Video some of the upper memory from the top downwards is reserved for memory mapped i/o. How much is used varies as it is dependant on the hardware installed and its memory requirements. This is why you will only see something less than 4GBs. With a 64 bit OS the memory mapped region is up in the Terra byte area|
This is a feature of all 32 bit Operating Systems, not just Windows. In the days when 1GB of RAM was an enormous amount it didn't matter as the upper memory region that was used for i/o was way out of reach of any RAM that was installed.
With Windows XP the maximum amount of memory any process can use is 2GBs regardless of how much is installed With 64 bit Windows the maximum is 6 Terra bytes but as stated above, how much you can actually install is dependant on the motherboard design. 8Gbs seems the most common with 16 GBs for high end servers.