32-bit OS's have a hard architectual limit of 4GB. The OS is simply incapable of addressing more then that, as it can't count higher then 2^32, or 4GB.
However, within that 4GB range, upwards of 1GB is reserved for addressing hardware [the PCI/PCI-E bus is by far the biggest offender]. Typically, you are left with somewhere between 2.75 and 3.5 GB of usable RAM on a 32-bit system installed with 4GB+ physical RAM as a result.
The only way to have all that RAM usable by the system is to move to a 64-bit OS.