SlideShare uma empresa Scribd logo
1 de 31
Eduardo Elael 
Pedro 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
Bibliografia 
• 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)

Mais conteúdo relacionado

Mais procurados

Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
Matrizes Pascal - programação
Matrizes Pascal - programaçãoMatrizes Pascal - programação
Matrizes Pascal - programaçãoCarlos Pereira
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Faculdade Mater Christi
 
Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuídoTiago R. Sampaio
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: ThreadsAlexandre Duarte
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentaçãoerysonsi
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraWellington Oliveira
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Leinylson Fontinele
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Exercicios Php
Exercicios PhpExercicios Php
Exercicios Phpsofteam
 
Arquitectura Interna Do Computador
Arquitectura Interna Do ComputadorArquitectura Interna Do Computador
Arquitectura Interna Do Computadoraerc
 

Mais procurados (20)

Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Matrizes Pascal - programação
Matrizes Pascal - programaçãoMatrizes Pascal - programação
Matrizes Pascal - programação
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuído
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: Threads
 
Introdução ao Teste de Software
Introdução ao Teste de SoftwareIntrodução ao Teste de Software
Introdução ao Teste de Software
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
Aula3 engenharia requisitos
Aula3 engenharia requisitosAula3 engenharia requisitos
Aula3 engenharia requisitos
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Exercicios Php
Exercicios PhpExercicios Php
Exercicios Php
 
Arquitectura Interna Do Computador
Arquitectura Interna Do ComputadorArquitectura Interna Do Computador
Arquitectura Interna Do Computador
 
Modelo cascata
Modelo cascataModelo cascata
Modelo cascata
 

Destaque

Curso de Java - Antonio Alves - Aula 03
Curso de Java - Antonio Alves - Aula 03Curso de Java - Antonio Alves - Aula 03
Curso de Java - Antonio Alves - Aula 03Antonio Alves
 
Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
Design de Interação - Capítulo 8 - Design, Prototipação e Construção - Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
Design de Interação - Capítulo 8 - Design, Prototipação e Construção - Pedro de Vasconcellos
 
cARdapp - cardápio em realidade aumentada
cARdapp - cardápio em realidade aumentadacARdapp - cardápio em realidade aumentada
cARdapp - cardápio em realidade aumentadaPedro de Vasconcellos
 
Managing Innovation - 3rd edition – Capítulos 10 e 11
Managing Innovation - 3rd edition – Capítulos 10 e 11Managing Innovation - 3rd edition – Capítulos 10 e 11
Managing Innovation - 3rd edition – Capítulos 10 e 11Pedro de Vasconcellos
 
Curso de Java - Antonio Alves - Aula 01
Curso de Java - Antonio Alves - Aula 01Curso de Java - Antonio Alves - Aula 01
Curso de Java - Antonio Alves - Aula 01Antonio Alves
 
Trabalhando com Chromakey
Trabalhando com ChromakeyTrabalhando com Chromakey
Trabalhando com ChromakeyAntonio Alves
 
Sistema gerenciadores de bancos de dados
Sistema gerenciadores de bancos de dadosSistema gerenciadores de bancos de dados
Sistema gerenciadores de bancos de dadosAntonio Alves
 
Lógica de programação em java
Lógica de programação em javaLógica de programação em java
Lógica de programação em javaAntonio Alves
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04Antonio Alves
 

Destaque (20)

Curso de Java - Antonio Alves - Aula 03
Curso de Java - Antonio Alves - Aula 03Curso de Java - Antonio Alves - Aula 03
Curso de Java - Antonio Alves - Aula 03
 
DQguru
DQguruDQguru
DQguru
 
Editor de Video Sony Vegas PRO
Editor de Video Sony Vegas PROEditor de Video Sony Vegas PRO
Editor de Video Sony Vegas PRO
 
FEBRL
FEBRLFEBRL
FEBRL
 
Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
Design de Interação - Capítulo 8 - Design, Prototipação e Construção - Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
Design de Interação - Capítulo 8 - Design, Prototipação e Construção -
 
Análise Comparativa: MP3 e AAC
Análise Comparativa: MP3 e AACAnálise Comparativa: MP3 e AAC
Análise Comparativa: MP3 e AAC
 
cARdapp - cardápio em realidade aumentada
cARdapp - cardápio em realidade aumentadacARdapp - cardápio em realidade aumentada
cARdapp - cardápio em realidade aumentada
 
Modelos de Cor
Modelos de CorModelos de Cor
Modelos de Cor
 
BitTorrent
BitTorrentBitTorrent
BitTorrent
 
Managing Innovation - 3rd edition – Capítulos 10 e 11
Managing Innovation - 3rd edition – Capítulos 10 e 11Managing Innovation - 3rd edition – Capítulos 10 e 11
Managing Innovation - 3rd edition – Capítulos 10 e 11
 
Curso de Java - Antonio Alves - Aula 01
Curso de Java - Antonio Alves - Aula 01Curso de Java - Antonio Alves - Aula 01
Curso de Java - Antonio Alves - Aula 01
 
Efeitos Visuais
Efeitos VisuaisEfeitos Visuais
Efeitos Visuais
 
Trabalhando com Chromakey
Trabalhando com ChromakeyTrabalhando com Chromakey
Trabalhando com Chromakey
 
Sistema gerenciadores de bancos de dados
Sistema gerenciadores de bancos de dadosSistema gerenciadores de bancos de dados
Sistema gerenciadores de bancos de dados
 
Edición de Video - Sony Vegas Pro
Edición de Video - Sony Vegas Pro Edición de Video - Sony Vegas Pro
Edición de Video - Sony Vegas Pro
 
Lógica de programação em java
Lógica de programação em javaLógica de programação em java
Lógica de programação em java
 
Modelos de Cor
Modelos de Cor Modelos de Cor
Modelos de Cor
 
Curso de java - Antonio Alves - aula 04
Curso de java - Antonio Alves -  aula 04Curso de java - Antonio Alves -  aula 04
Curso de java - Antonio Alves - aula 04
 
Escopo de variaveis
Escopo de variaveisEscopo de variaveis
Escopo de variaveis
 
Bluetooth Low Energy
Bluetooth Low EnergyBluetooth Low Energy
Bluetooth Low Energy
 

Semelhante a Memória Compartilhada Distribuída (DSM)

Cap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdfCap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdfHurgelNeto
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLJohnes Castro
 
Banco de Dados Distribuídos
Banco de Dados DistribuídosBanco de Dados Distribuídos
Banco de Dados DistribuídosAdail Viana Neto
 
Boas práticas na configuração de jobs no Kubernetes
Boas práticas na configuração de jobs no KubernetesBoas práticas na configuração de jobs no Kubernetes
Boas práticas na configuração de jobs no KubernetesGraziella Bonizi
 
Amostra Resolucao da Prova Sefaz 2007 Prof Jaime
Amostra   Resolucao da Prova Sefaz 2007   Prof JaimeAmostra   Resolucao da Prova Sefaz 2007   Prof Jaime
Amostra Resolucao da Prova Sefaz 2007 Prof JaimeWalter Cunha
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosValdir Junior
 
Alta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/LinuxAlta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/LinuxMario Bittencourt
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIMatheus Espanhol
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Distribuição de Dados em Escala Global com Cassandra
Distribuição de Dados em Escala Global com CassandraDistribuição de Dados em Escala Global com Cassandra
Distribuição de Dados em Escala Global com CassandraMário Marroquim
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRodrigo Recio
 
Gerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasGerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasWendel Moreira
 
Desmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQLDesmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQLEuler Taveira
 

Semelhante a Memória Compartilhada Distribuída (DSM) (20)

Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Cap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdfCap-6-Multiplrocessadores.pdf
Cap-6-Multiplrocessadores.pdf
 
Gfs slides
Gfs slidesGfs slides
Gfs slides
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
No sql std
No sql stdNo sql std
No sql std
 
Banco de Dados Distribuídos
Banco de Dados DistribuídosBanco de Dados Distribuídos
Banco de Dados Distribuídos
 
Alta Concorrência com Postgres
Alta Concorrência com PostgresAlta Concorrência com Postgres
Alta Concorrência com Postgres
 
Boas práticas na configuração de jobs no Kubernetes
Boas práticas na configuração de jobs no KubernetesBoas práticas na configuração de jobs no Kubernetes
Boas práticas na configuração de jobs no Kubernetes
 
Amostra Resolucao da Prova Sefaz 2007 Prof Jaime
Amostra   Resolucao da Prova Sefaz 2007   Prof JaimeAmostra   Resolucao da Prova Sefaz 2007   Prof Jaime
Amostra Resolucao da Prova Sefaz 2007 Prof Jaime
 
Google File System
Google File SystemGoogle File System
Google File System
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de Dados
 
Alta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/LinuxAlta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/Linux
 
MapReduce
MapReduceMapReduce
MapReduce
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool II
 
Conceitoseaplicaes
ConceitoseaplicaesConceitoseaplicaes
Conceitoseaplicaes
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Distribuição de Dados em Escala Global com Cassandra
Distribuição de Dados em Escala Global com CassandraDistribuição de Dados em Escala Global com Cassandra
Distribuição de Dados em Escala Global com Cassandra
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
 
Gerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasGerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de Consultas
 
Desmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQLDesmistificando Replicação no PostgreSQL
Desmistificando Replicação no PostgreSQL
 

Mais de Pedro de Vasconcellos

Mais de Pedro de Vasconcellos (6)

Gestão da Inovação - Produção acadêmica no Brasil
Gestão da Inovação - Produção acadêmica no BrasilGestão da Inovação - Produção acadêmica no Brasil
Gestão da Inovação - Produção acadêmica no Brasil
 
Redes Sociais
Redes SociaisRedes Sociais
Redes Sociais
 
Créditos de Carbono e MDL
Créditos de Carbono e MDLCréditos de Carbono e MDL
Créditos de Carbono e MDL
 
MapReduce
MapReduceMapReduce
MapReduce
 
Inteligência de enxames - Cardume (PSO + AFSA)
Inteligência de enxames - Cardume (PSO + AFSA)Inteligência de enxames - Cardume (PSO + AFSA)
Inteligência de enxames - Cardume (PSO + AFSA)
 
O computador e a contracultura
O computador e a contraculturaO computador e a contracultura
O computador e a contracultura
 

Último

Sistemas Termodinâmicos Aula 10 FPB Tambia.pdf
Sistemas Termodinâmicos Aula 10 FPB Tambia.pdfSistemas Termodinâmicos Aula 10 FPB Tambia.pdf
Sistemas Termodinâmicos Aula 10 FPB Tambia.pdfAndrielLucas
 
Eletroquimica aplicada à Simulação do mundo físico-químico
Eletroquimica aplicada à Simulação do mundo físico-químicoEletroquimica aplicada à Simulação do mundo físico-químico
Eletroquimica aplicada à Simulação do mundo físico-químicossuserb83eaa
 
70nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn6946.pptx
70nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn6946.pptx70nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn6946.pptx
70nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn6946.pptxLEANDROSPANHOL1
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp txrafaelacushman21
 
Tanques industriais, principais tipos , conceitos
Tanques industriais, principais tipos , conceitosTanques industriais, principais tipos , conceitos
Tanques industriais, principais tipos , conceitoscunhadealmeidap
 
planejamento de obra utilizando o pert cpm.ppt
planejamento de obra utilizando o pert cpm.pptplanejamento de obra utilizando o pert cpm.ppt
planejamento de obra utilizando o pert cpm.pptSilvio Veras
 

Último (6)

Sistemas Termodinâmicos Aula 10 FPB Tambia.pdf
Sistemas Termodinâmicos Aula 10 FPB Tambia.pdfSistemas Termodinâmicos Aula 10 FPB Tambia.pdf
Sistemas Termodinâmicos Aula 10 FPB Tambia.pdf
 
Eletroquimica aplicada à Simulação do mundo físico-químico
Eletroquimica aplicada à Simulação do mundo físico-químicoEletroquimica aplicada à Simulação do mundo físico-químico
Eletroquimica aplicada à Simulação do mundo físico-químico
 
70nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn6946.pptx
70nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn6946.pptx70nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn6946.pptx
70nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn6946.pptx
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 
Tanques industriais, principais tipos , conceitos
Tanques industriais, principais tipos , conceitosTanques industriais, principais tipos , conceitos
Tanques industriais, principais tipos , conceitos
 
planejamento de obra utilizando o pert cpm.ppt
planejamento de obra utilizando o pert cpm.pptplanejamento de obra utilizando o pert cpm.ppt
planejamento de obra utilizando o pert cpm.ppt
 

Memória Compartilhada Distribuída (DSM)

  • 1. Eduardo Elael Pedro de Vasconcellos
  • 2. • Introdução • DSM x Troca de Mensagens • Arquitetura • Algoritmos • Modelos de Consistência • Bibliografia
  • 3. • 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
  • 4. • 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
  • 5. • 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
  • 6. • 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
  • 7. • 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)
  • 8. • 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.
  • 9. • 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
  • 10.
  • 11. • 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
  • 12. • 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.
  • 13. • 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
  • 14. • 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.
  • 15. • 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
  • 16. • 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
  • 17. • 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
  • 18. • 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
  • 19. • 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
  • 20. • 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
  • 21. • 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
  • 22. • 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.
  • 23. • 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)
  • 24. • 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
  • 25. • 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
  • 26. • 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
  • 27. • 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
  • 28. • 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
  • 29. • 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
  • 30. • 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
  • 31. Bibliografia • 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)