Apresentação abordando sobre Sincronização baseada no livro: Distributed Systems: Principles and Paradigms. TANENBAUM, A. S; STEEN, M. van
e Uma outra parte dedicada a memória compartilhada distribuída DSM
1. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Jo˜o Gon¸alves Filho
a
c
11 de outubro de 2012
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
2. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
1
Introdu¸˜o
ca
2
Sincroniza¸˜o de R´logios
ca
e
Rel´gios f´
o
ısicos
Rel´gios l´gicos
o
o
3
Exclus˜o M´tua
a
u
Algoritmo centralizado
Algoritmo distribu´
ıdo
Algoritmo token ring
4
DSM
Classifica¸˜o DSM
ca
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
Implementa¸˜es DSM em n´ de Software
co
ıvel
Implementa¸˜es DSM hibr´
co
ıdo
5
DSM
Bibliografia
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
3. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Sincroniza¸˜o
ca
Gerenciamento que deve ocorrer quando existe comunica¸˜o entre
ca
v´rios dispositivos.
a
Sincroniza¸˜o em monoprocessadores, multiprocessadores e sistemas
ca
distribu´
ıdos.
Recursos compartilhados.
Ordena¸˜o de eventos.
ca
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
4. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Rel´gios
o
Monitorar o tempo.
Rel´gio = Temporizador.
o
Contador, registrador de contador, registrador de reten¸˜o e ciclo de
ca
rel´gio.
o
Facilidade de sincroniza¸˜o em um sistema cetralizado.
ca
Exemplo do programa make.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
5. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Rel´gios f´
o
ısicos
Rel´gio f´
o
ısico
Fazer os n´s estarem em acordo em uma hora real comum.
o
Problema de defasagem de rel´gio.
o
Como sincronizar rel´gios f´
o
ısicos com rel´gios do mundo real?
o
Como sincronizar os rel´gios um com outro?
o
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
6. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Rel´gios f´
o
ısicos
Como o tempo ´ medido?
e
Trˆnsito solar - Dia solar - Segundo solar
a
A Terra est´ desacelerando devido ao atrito das mar´s e ao arraste
a
e
atmosf´rico.
e
Segundo solar m´dio.
e
(1948) ´tomo de c´sio 133, 1segundo = 9.192.631.770 transi¸˜es do
a
e
co
´tomo.
a
Bureau International de l’Heure (BIH) e International Atomic Time
(TAI), ciclos de rel´gio de c´sio 133 desde a meia noite de 1o janeiro
o
e
1958.
A discrepˆncia entre a hora TAI e a hora solar alcan¸a no m´ximo
a
c
a
800ms.
A introdu¸˜o dos segundos extras no TAI ´ denominado hora
ca
e
coodernada universal( Universal Coordinated Time - UTC).
Para fornecer UTC a quem precisa da hora exata, o National
Institute of Standard Time (Nist) opera uma esta¸˜o de r´dio de
ca
a
ondas curtas cujo prefixo ´ WWV.
e
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
7. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Rel´gios f´
o
ısicos
Algoritmos de sincroniza¸˜o de rel´gios
ca
o
Cada m´quina deve ter um temporizador que provoca uma
a
interrup¸˜o H vezes por segundo.
ca
Suponha que a hora UTC ´ t, ent˜o o valor do rel´gio de uma
e
a
o
m´quina p ´ Cp (t)
a
e
Idealmente teriamos Cp (t) = t para todo p e todo t, assim seria
ideal que Cp (t) = dC /dt fosse 1.
Cp (t) ´ denominado frequˆncia do rel´gio de p no tempo t, assim
e
e
o
Cp (t) − 1 denota a magnitude da diferen¸a entre a frequˆncia do
c
e
rel´gio p e de um perfeito.
o
Sabemos temporizadores reais n˜o interrompem exatamente H vezes
a
por segundo, em chips modernos existe um erro relativo de
aproximadamente 10−5 .
1−ρ≤
dC
dt
≤1+ρ
ρ ´ uma constante especificada pelo fabricante que indica a taxa
e
m´xima de deriva.
a
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
8. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Rel´gios f´
o
ısicos
-dC/dt > 1
-dC/dt = 1
Re
lóg
io
ad
ian
tad
o
Hora do relógio, C
l
Re
io
óg
Re
pe
t
ei
rf
io
ló g
o
a tr
a
as
do
T2
B
-dC/dt < 1
A
T1
UTC, t
Jo˜o Gon¸alves Filho
a
c
T3
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
T4
9. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Rel´gios f´
o
ısicos
Network time protocol (NTP)
Protocolos propostos Cristian (1989) ´ deixar que os clientes
e
consultem um servidor de tempos. Assim surgir˜o problemas de
a
atrasos.
Suponha que A fa¸a uma requis˜o de hora B, como mostrado na
c
a
fingura anterior temos que:
θ = T3 − δ
δ=
(T2 −T1 )+(T4 −T3 )
2
Onde θ indica o deslocamento estimado de A em rela¸˜o a B e δ ´ o
ca
e
atraso estimado
S˜o armazenados oito pares de valores (θ, δ).
a
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
10. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Rel´gios f´
o
ısicos
Figura: Topologia do NTP, imagem extra´ do Wikepedia
ıda
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
11. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Rel´gios f´
o
ısicos
Algoritmo de Berkeley
Daemon de tempo
3:00
3:00
3:00
3:05
+5
3:00
-10
2:50
0
3:25
2:50
+25
3:25
+15
3:05
-20
3:05
Figura: Funcionamento do algoritmo de Berkeley
Diferente do NTP em que o servidor ´ passivo, o servidor agora ´
e
e
ativo.
Utilizado para sincroniza¸˜o de um grupo de computadores internos
ca
que podem n˜o estar conectados a nenhum receptor WWV.
a
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
12. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Rel´gios l´gicos
o
o
Rel´gios l´gicos
o
o
N˜o importa o tempo real, o que importa ´ que os n´s da rede
a
e
o
concordem entre si de uma hora relativa.
Em um seu artigo cl´ssico Lamport (1978) mostra que o que
a
importa ´ ordem dos eventos.
e
No exemplo do make, o que ´ se input.c ´ mais ou velho ou mais
e
e
novo que o input.o
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
13. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Rel´gios l´gicos
o
o
Rel´gios l´gicos de Lamport
o
o
Rela¸˜o do acontece antes. a → b, implica que o evento a ocorre
ca
antes de b
Se dois eventos x e y n˜o trocam mensagens, eles s˜o definidos
a
a
como concorrentes.
Denomianos C (a) como sendo o valor do tempo do evento a, assim
se a → b, ent˜o todos os processos devem concordar que
a
C (a) < C (b)
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
14. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Rel´gios l´gicos
o
o
Rel´gios l´gicos de Lamport
o
o
P1
P2
P3
0
0
0
6 m1 6
8
10
6
12
16
20
18
24 m2 30
24
32
40
30
40
50
36
6
48 m3 60
6
6
42
56
70
48 m4 64
80
54
72
90
60
80
100
P1
P2
P3
0
0
0
6 m1 6
8
10
6
12
16
20
18
24 m2 30
24
32
40
30
40
50
36
6
48 m3 60
6
6
42
61
70
48 m4 69
80
70
77
90
76
85
100
Figura: Funcionamento do rel´gio de Lamport
o
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
15. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Exclus˜o M´tua
a
u
Trabalhar com concorrˆncia entre v´rios processos.
e
a
Controlar acesso a um mesmo recurso.
Os algoritmos distribu´
ıdos de exclus˜o m´tua podem ser
a
u
classificados em duas categorias diferentes:
Solu¸oes baseadas em ficha.
c˜
Abordagem baseada em permiss˜o.
a
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
16. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Algoritmo centralizado
Algoritmo centralizado
0
1
Requisição
2
0
1
3
2
0
Requisição
OK
Fila vazia
3
Coodernador
1
Liberação
Nenhuma resposta
Ou bloqueio
2
OK
3
2
Figura: Funcionamento do algoritmo centralizado
Um processo ´ eleito como coordenador.
e
Sempre que um processo quiser acessar um recurso compartilhado,
envia uma mensagem de requisi¸˜o ao coordenador.
ca
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
17. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Algoritmo distribu´
ıdo
Algoritmo distribu´
ıdo
Acessa
recurso
8
0
8
1
0
8
12
12
2
OK
12
1
0
OK
OK
2
OK
1
2
Acessa
recurso
Figura: Funcionamento do algoritmo centralizado
Proposto originalmente por Ricart e Agrawala (1981).
Requer que haja uma ordena¸˜o total de todos os eventos no
ca
sistema. Pode-se usar o algoritmo de Lamport para conseguir essa
ordena¸˜o.
ca
Requer entrega confi´vel de dados.
a
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
18. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Algoritmo distribu´
ıdo
Quest˜es do algoritmo distribu´
o
ıdo
O algoritmo requer um n´mero de 2(n − 1) mensagens , onde n ´
u
e
n´mero de n´s do sistema.
u
o
Existem agora n pontos de falha. Isto pode ser consertado utilizando
sempre uma resposta a uma requisi¸˜o, junto com utiliza¸˜o de um
ca
ca
temporizador.
´
E preciso um controle dos n´s que entram e sai do sistema, isso
o
pode ficar d´
ıficil quando o n ficar muito grande.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
19. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Algoritmo token ring
Token ring
Figura: Topologia em anel
Monta em software um rede em anel. A ficha de acesso ao recurso
roda nesse anel.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
20. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Algoritmo token ring
Quest˜es do algoritmo token ring
o
Se a fichas se perder, precisa ser regenerada.
Manuten¸˜o da rede em anel.
ca
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
21. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Introdu¸˜o
ca
Combina as vantagens de duas classes de sistemas, sistemas de
compartilhamento de mem´ria, tendo uma mem´ria global f´
o
o
ısica,
igualmente acess´ para todos os processadores do sistema e
ıvel
sistemas de mem´ria distribu´ que consiste em m´ltiplos
o
ıda
u
processadores se comunicando por meio passagem de mensagem.
Seus principais objetivos s˜o desenvolver algoritmos para minimizar
a
o tempo m´dio de acesso aos dados compartilhadas, enquanto
e
mant´m os dados consistentes.
e
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
22. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Introdu¸˜o
ca
Figura: Estrutura de uma DSM [Nitzberg and Lo 1991]
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
23. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Introdu¸˜o
ca
Figura: Disciplinas que envolvem DSM [Protic et al. 1995]
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
24. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Classifica¸˜o DSM
ca
N´ de implementa¸˜o DSM
ıvel
ca
Hardware.
Software.
Sistema operacional.
Dentro do kernel.
Fora do kernel.
Bibliotecas com rotinas incluidas em tempo de execu¸˜o.
ca
Primitivas inseridas no compilador.
Combina¸˜o hardware/software.
ca
Solu¸˜es em hardware fornece baixa latˆncia e tranparˆncia para o
co
e
e
programador.
Solu¸˜es em software permitem explorar melhor o compartamento
co
da aplica¸˜o.
ca
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
25. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Classifica¸˜o DSM
ca
Configura¸˜o da arquitetura
ca
O mecanismo DSM ´ usualmente organizado em um conjunto de
e
clusters conectados por uma rede de interconex˜o.
a
Configura¸˜o de cluster: com um ou v´rios processadores, unico
ca
a
´
ou m´ltiplo n´ de cache.
u
ıves
Rede de interconex˜o: hierarquia em barramento, anel, mech,
a
hipercubo, etc.
Configura¸˜o de cluster s˜o mais importantes para abordagens em
ca
a
hardware e mais transparente para as de software.
Solu¸˜es em sofware trabalham mais em cima de conex˜es Ethernet,
co
o
enquanto hardware em barramento e mesh.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
26. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Classifica¸˜o DSM
ca
Organiza¸˜o dos dados compartilhados
ca
Representa o layout global do espa¸o de endere¸amento
c
c
compartilhado, tal como o tamanho e a organiza¸˜o dos itens de
ca
dados.
Estrutura do dado compartilhado: N˜o estruturado, estruturado
a
em objetos, etc.
Granularidade da unidade de coerˆncia: Palavra, bloco cache,
e
p´gina, complexa estrutura de dado.
a
Hardware trabalha mais com objetos de dados n˜o estruturados
a
tipicamente blocos de cache
Software trabalha com estruturas l´gicas.
o
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
27. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Classifica¸˜o DSM
ca
Algoritmos DSM
S˜o utilizadas duas estrat´gias para distribui¸˜os de dados
a
e
ca
compartilhados s˜o replica¸˜o e migra¸˜o
a
ca
ca
Algoritmo SRSW(Single reader/Single writer): Em sua maioria
permite a utiliza¸˜o de migra¸˜o.
ca
ca
Algoritmo MRSW(Multiples readers/Single writer): Utiliza
replica¸˜o por leitura para reduzir o acesso m´dio de leituras
ca
e
Algoritmo MRMW(Multiples readers/Mutpliples writers):
Utiliza replica¸˜o total agora todos os n´s da rede podem ler ou
ca
o
escrever.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
28. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Classifica¸˜o DSM
ca
Parˆmetros dos algoritmos DSM
a
Responsibilidade do gerenciador DSM: Indica o local onde a
manuten¸˜o de consistˆncias devem ser manipuladas, exemplos s˜o
ca
e
a
centralizado, distribu´
ıdo/fixo e distribu´
ıdo/dinˆmico.
a
Pol´
ıtica de coerˆncia: Estabelece uma regra para manter as c´pias
e
o
dos dados com as mesmas informa¸˜es, pode ser feito por:
co
Escrita-invalida¸˜o: Nesse caso uma escrita no dado, invalida as
ca
demais c´pias deixando-as inacess´
o
ıveis.
Escrita-atualiza¸˜o: Nesse caso uma escrita em um dado, causa
ca
uma atualiza¸˜o das demais c´pias.
ca
o
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
29. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Classifica¸˜o DSM
ca
Parˆmetros dos algoritmos DSM
a
´
Modelos de consistˆncia: E um modelo que especifica como ser´
e
a
feita a consistˆncia do sistema. Alguns deles s˜o:
e
a
Estrita: Qualquer opera¸˜o sobre uma vari´vel x ´ aplicada ao valor
ca
a
e
mais recente dessa vari´vel. totalmente invi´vel em sistemas
a
a
distribu´
ıdo.
Sequencial Definido pela primeira vez por Lamport (1979) no
contexto de mem´ria compartilhada para multiprocessadores. O que
o
importa nesse modelo ´ que todos os processos vejam a mesma
e
intercala¸˜o de opera¸oes.
ca
c˜
Processador: Escritas locais do processador deve ser vista na mesma
ordem pelos outros processadores.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
30. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Classifica¸˜o DSM
ca
Figura: Com concistˆncia estrita / Sem concistˆncia estrita
e
e
Figura: Com concistˆncia sequencial / Sem concistˆncia sequencial
e
e
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
31. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Classifica¸˜o DSM
ca
Figura: Com concistˆncia de processador / Sem concistˆncia de processador
e
e
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
32. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
DSM em hardware
Extendem princ´
ıpios encontrados em esquemas tradicionais de
coerˆncia de cache.
e
A unidade de compartilhamento ´ pequena tipicamente em n´ de
e
ıvel
cache.
Alguns dos principais grupos de implementa¸˜o s˜o:
ca a
CC-NUMA (Cache Coherent Non-Uniform Memory
Architecture)
COMA (Cache-Only Memory Architecture)
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
33. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
Figura: Arquitetura UMA
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
34. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
Figura: Arquitetura NUMA
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
35. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
Figura: Arquitetura CCNUMA
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
36. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
DASH (Directory Architecture for Shared Memory)
A pesquisa foi conduzida na universidade de Stanford.
Utiliza a hierarquia de quatro n´
ıveis de mem´ria usando abordagem
o
de diret´rio que controla a coerˆncia atrav´s dos n´s e serve de
o
e
e
o
interface com a rede de conex˜o.
a
Um bloco de mem´ria pode estar em 3 estados:
o
Uncached: Nesse caso o bloco de mem´ria n˜o est´ em qualquer
o
a
a
cluster
Shared: Nesse caso o bloco de mem´ria esta n˜o modificado em um
o
a
ou mais clusters remotos.
Dirty: Modificado em um unico cache de um cluster.
´
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
37. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
DASH (Directory Architecture for Shared Memory)
Figura: Arquitetura DASH [Lenoski et al. 1992]
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
38. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
DASH (Directory Architecture for Shared Memory)
Figura: Hierarquia de mem´ria DASH [Lenoski et al. 1992]
o
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
39. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
DASH processo de leitura
Processor level: Checa se a requisi¸˜o pode resolvida a n´ de
ca
ıvel
processador, caso contr´rio fa¸a requisi¸˜o para n´ cluster local.
a
c
ca
ıvel
Local cluster level: Da mesma forma checa se a requisi¸˜o pode
ca
ser satisfeita no n´ do cluster local, caso contr´rio a requisi¸˜o ´
ıvel
a
ca e
passada para o home cluster.
Home cluster level: Checa o estado do diret´rio, enquanto procura
o
na mem´ria principal o bloco procurado, se o bloco foi encontrado
o
limpo, ent˜o o dado ´ devolvido ao requisitante , mas o dado estiver
a
e
em estado de dirty uma requisi¸˜o ´ enviada ao cluster remoto pelo
ca e
diret´rio.
o
Remote cluster level: O cluster remoto com a data retorna uma
resposta com uma c´pia do dado(seu bloco passa de dirty para
o
shared) para diret´rio requisitante que escreve de volta no home
o
cluster para atualizar a mem´ria principal e finalmente ´ devolvido
o
e
para o processador requisitante.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
40. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
DASH processo de escrita
Processor level: Se o bloco do processador est´ em estado de dirty,
a
ent˜o ele pode escrever imediatamente, caso contr´rio ele faz um
a
a
requisi¸˜o de leitura exclusiva ao cluster local.
ca
Local cluster level: Se um dos caches locais possui o bloco de
mem´ria ent˜o a leitura exclusiva ´ transferida via cache-para-cache,
o
a
e
se o bloco n˜o estiver presente, uma requisi¸˜o ´ passada para o
a
ca e
home cluster.
Home cluster level: O home cluster pode satisfazer a requisi¸˜o de
ca
blocos uncached ou shared, se os dados estiverem em shared, todas
as demais c´pias devem ser invalidadas por meio de requisi¸˜es de
o
co
invalida¸˜o, se o bloco estar dirty, a requis˜o de leitura exclusiva
ca
a
deve ser passada para o cluster remoto.
Remote cluster level: Se requisi¸˜es de invalida¸˜o foram feitas, os
co
ca
n´s geram reconhecimentos, se o dado era dirty ent˜o a leitura
o
a
exclusiva ´ repassada.
e
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
41. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
COMA (Cache Only Memory Architecture)
Particionamento dinˆmico dos dados organizado em caches de n´
a
ıvel
2 (attraction memory)
A unidade de coerˆncia ´ chamada de item
e
e
N˜o existe localiza¸˜o f´
a
ca ısica predeterminada para um item de dado,
ele ´ mapeado para m´tiplos attractions memorys.
e
u
Pode se adaptar melhor do que o NUMA ao compartamento de um
aplica¸˜o.
ca
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
42. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
Figura: Arquitetura COMA [Hagersten et al. 1992]
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
43. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
DDM (Data Diffision Machine)
A distribui¸˜o e coerˆncia de data entre as attractions memorys ´
ca
e
e
controlado por um protocolo snooping na above memory.
A interface entre o processador e a attraction memory ´ feita pelo
e
protocolo memory below.
Cada item tem um estado associado.
Para coerˆncia utiliza ´ met´do de invalida¸˜o.
e
e
o
ca
Utiliza met´do de substitui¸˜o quando o attraction memory est´
o
ca
a
cheio.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
44. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
Figura: Arquitetura DDM [Hagersten et al. 1992]
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
45. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
DDM estados do item
Invalid: Esse subsistema n˜o cont´m o item.
a
e
Exclusive: Apenas esse subsistema cont´m o item.
e
Shared: Esse subsistema e possivelmente outros cont´m o item.
e
Reading: Esse subsistema est´ esperando por o valor de dado ap´s
a
o
ter feito uma requisi¸˜o de leitura.
ca
Waiting: Esse subsistema est´ esperando se tornar exclusivo ap´s
a
o
uma requisi¸˜o de exclus˜o
ca
a
Reading-and-Waiting Esse subsistema est´ esperando um valor de
a
dado, para depois se tornar exclusivo.
Answering Esse subsistema prometeu responder uma requisi¸˜o de
ca
leitura.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
46. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Implementa¸˜es DSM em n´ de Hardware
co
ıvel
DDM transa¸˜es no barramento
co
Erase: Apagar todas as c´pias desse item.
o
Exclusive: Gera um reconhecimento de uma requisi¸˜o de exclus˜o.
ca
a
Data: Transporta um dado requisitado para leitura.
Gerados por substitui¸˜o:
ca
Inject: Transporta uma unica c´pia de um item e procura por um
´
o
subsistema para move-lo.
Out: Transporta o item para sa´ do subsistema.
ıda
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
47. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Implementa¸˜es DSM em n´ de Software
co
ıvel
DSM em software
As implementa¸˜es no n´ de software s˜o parecidas com m´todos
co
ıvel
a
e
de gerenciamento de mem´ria, exceto na quest˜o da falta de uma
o
a
p´gina que ´ resolvida em um cluster remoto, ao inv´s de um
a
e
e
dispositivo secund´rio de armazenamento.
a
Implementa¸˜o em compilador:
ca
O paradigma DSM ´ aplicado uma linguagem de programa¸˜o
e
ca
paralela.
O espa¸o de endere¸amento ´ l´gico, portanto pode ser um tipo de
c
c
e o
vari´vel no c´digo fonte.
a
o
Implementa¸˜o em bibliotecas de linguagens
ca
Implementa¸˜o em SO (dentro do kernel)
ca
Implementa¸˜o em SO (fora do kernel)
ca
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
48. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM em n´ de Software
co
ıvel
Munin
Foi implementado em cima de uma rede Ethernet na esta¸˜o de
ca
trabalho da Sun, utilizando o ambiente de programa¸˜o paralela
ca
Presto para C++ [Bennett et al. 1990].
Tem objetivo de criar um ambiente para que o programador tenha
uma ilus˜o de compartilhamento de mem´ria.
a
o
Munin trata a cole¸˜o de todas as mem´rias no sistema distribu´
ca
o
ıdo
como um espa¸o unico endere¸o, com coerˆncia imposta pelo
c ´
c
e
software.
O tratamento de falha de mem´ria ´ semelhante ao que no
o e
gerenciamento de mem´ria virtual.
o
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
49. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Implementa¸˜es DSM em n´ de Software
co
ıvel
Munin tipos de objeto
Write-once Objects: S˜o escritos somente durante a inicializa¸˜o,
a
ca
s˜o suportados via replica¸˜o que pode gerar problemas para objetos
a
ca
largos.
Private Objects: N˜o precisam de gerenciamento.
a
Write-many Objects: S˜o frequentementes modificados por
a
m´tiplas threads. Utiliza o met´do de atualiza¸˜o atrasada.
u
o
ca
Synchronization Objects: S˜o controlados por lock distribu´
a
ıdos.
Read-mostly Objects: S˜o objetos que s˜o muito mais lidos do
a
a
que escritos, utiliza broadcast para gerenciamento.
Producer-consumer Objects:Utiliza o movimento do objeto
ansioso.
General read-write Objects: Utilizam Berkeley Ownership cache
consistency protocol para gerenciamento.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
50. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Implementa¸˜es DSM hibr´
co
ıdo
DSM hibr´
ıdo
O gerenciamento do DSM agora ´ divido entre o hardware e
e
software.
A integra¸˜o de met´dos de software e hardware, para gerenciamento
ca
o
de DSM, e v´rios modelos de consitˆncia, parece ser a abordagem
a
e
mais promissora para o futuro da DSM [Protic et al. 1995]
Exemplo PLUS: Em n´ de hardware temos mapeamento global
ıvel
da mem´ria, gerenciamento de coerˆncia e opera¸˜es atˆmicas,
o
e
co
o
enquanto p´ginas que residem em espa¸o de endere¸amento virtual
a
c
c
podem ser replicadas ou migradas em n´ de software, mantido
ıvel
pela sistema operacional.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
51. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM hibr´
co
ıdo
DSM FLASH
FLASH(Flexible Architecture For Shared) sistema de
mutiprocessador foi desenvolvido na universidade de Stanford, Palo
Alto, California.
Busca fazer uma integra¸˜o entre coerˆncia de cache de
ca
e
compartilhamento de mem´ria e passagem de mensagens.
o
Para isso foi construido um controlador personalizado chamado
MAGIC(Memory And General Interconnect Controller).
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
52. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM hibr´
co
ıdo
Figura: Arquitetura de um n´ FLASH [Kuskin et al. 1994]
o
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
53. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Implementa¸˜es DSM hibr´
co
ıdo
Protocolo de coerˆncia de cache
e
Utiliza ponteiro de aloca¸ao dinˆmica.
c
a
Estruturas:
Memory lines de 128 bytes associado a um directory header que ´
e
regi˜o cont´
a
ıgua da mem´ria principal exclusivamente para coerˆncia
o
e
de cache.
Cada directory header cont´m um link para a lista de
e
compartilhadores e flags booleanas.
O primeiro elemento da lista de compartilhadores fica no pr´prio
o
directory header, para facilitar o acesso.
Se um bloco de mem´ria ´ cached por mais de um processador,
o e
ent˜o um mem´ria adicional ´ colocada em um pointer/link store
a
o
e
p/l s s˜o alocados tamb´m em mem´ria cont´
a
e
o
ıgua da mem´ria
o
principal, cada elemento cont´m um link para o processador
e
compartilhador, um para o pr´ximo e o para o fim.
o
O free list ´ utilizado para saber quais registros do p/ l s est˜o
e
a
disp´nives.
o
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
54. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM hibr´
co
ıdo
Figura: Estruturas do protocolo de coerˆncia [Kuskin et al. 1994]
e
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
55. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Implementa¸˜es DSM hibr´
co
ıdo
Controle de deadlock
O protocolo divide as mensagens em requisi¸˜o e ´espostas. Utiliza
ca
r
uma rede l´gica que separa resposta e requisi¸˜o.
o
ca
Evita ciclos de requisi¸˜o-requisi¸˜o, requisi¸˜es que n˜o podem ser
ca
ca
co
a
descartadas por reconhecimentos negativos, assim elas s˜o tornadas
a
respostas.
Execu¸˜es dos manipuladores do MAGIC devem ser completos,
co
assim ´ feito em n´ de software uma fila que suspende partes de
e
ıvel
mensagem e escolona para depois.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
56. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Implementa¸˜es DSM hibr´
co
ıdo
Passagem por mensagem
MAGIC funciona com interface para o processo usu´rio.
a
Funciona em trˆs opera¸˜es: inicializa¸˜o,transferˆncia e
e
co
ca
e
recep¸˜o/conclus˜o.
ca
a
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia
57. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Bibliografia
Bennett, J., Carter, J., and Zwaenepoel, W. (1990). Munin:
Distributed shared memory based on type-specific memory
coherence, volume 25. ACM
Hagersten, E., Landin, A., and Haridi, S. (1992). Ddm-a cache-only
memory 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 Computer
Architecture, 1994., Proceedings the 21st Annual International
Symposium 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 dash
multiprocessor. Computer, 25(3):63–79.
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
58. Introdu¸˜o
ca
Sincroniza¸˜o de R´logios
ca
e
Exclus˜o M´tua
a
u
DSM
Nitzberg, B. and Lo, V. (1991). Distributed shared memory: A
survey of issues and algorithms. Computer, 24(8):52–60.
Protic, J., Tomasevic, M., and Milutinovic, V. (1995). A survey of
distributed shared memory systems. In System Sciences, 1995.
Proceedings of the Twenty-Eighth Hawaii International Conference
on, volume 1, pages 74–84. IEEE.
Distributed Systems: Principles and Paradigms. TANENBAUM, A.
S; STEEN, M. van
Jo˜o Gon¸alves Filho
a
c
Sincroniza¸˜o e Mem´ria compartilhada distribu´
ca
o
ıda
Bibliografia