Na programação de computadores, a memória partilhada é um método pelo qual os processos de programação podem trocar dados mais rapidamente do que através da leitura e escrita usando os serviços regulares do sistema operativo. Por exemplo, um processo cliente pode ter dados para passar para um processo servidor que o processo servidor é para modificar e retornar para o cliente. Normalmente, isso requereria que o cliente escrevesse em um arquivo de saída (usando os buffers do sistema operacional) e o servidor lesse esse arquivo como entrada dos buffers para seu próprio espaço de trabalho. Usando uma área designada de memória compartilhada, os dados podem ser tornados diretamente acessíveis aos dois processos sem a necessidade de usar os serviços do sistema. Para colocar os dados na memória compartilhada, o cliente obtém acesso à memória compartilhada após verificar um valor de semáforo, grava os dados e depois reinicia o semáforo para sinalizar ao servidor (que periodicamente verifica a memória compartilhada para possíveis entradas) que os dados estão esperando. Por sua vez, o processo do servidor grava os dados de volta à área de memória compartilhada, usando o semáforo para indicar que os dados estão prontos para serem lidos.
Outras formas de comunicação interprocessada (IPC) incluem enfileiramento de mensagens, semáforos e soquetes.