Em computação, memória compartilhada é uma memória que pode ser acessada simultaneamente por múltiplos programas com a intenção de prover comunicação entre eles ou para evitar cópias redundantes. Dependendo do contexto, os programas podem ser executados em somente um processador
ou por pelo menos dois processadores distintos. O conceito de memória
compartilhada geralmente não inclui usar a memória para a comunicação de
diferentes threads dum mesmo processo.
No hardware, a memória compartilhada se refere tipicamente a grandes blocos de RAM que podem ser acessados por diferentes unidades centrais de processamento (CPU) em um sistema de multiprocessamento.
Um sistema de memória compartilhada é simples de ser programado já que
todos os processadores compartilham a mesma visão dos dados, e a
comunicação entre processadores pode ser tão rápida quanto o acesso à
memória na mesma posição
Em software, a memória compartilhada é tanto um método de comunicação entre processos
quanto um método de conservação do espaço de memória. Para o primeiro,
um processo pode criar uma área na RAM que outros processos sendo
executados simultaneamente pode acessar. Para o segundo, ao invés de
replicar cópias de blocos de memória entre diferentes processos, há
somente uma instância.
Fonte; http://pt.wikipedia.org/wiki/Mem%C3%B3ria_compartilhada