Possible Duplicate:
32-bit Windows Server address > 4GB RAM - How?

I know that for 32-bit OS, the addressable memory space for each process is "4G" (maybe just 3G in user space...). If I have a 8G RAM, is it correct that all of the processes can still utilize (shared) these 8G memory but each of them are limited to a maximum 4G? Or the whole system only can see and utilize 4G out of 8G and thus having 8G RAM on a 32-bit OS is the same as having 4G RAM on it?

link|improve this question
has already been asked here: superuser.com/questions/367490/… – noah1989 Dec 15 '11 at 14:07
Not a question for StackOverflow I think... But yes, each 32bit process may use 2/3/4 G RAM (depending on the OS). A 32bit OS may use more then 4G of RAM if PAE (Physical Address Extension) is supported (which for example isn't the case for WinXP) see: en.wikipedia.org/wiki/Physical_Address_Extension – Hikaru-Shindo Dec 15 '11 at 14:09
feedback

migrated from stackoverflow.com Dec 15 '11 at 14:32

This question came from our site for professional and enthusiast programmers.

closed as exact duplicate by Chris S, Scott Pack, jscott, MikeyB, pauska Dec 15 '11 at 15:12

This question covers exactly the same ground as earlier questions on this topic; its answers may be merged with another identical question. See the FAQ for guidance on how to improve it.

3 Answers

On 32bit systems applications can map over 3GB (on Linux up to 64GB) of RAM using so called PAE (Physical Address Extension) support.

link|improve this answer
feedback

In most linux distributions you need a patched kernel that can address the extra ram. It is usually a "bigmem" kernel.

link|improve this answer
feedback

You are correct that a process under Linux is limited to 3G in userspace.

Being a 32bit OS, this means that at any one time there are only 2^32 addresses available (therefore 4G). Using technologies such as PAE, you can have up to 2^36 bytes physical RAM.

The task of mapping "only" 2^32 addresses at any one time is handled by the MMU (Memory Management Unit) using TLB entries (Translation Lookaside Buffer). It is, however, the role of the OS to tell the MMU to load/evict TLB entries.

link|improve this answer
feedback