Cada programa é executado em seu próprio espaço de memória virtual. Eles são alocados em blocos de 1 MB, pois o programa solicita memória do sistema operacional. Os programas vêem essa memória como um grande bloco contíguo de memória (o chamado "modelo de memória plana"). Isso era diferente do modelo de "memória segmentada" de modelo de 16 bits mais antigo, em que dois registradores se combinariam em um único endereço de memória de 20 ou 32 bits, dependendo do modo de operação atual do controlador de memória.
Cada programa de 32 bits será limitado a 2 GB de memória total utilizável; a área de memória iniciando em 0x20000000 é usada para DLLs em aplicativos de 32 bits. É verdade que um aplicativo de 32 bits de indivíduo individual não poderá acessar todos os 16 GB de memória, porque nem tudo é endereçável. No entanto, cada programa inicia próximo à parte inferior de seu bloco de memória virtual (próximo a 0x00000000), e esses são compensados pelo gerenciador de memória virtual para a localização física real na RAM, portanto, nesse sentido, o programa de 32 bits pode residir em qualquer lugar memória física. Conceitualmente, isso significa que você pode preencher todos os 16 GB de RAM com nada além de programas de 32 bits.
Os aplicativos de 32 e 64 bits podem ser executados lado a lado e podem estar localizados em qualquer lugar na RAM. Observe que a paginação acontece antes que a memória seja esgotada, portanto, ainda é improvável que você possa executar 16 aplicativos de 1 GB de RAM sem ocorrer paginação. O sistema tenta manter alguma memória física livre e também usa isso como um cache para leituras e gravações em disco.
Observe que mesmo os sistemas operacionais de 32 bits podem acessar mais de 4 GB de memória, embora cada aplicativo individual ainda esteja limitado a 4 GB. Isto é devido a uma tecnologia relativamente antiga conhecida como PAE (Physical Address Extension). O Windows de 32 bits não permite o acesso à memória acima de 2 GB / 4 GB como uma questão de licenciamento, mas as versões de 32 bits do Linux seriam executadas com prazer em um sistema de 16 GB com acesso total à memória instalada. Algumas versões de 32 bits do Windows Server também podem acessar mais de 4 GB de memória: "Windows Server 2008 Datacenter" pode usar até 64 GB de RAM em um processador de 32 bits.