memória compartilhada distribuída (dsm)

31
Eduardo Elael Pedro de Vasconcellos

Upload: pedro-de-vasconcellos

Post on 19-Jul-2015

173 views

Category:

Engineering


3 download

TRANSCRIPT

Eduardo ElaelPedro de Vasconcellos

• 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