Memória compartilhada
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.