Memoria compartilhada Distribuída
No começo da utilização dos sistemas distribuídos, assumia-se implicitamente que processos em máquinas com memória distribuída executavam em espaços de endereçamento disjuntos, sendo a comunicação entre eles vista em termos de troca de mensagens. Em 1986, Kai Li propôs um esquema diferente, agora conhecido por Memória Compartilhada Distribuída (DSM). O que Li queria fazer era que, uma coleção de estações de trabalho conectadas por uma LAN (Local Área Network) compartilhasse um espaço de endereçamento virtual único.
Na variação mais simples, cada página está presente exatamente em uma máquina. Qualquer processador pode acessar diretamente qualquer posição do espaço de endereçamento virtual compartilhado. Os gerenciadores de memória do mecanismo de DSM programam o mapeamento entre a memória local e este espaço de endereçamento. Para estes gerenciadores, a memória local de um processador é considerada como uma grande cache do espaço de endereçamento compartilhado.
Referências às páginas locais são resolvidas por hardware, na velocidade da memória, enquanto que, referências às páginas presentes em outras máquinas causam falha de página (page fault). Então, o sistema DSM responsabiliza-se por mandar uma mensagem para a máquina remota, a qual encontra a página necessária e a envia para o processador destino. Essencialmente, esta proposta é similar ao tradicional sistema de memória virtual, com a diferença de ao invés de buscar as páginas no disco, buscá-las em outra máquina da rede. Toda comunicação e sincronização podem ser feita através da memória, sem comunicação visível para os processos de usuário.
Memória compartilhada distribuída pode ser intimamente relacionada com arquitetura de computadores, sistemas operacionais, ambientes de execução e linguagens de programação.
Estrutura Geral de Sistemas DSM
A organização básica de um sistema DSM é similar a de um multicomputador que utiliza troca de mensagens. Geralmente envolve um