Upload
pedro-de-vasconcellos
View
175
Download
3
Embed Size (px)
Citation preview
• Introdução• DSM x Troca de Mensagens• Arquitetura• Algoritmos• Modelos de Consistência• Bibliografia
• Distribuited Shared Memory (DSM)
• “Abstração usada para o compartilhamento de dados entre computadores que não compartilham memória física.” - Colouris, Dollimore & Kindberg
• Memória compartilhada▫ memória física global de um sistema igualmente acessível
por todos processadores
• Memória distribuída▫ cada processador tem sua própria memória privada;
comunicação por mensagens
• Memória compartilhada distribuída
▫ as memórias são distribuídas fisicamente em cada nó, mas todos os processadores podem endereçar essa memória
• Modelo de Programação
▫ Dados compartilhados diretamente por processos▫ Não há encapsulamento de variáveis
▫ DSM write(endereço, dados) var d = read(endereço)
▫ Troca de Mensagens send(destinatário, dados) receive(dados)
▫ No DSM torna-se necessário mecanismos de controle de concorrência
• Eficiência
▫ Experiências: programas paralelos para DSM podem ser executados tão bem quanto equivalentes escritos com o paradigma de troca de mensagens para um número específico de computadores
▫ Não há generalização (resultado depende de muitos fatores)
• Persistência
▫ DSM Um processo pode deixar dados em uma posição de memória
específica (esperada), para que outro processo examine o conteúdo a ser executado, gerando persistência.
▫ Troca de Mensagens Processos são executados ao mesmo tempo.
• Simplicidade
▫ DSM Programação mais simples Programador não se preocupa com comunicação entre
processos Comunicação: processo escreve dados na memória, a serem
lidos por outros processos Sincronização: seções críticas, semáforos, monitores.
▫ Troca de Mensagens Várias dificuldades: Controle de Fluxo Mensagens perdidas Bloqueio
• Algoritmos:▫ Algoritmo do Servidor Central▫ Algoritmo da Migração ▫ Algoritmo da Replicação para Leitura ▫ Algoritmo da Replicação Total
• Problemas:▫ Consistência dos dados▫ Velocidade de resposta▫ Coerência dos dados
• Nó central▫ Administra todos os dados
• Primitivas de comunicação:▫ Read▫ Write
• Proibir a replicação e migração dos dados.• O servidor é fator crítico na performance dos sistema.• Possibilidade de mais de um servidor.
• Leitura simples/ Escrita simples
• Armazenamento local▫ Redução da latência.
• Bloqueio acontece no nível de página.▫ Reduzir o tamanho da tabela de lock.
• Localização de páginas:▫ Servidor central▫ Broadcasting▫ Servidor distribuído fixo
gerente do bloco▫ Servidor distribuído dinâmico
probable owner
• Leitura múltipla/ Escrita simples
• Somente um processador possui permissão para atualizar uma cópia replicada em um dado momento
• Localização de páginas necessário.
• Invalidação das outras cópias:▫ Write Invalidate▫ Write Update (alternativa)
• Write Invalidate x Write Update:▫ Write Update: Uso intenso da rede.▫ Write Invalidade: Necessidade de busca do bloco na hora
do uso.
• Leitura múltipla/ Escrita múltipla
• Semelhante ao de replicação para leitura.• Um novo elemento chamado de seqüenciador.
• Seqüenciador:▫ Atribuir um número a cada alteração feita em um dado
replicado ▫ Atualizar todas as cópias na ordem que as alterações foram
executadas
• Manter a coerência a partir de limitações• Exemplo:
▫ a e b são variáveis armazenadas na DSM▫ Limitação: sempre a = b▫ Dois ou mais processos executando o seguinte código
a = a+1 b = b+1
▫ Execução imprópria a = b = 0 Processo 1:
a = a + 1 = 1 Processo 2 interrompe:
a = a + 1 = 2 b = b + 1 = 1
▫ Limitação quebrada
• Solução: seção crítica; semáforos; monitores
• Problema de réplicas e atualizações▫ Dado é lido a partir de réplicas locais (> eficiência), mas as
atualizações devem ser propagadas a todos os gestores de réplicas
• Exemplo:▫ Variáveis a e b acessíveis por dois ou mais processos; ar e
br variáveis locais▫ Processo 1:
br = b ar = a If (ar>=br) then print (“OK”)
▫ Processo 2: a = a+1 b = b+1
• Exemplo (cont):▫ a = b = 0▫ Processo 1 deveria ler uma dessas:
ar = br = 0 ar = 1 e br = 0 ar = br = 1 Todas satisfazendo (ar>=br)
▫ Uma implementação DSM pode entregar as atualizações de a e b fora de ordem para o gestor de réplicas durante o processo 1
ar = 0 e br=1 pode ocorrer
• Modelos fortes aumentam a latência de acesso à memória e a banda requerida, mas facilitam a programação
• Modelos “relaxados” permitem reordenação, pipelining e sobreposição, que aumentam a performance, mas exigem alto envolvimento do programador na sincronização de acesso a dados compartilhados
• Consistência Sequencial
▫ Garante que todos os nós recebam as alterações na mesma ordem
▫ O efeito de cada acesso à memória deve ser executado globalmente antes que o próximo acesso tenha permissão para executar
▫ Dispendioso pois requer controle de concorrência e ordenação de mensagens
• Consistência Sequencial
▫ No exemplo passado, a combinação ar=0 e br=1 não ocorreria, pois o processo 1 estaria lendo valores conflitantes com a ordem de programa do processo 2
• Consistência Sequencial
▫ Exemplo 1: W(x)a -> escrita pelo processo para o item de dados x com o
valor a R(x)b ->leitura pelo processo do item de dados x retornando
o valor b
P1 executa uma escrita para o item de dados x, modificando o seu valor para a. Operação feita localmente e depois propagada para os outros processos.
Mais tarde, P2 lê o valor NIL e, pouco tempo, depois lê a. Existe um retardo para propagar a atualização de x para P2.
• Consistência Sequencial
▫ Exemplo 2: P1 executa uma escrita para o item de dados x, modificando
o seu valor para a. Depois, P2 realiza outra escrita, substituindo x por b. P3 e P4 primeiro lêem o valor b e, mais tarde, o valor a Operação de escrita do processo P2 ocorreu antes à do
processo P1 O modelo (a) é sequencialmente consistente O modelo (b) não é sequencialmente consistente, pois nem
todos os processos vêem a mesma intercalação de operações de escrita (acaba em resultados finais diferentes)
• Consistência Causal
▫ Distinção entre eventos potencialmente relacionados por causalidade e os que não são
▫ Se o evento b é causado ou influenciado por um evento anterior a, a causalidade requer que todos vejam primeiro a, para depois ver b
▫ Operações não relacionadas por causalidade são concorrentes
▫ Escritas potencialmente relacionadas por causalidade devem ser vistas por todos os processos na mesma ordem; escritas concorrentes podem ser vistas em ordem diferente
• Consistência Causal
▫ Exemplo 1:
Sequência de eventos permitida na consistência por causalidade, mas proibida na sequencial
Escritas W2(x)b e W1(x)c são concorrentes -> não exige que todos os processos as vejam na mesma ordem
• Consistência Causal
▫ Exemplo 2:
Em (a), W2(x)b potencialmente dependente de W1(x)a porque b pode ser resultado de um cálculo que envolva o valor lido por R2(x)a. As duas escritas são relacionadas por causalidade, portanto temos uma violação na ordenação das operações
• Consistência Causal
▫ Exemplo 2:
Em (b), a leitura R(x)a foi removida, e W(x)b e W(x)a agora são escritas concorrentes. Assim, há uma sequência correta de eventos em um depósito consistente por causalidade
• Consistência Causal
▫ Exemplo 2:
Em (b), a leitura R(x)a foi removida, e W(x)b e W(x)a agora são escritas concorrentes. Assim, há uma sequência correta de eventos em um depósito consistente por causalidade
• Consistência Causal
▫ Exemplo 2:
Em (b), a leitura R(x)a foi removida, e W(x)b e W(x)a agora são escritas concorrentes. Assim, há uma sequência correta de eventos em um depósito consistente por causalidade
• Weak Consistency
▫ Nem toda operação de escrita precisa ser vista pelos outros processos
▫ acesso a variável de sincronização (S) diz quando sincronizar valores - aumenta trabalho de programadores
• Colouris, Dollimore, Kindberg. Distribuited Systems: Concepts and Design, Third Edition
• http://www.fisiocomp.ufjf.br/anapaula/SD/SD_aula_16.pdf (último acesso em 21/05/2012)
• http://web.fe.up.pt/~pfs/aulas/sd2009/at/20cons.pdf (último acesso em 21/05/2012)
• http://www.tlc-networks.polito.it/oldsite/anapaula/Aula_Cap07a.pdf (último acesso em 21/05/2012)
• http://www.adonaimedrado.pro.br/principal/index.php?option=com_content&view=article&id=57&Itemid=92 (último acesso em 21/05/2012)
• http://www.inf.ufrgs.br/gppd/disc/cmp134/trabs/T1/991/DSM/DSM-Hardware.html#_Toc455993147 (último acesso em 21/05/2012)
• http://www.ic.unicamp.br/~ranido/mc704/DSM.pdf (último acesso em 21/05/2012)
• http://www.inf.ufsc.br/~frank/INE5418/2.5.DSM-Folhetos.pdf (último acesso em 21/05/2012)
• http://www.inf.pucrs.br/~fldotti/sod/dsm.PDF (último acesso em 21/05/2012)
Bibliografia