Top Banner
Eduardo Elael Pedro de Vasconcellos
31

Memória Compartilhada Distribuída (DSM)

Jul 19, 2015

Download

Engineering

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Memória Compartilhada Distribuída (DSM)

Eduardo ElaelPedro de Vasconcellos

Page 2: Memória Compartilhada Distribuída (DSM)

• Introdução• DSM x Troca de Mensagens• Arquitetura• Algoritmos• Modelos de Consistência• Bibliografia

Page 3: Memória Compartilhada Distribuída (DSM)

• 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

Page 4: Memória Compartilhada Distribuída (DSM)

• 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

Page 5: Memória Compartilhada Distribuída (DSM)

• 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

Page 6: Memória Compartilhada Distribuída (DSM)

• 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

Page 7: Memória Compartilhada Distribuída (DSM)

• 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)

Page 8: Memória Compartilhada Distribuída (DSM)

• 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.

Page 9: Memória Compartilhada Distribuída (DSM)

• 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

Page 10: Memória Compartilhada Distribuída (DSM)
Page 11: Memória Compartilhada Distribuída (DSM)

• 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

Page 12: Memória Compartilhada Distribuída (DSM)

• 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.

Page 13: Memória Compartilhada Distribuída (DSM)

• 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

Page 14: Memória Compartilhada Distribuída (DSM)

• 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.

Page 15: Memória Compartilhada Distribuída (DSM)

• 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

Page 16: Memória Compartilhada Distribuída (DSM)

• 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

Page 17: Memória Compartilhada Distribuída (DSM)

• 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

Page 18: Memória Compartilhada Distribuída (DSM)

• 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

Page 19: Memória Compartilhada Distribuída (DSM)

• 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

Page 20: Memória Compartilhada Distribuída (DSM)

• 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

Page 21: Memória Compartilhada Distribuída (DSM)

• 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

Page 22: Memória Compartilhada Distribuída (DSM)

• 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.

Page 23: Memória Compartilhada Distribuída (DSM)

• 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)

Page 24: Memória Compartilhada Distribuída (DSM)

• 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

Page 25: Memória Compartilhada Distribuída (DSM)

• 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

Page 26: Memória Compartilhada Distribuída (DSM)

• 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

Page 27: Memória Compartilhada Distribuída (DSM)

• 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

Page 28: Memória Compartilhada Distribuída (DSM)

• 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

Page 29: Memória Compartilhada Distribuída (DSM)

• 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

Page 30: Memória Compartilhada Distribuída (DSM)

• 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

Page 31: Memória Compartilhada Distribuída (DSM)

• 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