The most common 32 bit operating systems have a 4 GB virtual address
space, normally giving 2 GB to each process, and keeping 2 GB to
itself. Nothing is forcing a process to use all its memory, of course.
If the application requires more, I guess the options are either to
make it require less, or move to 64 bit operating system. There the
address space is much larger.