Transcript
Page 1: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Sincronizacao e Memoria compartilhada distribuıda

Joao Goncalves Filho

11 de outubro de 2012

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 2: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

1 Introducao

2 Sincronizacao de RelogiosRelogios fısicosRelogios logicos

3 Exclusao MutuaAlgoritmo centralizadoAlgoritmo distribuıdoAlgoritmo token ring

4 DSMClassificacao DSMImplementacoes DSM em nıvel de HardwareImplementacoes DSM em nıvel de SoftwareImplementacoes DSM hibrıdo

5 Bibliografia

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 3: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Sincronizacao

Gerenciamento que deve ocorrer quando existe comunicacao entrevarios dispositivos.

Sincronizacao em monoprocessadores, multiprocessadores e sistemasdistribuıdos.

Recursos compartilhados.

Ordenacao de eventos.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 4: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Relogios

Monitorar o tempo.

Relogio = Temporizador.

Contador, registrador de contador, registrador de retencao e ciclo derelogio.

Facilidade de sincronizacao em um sistema cetralizado.

Exemplo do programa make.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 5: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Relogios fısicos

Relogio fısico

Fazer os nos estarem em acordo em uma hora real comum.

Problema de defasagem de relogio.

Como sincronizar relogios fısicos com relogios do mundo real?

Como sincronizar os relogios um com outro?

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 6: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Relogios fısicos

Como o tempo e medido?

Transito solar - Dia solar - Segundo solar

A Terra esta desacelerando devido ao atrito das mares e ao arrasteatmosferico.

Segundo solar medio.

(1948) atomo de cesio 133, 1segundo = 9.192.631.770 transicoes doatomo.

Bureau International de l’Heure (BIH) e International Atomic Time(TAI), ciclos de relogio de cesio 133 desde a meia noite de 1o janeiro1958.

A discrepancia entre a hora TAI e a hora solar alcanca no maximo800ms.

A introducao dos segundos extras no TAI e denominado horacoodernada universal( Universal Coordinated Time - UTC).

Para fornecer UTC a quem precisa da hora exata, o NationalInstitute of Standard Time (Nist) opera uma estacao de radio deondas curtas cujo prefixo e WWV.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 7: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Relogios fısicos

Algoritmos de sincronizacao de relogios

Cada maquina deve ter um temporizador que provoca umainterrupcao H vezes por segundo.

Suponha que a hora UTC e t, entao o valor do relogio de umamaquina p e Cp(t)

Idealmente teriamos Cp(t) = t para todo p e todo t, assim seriaideal que C ′p(t) = dC/dt fosse 1.

C ′p(t) e denominado frequencia do relogio de p no tempo t, assimC ′p(t)− 1 denota a magnitude da diferenca entre a frequencia dorelogio p e de um perfeito.

Sabemos temporizadores reais nao interrompem exatamente H vezespor segundo, em chips modernos existe um erro relativo deaproximadamente 10−5.

1− ρ ≤ dCdt ≤ 1 + ρ

ρ e uma constante especificada pelo fabricante que indica a taxamaxima de deriva.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 8: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Relogios fısicos

Hora do relógio, C

UTC, t

-dC/dt > 1

-dC/dt = 1

-dC/dt < 1

Reló

gio

adian

tado

Relógio

perfe

ito

Relógio atrasado

B

A T1

T2 T3

T4

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 9: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Relogios fısicos

Network time protocol (NTP)

Protocolos propostos Cristian (1989) e deixar que os clientesconsultem um servidor de tempos. Assim surgirao problemas deatrasos.

Suponha que A faca uma requisao de hora B, como mostrado nafingura anterior temos que:

θ = T3 − δδ = (T2−T1)+(T4−T3)

2

Onde θ indica o deslocamento estimado de A em relacao a B e δ e oatraso estimado

Sao armazenados oito pares de valores (θ, δ).

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 10: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Relogios fısicos

Figura: Topologia do NTP, imagem extraıda do Wikepedia

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 11: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Relogios fısicos

Algoritmo de Berkeley

Daemon de tempo

3:00

3:003:00

2:50 3:25

3:00

2:50 3:25

-10 +25

0 3:05

3:05 3:05

+15 -20

+5

Figura: Funcionamento do algoritmo de Berkeley

Diferente do NTP em que o servidor e passivo, o servidor agora eativo.

Utilizado para sincronizacao de um grupo de computadores internosque podem nao estar conectados a nenhum receptor WWV.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 12: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Relogios logicos

Relogios logicos

Nao importa o tempo real, o que importa e que os nos da redeconcordem entre si de uma hora relativa.

Em um seu artigo classico Lamport (1978) mostra que o queimporta e ordem dos eventos.

No exemplo do make, o que e se input.c e mais ou velho ou maisnovo que o input.o

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 13: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Relogios logicos

Relogios logicos de Lamport

Relacao do acontece antes. a→ b, implica que o evento a ocorreantes de b

Se dois eventos x e y nao trocam mensagens, eles sao definidoscomo concorrentes.

Denomianos C (a) como sendo o valor do tempo do evento a, assimse a→ b, entao todos os processos devem concordar queC (a) < C (b)

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 14: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Relogios logicos

Relogios logicos de Lamport

06126

18243064236

485460

06168

24324065648

647280

062010

30405067060

8090100

P1 P2 P3

m1

m2

m3

m4

06126

18243064236

487076

06168

24324066148

697785

062010

30405067060

8090100

P1 P2 P3

m1

m2

m3

m4

Figura: Funcionamento do relogio de Lamport

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 15: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Exclusao Mutua

Trabalhar com concorrencia entre varios processos.

Controlar acesso a um mesmo recurso.

Os algoritmos distribuıdos de exclusao mutua podem serclassificados em duas categorias diferentes:

Solucoes baseadas em ficha.Abordagem baseada em permissao.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 16: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Algoritmo centralizado

Algoritmo centralizado

0 1 2

3

Requisição OK

Coodernador

Fila vazia

0 1 2

3

Requisição

Nenhuma respostaOu bloqueio

2

0 1 2

3

Liberação OK

Figura: Funcionamento do algoritmo centralizado

Um processo e eleito como coordenador.Sempre que um processo quiser acessar um recurso compartilhado,envia uma mensagem de requisicao ao coordenador.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 17: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Algoritmo distribuıdo

Algoritmo distribuıdo

0

1 2

8

12

12

88

12

0

1 2

OK

OK

OK

Acessarecurso

0

1 2

OK

Acessarecurso

Figura: Funcionamento do algoritmo centralizado

Proposto originalmente por Ricart e Agrawala (1981).Requer que haja uma ordenacao total de todos os eventos nosistema. Pode-se usar o algoritmo de Lamport para conseguir essaordenacao.Requer entrega confiavel de dados.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 18: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Algoritmo distribuıdo

Questoes do algoritmo distribuıdo

O algoritmo requer um numero de 2(n − 1) mensagens , onde n enumero de nos do sistema.

Existem agora n pontos de falha. Isto pode ser consertado utilizandosempre uma resposta a uma requisicao, junto com utilizacao de umtemporizador.

E preciso um controle dos nos que entram e sai do sistema, issopode ficar dıficil quando o n ficar muito grande.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 19: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Algoritmo token ring

Token ring

Figura: Topologia em anel

Monta em software um rede em anel. A ficha de acesso ao recursoroda nesse anel.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 20: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Algoritmo token ring

Questoes do algoritmo token ring

Se a fichas se perder, precisa ser regenerada.

Manutencao da rede em anel.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 21: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Introducao

Combina as vantagens de duas classes de sistemas, sistemas decompartilhamento de memoria, tendo uma memoria global fısica,igualmente acessıvel para todos os processadores do sistema esistemas de memoria distribuıda que consiste em multiplosprocessadores se comunicando por meio passagem de mensagem.

Seus principais objetivos sao desenvolver algoritmos para minimizaro tempo medio de acesso aos dados compartilhadas, enquantomantem os dados consistentes.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 22: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Introducao

Figura: Estrutura de uma DSM [Nitzberg and Lo 1991]

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 23: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Introducao

Figura: Disciplinas que envolvem DSM [Protic et al. 1995]

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 24: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Classificacao DSM

Nıvel de implementacao DSM

Hardware.

Software.Sistema operacional.

Dentro do kernel.Fora do kernel.

Bibliotecas com rotinas incluidas em tempo de execucao.Primitivas inseridas no compilador.

Combinacao hardware/software.

Solucoes em hardware fornece baixa latencia e tranparencia para oprogramador.

Solucoes em software permitem explorar melhor o compartamentoda aplicacao.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 25: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Classificacao DSM

Configuracao da arquitetura

O mecanismo DSM e usualmente organizado em um conjunto declusters conectados por uma rede de interconexao.

Configuracao de cluster: com um ou varios processadores, unicoou multiplo nıves de cache.

Rede de interconexao: hierarquia em barramento, anel, mech,hipercubo, etc.

Configuracao de cluster sao mais importantes para abordagens emhardware e mais transparente para as de software.

Solucoes em sofware trabalham mais em cima de conexoes Ethernet,enquanto hardware em barramento e mesh.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 26: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Classificacao DSM

Organizacao dos dados compartilhados

Representa o layout global do espaco de enderecamentocompartilhado, tal como o tamanho e a organizacao dos itens dedados.

Estrutura do dado compartilhado: Nao estruturado, estruturadoem objetos, etc.

Granularidade da unidade de coerencia: Palavra, bloco cache,pagina, complexa estrutura de dado.

Hardware trabalha mais com objetos de dados nao estruturadostipicamente blocos de cache

Software trabalha com estruturas logicas.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 27: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Classificacao DSM

Algoritmos DSM

Sao utilizadas duas estrategias para distribuicaos de dadoscompartilhados sao replicacao e migracao

Algoritmo SRSW(Single reader/Single writer): Em sua maioriapermite a utilizacao de migracao.

Algoritmo MRSW(Multiples readers/Single writer): Utilizareplicacao por leitura para reduzir o acesso medio de leituras

Algoritmo MRMW(Multiples readers/Mutpliples writers):Utiliza replicacao total agora todos os nos da rede podem ler ouescrever.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 28: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Classificacao DSM

Parametros dos algoritmos DSM

Responsibilidade do gerenciador DSM: Indica o local onde amanutencao de consistencias devem ser manipuladas, exemplos saocentralizado, distribuıdo/fixo e distribuıdo/dinamico.

Polıtica de coerencia: Estabelece uma regra para manter as copiasdos dados com as mesmas informacoes, pode ser feito por:

Escrita-invalidacao: Nesse caso uma escrita no dado, invalida asdemais copias deixando-as inacessıveis.Escrita-atualizacao: Nesse caso uma escrita em um dado, causauma atualizacao das demais copias.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 29: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Classificacao DSM

Parametros dos algoritmos DSM

Modelos de consistencia: E um modelo que especifica como serafeita a consistencia do sistema. Alguns deles sao:

Estrita: Qualquer operacao sobre uma variavel x e aplicada ao valormais recente dessa variavel. totalmente inviavel em sistemasdistribuıdo.Sequencial Definido pela primeira vez por Lamport (1979) nocontexto de memoria compartilhada para multiprocessadores. O queimporta nesse modelo e que todos os processos vejam a mesmaintercalacao de operacoes.Processador: Escritas locais do processador deve ser vista na mesmaordem pelos outros processadores.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 30: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Classificacao DSM

Figura: Com concistencia estrita / Sem concistencia estrita

Figura: Com concistencia sequencial / Sem concistencia sequencial

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 31: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Classificacao DSM

Figura: Com concistencia de processador / Sem concistencia de processador

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 32: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

DSM em hardware

Extendem princıpios encontrados em esquemas tradicionais decoerencia de cache.

A unidade de compartilhamento e pequena tipicamente em nıvel decache.

Alguns dos principais grupos de implementacao sao:

CC-NUMA (Cache Coherent Non-Uniform MemoryArchitecture)COMA (Cache-Only Memory Architecture)

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 33: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

Figura: Arquitetura UMA

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 34: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

Figura: Arquitetura NUMA

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 35: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

Figura: Arquitetura CCNUMA

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 36: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

DASH (Directory Architecture for Shared Memory)

A pesquisa foi conduzida na universidade de Stanford.

Utiliza a hierarquia de quatro nıveis de memoria usando abordagemde diretorio que controla a coerencia atraves dos nos e serve deinterface com a rede de conexao.

Um bloco de memoria pode estar em 3 estados:

Uncached: Nesse caso o bloco de memoria nao esta em qualquerclusterShared: Nesse caso o bloco de memoria esta nao modificado em umou mais clusters remotos.Dirty: Modificado em um unico cache de um cluster.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 37: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

DASH (Directory Architecture for Shared Memory)

Figura: Arquitetura DASH [Lenoski et al. 1992]

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 38: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

DASH (Directory Architecture for Shared Memory)

Figura: Hierarquia de memoria DASH [Lenoski et al. 1992]

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 39: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

DASH processo de leitura

Processor level: Checa se a requisicao pode resolvida a nıvel deprocessador, caso contrario faca requisicao para nıvel cluster local.

Local cluster level: Da mesma forma checa se a requisicao podeser satisfeita no nıvel do cluster local, caso contrario a requisicao epassada para o home cluster.

Home cluster level: Checa o estado do diretorio, enquanto procurana memoria principal o bloco procurado, se o bloco foi encontradolimpo, entao o dado e devolvido ao requisitante , mas o dado estiverem estado de dirty uma requisicao e enviada ao cluster remoto pelodiretorio.

Remote cluster level: O cluster remoto com a data retorna umaresposta com uma copia do dado(seu bloco passa de dirty parashared) para diretorio requisitante que escreve de volta no homecluster para atualizar a memoria principal e finalmente e devolvidopara o processador requisitante.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 40: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

DASH processo de escrita

Processor level: Se o bloco do processador esta em estado de dirty,entao ele pode escrever imediatamente, caso contrario ele faz umrequisicao de leitura exclusiva ao cluster local.

Local cluster level: Se um dos caches locais possui o bloco dememoria entao a leitura exclusiva e transferida via cache-para-cache,se o bloco nao estiver presente, uma requisicao e passada para ohome cluster.

Home cluster level: O home cluster pode satisfazer a requisicao deblocos uncached ou shared, se os dados estiverem em shared, todasas demais copias devem ser invalidadas por meio de requisicoes deinvalidacao, se o bloco estar dirty, a requisao de leitura exclusivadeve ser passada para o cluster remoto.

Remote cluster level: Se requisicoes de invalidacao foram feitas, osnos geram reconhecimentos, se o dado era dirty entao a leituraexclusiva e repassada.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 41: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

COMA (Cache Only Memory Architecture)

Particionamento dinamico dos dados organizado em caches de nıvel2 (attraction memory)

A unidade de coerencia e chamada de item

Nao existe localizacao fısica predeterminada para um item de dado,ele e mapeado para mutiplos attractions memorys.

Pode se adaptar melhor do que o NUMA ao compartamento de umaplicacao.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 42: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

Figura: Arquitetura COMA [Hagersten et al. 1992]

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 43: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

DDM (Data Diffision Machine)

A distribuicao e coerencia de data entre as attractions memorys econtrolado por um protocolo snooping na above memory.

A interface entre o processador e a attraction memory e feita peloprotocolo memory below.

Cada item tem um estado associado.

Para coerencia utiliza e metodo de invalidacao.

Utiliza metodo de substituicao quando o attraction memory estacheio.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 44: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

Figura: Arquitetura DDM [Hagersten et al. 1992]

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 45: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

DDM estados do item

Invalid: Esse subsistema nao contem o item.

Exclusive: Apenas esse subsistema contem o item.

Shared: Esse subsistema e possivelmente outros contem o item.

Reading: Esse subsistema esta esperando por o valor de dado aposter feito uma requisicao de leitura.

Waiting: Esse subsistema esta esperando se tornar exclusivo aposuma requisicao de exclusao

Reading-and-Waiting Esse subsistema esta esperando um valor dedado, para depois se tornar exclusivo.

Answering Esse subsistema prometeu responder uma requisicao deleitura.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 46: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Hardware

DDM transacoes no barramento

Erase: Apagar todas as copias desse item.

Exclusive: Gera um reconhecimento de uma requisicao de exclusao.

Data: Transporta um dado requisitado para leitura.

Gerados por substituicao:

Inject: Transporta uma unica copia de um item e procura por umsubsistema para move-lo.

Out: Transporta o item para saıda do subsistema.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 47: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Software

DSM em software

As implementacoes no nıvel de software sao parecidas com metodosde gerenciamento de memoria, exceto na questao da falta de umapagina que e resolvida em um cluster remoto, ao inves de umdispositivo secundario de armazenamento.

Implementacao em compilador:

O paradigma DSM e aplicado uma linguagem de programacaoparalela.O espaco de enderecamento e logico, portanto pode ser um tipo devariavel no codigo fonte.

Implementacao em bibliotecas de linguagens

Implementacao em SO (dentro do kernel)

Implementacao em SO (fora do kernel)

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 48: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Software

Munin

Foi implementado em cima de uma rede Ethernet na estacao detrabalho da Sun, utilizando o ambiente de programacao paralelaPresto para C++ [Bennett et al. 1990].

Tem objetivo de criar um ambiente para que o programador tenhauma ilusao de compartilhamento de memoria.

Munin trata a colecao de todas as memorias no sistema distribuıdocomo um espaco unico endereco, com coerencia imposta pelosoftware.

O tratamento de falha de memoria e semelhante ao que nogerenciamento de memoria virtual.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 49: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM em nıvel de Software

Munin tipos de objeto

Write-once Objects: Sao escritos somente durante a inicializacao,sao suportados via replicacao que pode gerar problemas para objetoslargos.

Private Objects: Nao precisam de gerenciamento.

Write-many Objects: Sao frequentementes modificados pormutiplas threads. Utiliza o metodo de atualizacao atrasada.

Synchronization Objects: Sao controlados por lock distribuıdos.

Read-mostly Objects: Sao objetos que sao muito mais lidos doque escritos, utiliza broadcast para gerenciamento.

Producer-consumer Objects:Utiliza o movimento do objetoansioso.

General read-write Objects: Utilizam Berkeley Ownership cacheconsistency protocol para gerenciamento.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 50: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM hibrıdo

DSM hibrıdo

O gerenciamento do DSM agora e divido entre o hardware esoftware.

A integracao de metodos de software e hardware, para gerenciamentode DSM, e varios modelos de consitencia, parece ser a abordagemmais promissora para o futuro da DSM [Protic et al. 1995]

Exemplo PLUS: Em nıvel de hardware temos mapeamento globalda memoria, gerenciamento de coerencia e operacoes atomicas,enquanto paginas que residem em espaco de enderecamento virtualpodem ser replicadas ou migradas em nıvel de software, mantidopela sistema operacional.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 51: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM hibrıdo

DSM FLASH

FLASH(Flexible Architecture For Shared) sistema demutiprocessador foi desenvolvido na universidade de Stanford, PaloAlto, California.

Busca fazer uma integracao entre coerencia de cache decompartilhamento de memoria e passagem de mensagens.

Para isso foi construido um controlador personalizado chamadoMAGIC(Memory And General Interconnect Controller).

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 52: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM hibrıdo

Figura: Arquitetura de um no FLASH [Kuskin et al. 1994]

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 53: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM hibrıdo

Protocolo de coerencia de cache

Utiliza ponteiro de alocacao dinamica.

Estruturas:

Memory lines de 128 bytes associado a um directory header que eregiao contıgua da memoria principal exclusivamente para coerenciade cache.Cada directory header contem um link para a lista decompartilhadores e flags booleanas.O primeiro elemento da lista de compartilhadores fica no propriodirectory header, para facilitar o acesso.Se um bloco de memoria e cached por mais de um processador,entao um memoria adicional e colocada em um pointer/link storep/l s sao alocados tambem em memoria contıgua da memoriaprincipal, cada elemento contem um link para o processadorcompartilhador, um para o proximo e o para o fim.O free list e utilizado para saber quais registros do p/ l s estaodisponives.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 54: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM hibrıdo

Figura: Estruturas do protocolo de coerencia [Kuskin et al. 1994]

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 55: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM hibrıdo

Controle de deadlock

O protocolo divide as mensagens em requisicao e respostas. Utilizauma rede logica que separa resposta e requisicao.

Evita ciclos de requisicao-requisicao, requisicoes que nao podem serdescartadas por reconhecimentos negativos, assim elas sao tornadasrespostas.

Execucoes dos manipuladores do MAGIC devem ser completos,assim e feito em nıvel de software uma fila que suspende partes demensagem e escolona para depois.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 56: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Implementacoes DSM hibrıdo

Passagem por mensagem

MAGIC funciona com interface para o processo usuario.

Funciona em tres operacoes: inicializacao,transferencia erecepcao/conclusao.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 57: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Bennett, J., Carter, J., and Zwaenepoel, W. (1990). Munin:Distributed shared memory based on type-specific memorycoherence, volume 25. ACM

Hagersten, E., Landin, A., and Haridi, S. (1992). Ddm-a cache-onlymemory architecture. Computer, 25(9):44–54.

Kuskin, J., Ofelt, D., Heinrich, M., Heinlein, J., Simoni, R.,Gharachorloo, K., Chapin, J., Nakahira, D., Baxter, J., Horowitz,M., et al. (1994). The stanford flash multipro- cessor. In ComputerArchitecture, 1994., Proceedings the 21st Annual InternationalSymposium on, pages 302–313. IEEE.

Lenoski, D., Laudon, J., Gharachorloo, K., Weber, W., Gupta, A.,Hennessy, J., Horowitz, M., and Lam, M. (1992). The stanford dashmultiprocessor. Computer, 25(3):63–79.

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda

Page 58: Sincronização e Memória compartilhada distribuída

Introducao Sincronizacao de Relogios Exclusao Mutua DSM Bibliografia

Nitzberg, B. and Lo, V. (1991). Distributed shared memory: Asurvey of issues and algorithms. Computer, 24(8):52–60.

Protic, J., Tomasevic, M., and Milutinovic, V. (1995). A survey ofdistributed shared memory systems. In System Sciences, 1995.Proceedings of the Twenty-Eighth Hawaii International Conferenceon, volume 1, pages 74–84. IEEE.

Distributed Systems: Principles and Paradigms. TANENBAUM, A.S; STEEN, M. van

Joao Goncalves Filho Sincronizacao e Memoria compartilhada distribuıda


Top Related