Available RAM is limited by several items other than the amount physically installed. Limitations include hardware (system) architecture, OS architecture and installed peripherals.
The 32-BIT architecture can address 4 GB (4069 MB) of address space. This address space holds system RAM, system IO and BIOS as well as installed adapter IO and memory. If the hardware or OS is 32-bit then you are limited to the 32-bit address space.
Address space is (normally) parceled out in this order:
* Hardware BIOS
* Hardware IO
* Adapter IO and memory
So RAM gets the address space that is left over. For a 32-bit architecture this is typically from 2.6 GB to 3.2 GB. Thus the maximum RAM your OS will see is limited to the available address space usualy around 3 GB depending on the physical hardware and peripherals.
If you have 64-bit hardware and OS, then the address space is extremely large, 32 EB (exabytes). Thus in today’s hardware you should see all memory installed.
Here is one of many articles on 32-bit vs 64-bit:
Clearing up the 32/64-bit memory limit confusion