Léxico de TI › Programação › Memória compartilhada

Memória compartilhada

Programação Svenska → Atualizado: 2026-09-28

A forma mais rápida de comunicação entre processos: dois processos mapeiam as mesmas páginas físicas de memória e leem os dados um do outro sem copiar nada.

As alternativas — pipes, sockets, filas de mensagens — passam pelo kernel e copiam pelo menos uma vez. A memória compartilhada custa apenas um mapeamento; depois disso, o acesso é tão rápido quanto variáveis comuns. O preço é que você mesmo precisa sincronizar: nenhuma chamada de kernel te protege, então mutexes ou semáforos precisam viver dentro da própria região compartilhada, e condições de corrida viram problema seu. Em sistemas POSIX usa-se shm_open seguido de mmap; no Linux, também /dev/shm como arquivos comuns. Usado por bancos de dados (o PostgreSQL mantém todo o seu buffer pool aqui), pilhas gráficas e caches compartilhados. A variante mais antiga do System V, com shmget, sobrevive mas tem um gerenciamento de ciclo de vida mais desajeitado.

← Voltar ao léxico