A CPU tem uma unidade de gerenciamento de memória. Ele mapeia o endereço de memória virtual para endereços de memória física. Isso é feito procurando mapeamentos em uma tabela. Essas entradas são armazenadas em cache em um buffer de lookaside de tradução (TLB) . Cada processo tem seu próprio mapeamento.
Se dois processos compartilharem alguma memória física, o SO mapeará parte da memória virtual do processo A para essa memória física e mapeará parte da memória virtual do processo B para essa mesma memória física. Eles não precisam estar no mesmo endereço virtual nos dois processos.