Académique Documents
Professionnel Documents
Culture Documents
Ingrid Jansch Porto 2
Níveis
serviços
resiliência de processos
resiliência de dados
ações atômicas
o modelo físico é de interesse secundário
– modelo lógico nessa disciplina; entretanto, para melhorar o
desempenho, características físicas especiais
do meio podem ser consideradas
processos e canais
Ingrid Jansch Porto 6
Modelo físico
memória não é compartilhada
com demais nodos
NODO i o relógio é local a cada nodo
relógio
local memória NODO j
local
processador interface
de mensagens
rede
disco
NODO k
Ingrid Jansch Porto 7
Comunicação:
topologias ponto a ponto
totalmente
estrela
conectado
árvore
Ingrid Jansch Porto 8
Topologia barramento
bus, barra ou via
nodos
barramento
comum
nodos
uma mensagem enviada pelo barramento pode ser recebida
simultaneamente por todos os nodos (broadcast)
Ingrid Jansch Porto 9
Modelo lógico
cada processo pode estar em
aplicação distribuída um nodo diferente
Ingrid Jansch Porto 10
Modelo lógico
rede completamente conectada
• topologia não é considerada
processos e canais
• existe um canal entre quaisquer dois processos que
interagem
• canais com buffer infinito e livres de erros
• canais entregam mensagens na ordem que foram enviadas
(ordem preservada no canal)
– Observe-se que estas características não são necessariamente
válidas para o meio físico
Ingrid Jansch Porto 11
Modelo lógico
ordenação de mensagens
– ordem das mensagens é preservada em um canal
– nada é estabelecido sobre mensagens que chegam a
um nodo vindos de diferentes canais
– não existe ordenação total de mensagens, apenas
ordenação parcial
• razão: retardos nos canais (delay)
Ingrid Jansch Porto 12
Canal
processo ordem de mensagens
preservada
cb
pi ordem de
a
envio
can cb
al a
no modelo físico, as
mensagens a, b e c podem pj
trafegar por rotas
diferentes
Ingrid Jansch Porto 13
Canal
xy
pa pc mxyn
xy
pb mn
pd xmny
Ingrid Jansch Porto 14
Sistemas síncronos e assíncronos
definidos pela existência de limites de tempo
sistema síncrono
• existe um limite de tempo finito e conhecido
• sistema correto opera dentro desse limite
sistema assíncrono
– não existe um limite de tempo
• impossível determinar se o sistema está simplesmente
atrasado por sobrecarga ou se está com defeito
Ingrid Jansch Porto 15
Limites de tempo
canal de comunicação síncrono
– retardo (delay) máximo é conhecido
processador síncrono
– tempo de execução de um conjunto de instruções é
conhecido e limitado
existem limites de tempo que podem ser estabelecidos para
determinar a conclusão de uma atividade
Ingrid Jansch Porto 16
Vantagem do sistema síncrono
detecção de defeito
– defeito de um componente do sistema pode ser
deduzido pela ausência de resposta
– timeout usado para detectar defeitos em
nodos e perda de mensagens
se um nodo não reponde após certo intervalo de tempo
sistema síncrono nodo com defeito
sistema assíncrono nada se pode afirmar
Ingrid Jansch Porto 17
Classificação de defeitos
modelo de Cristian
colapso ou crash
mais restritiva de todas as classes
– uma falha que causa a parada de um componente ou a perda do
seu estado interno
omissão
– um componente não responde a determinadas entradas
– engloba crash
também chamada falha de
temporização desempenho
– o componente responde ou muito cedo ou muito tarde
– engloba omissão
Ingrid Jansch Porto 18
Classificação de falhas
resposta
• computação incorreta, o componente produz respostas
incorretas para algumas entradas
– não engloba as anteriores
considerada caso especial
de bizantinas
bizantinas (arbitrárias ou maliciosas)
• falha arbitrária que provoca um comportamento
totalmente arbitrário e imprevisível do componente
durante o defeito
– engloba todas as classes de falhas
Ingrid Jansch Porto 19
Classificação de falhas
parada ou perda do sem resposta para
estado interno algumas entradas respostas
incorretas
para algumas
crash entradas
omissão
resposta
temporização
arbitrária
comportamento
resposta adiantada ou retardada totalmente arbitrário e
imprevisível
Ingrid Jansch Porto 20
Exemplos de classes de falhas
– Processador:
• crash ou bizantinas
– Rede de comunicação: todos os tipos
– Clock:
• temporização ou bizantinas
– Meio de armazenamento
• temporização, omissão ou resposta
– Software: resposta
Ingrid Jansch Porto 21
várias classificações
Modelos de falhas diferentes na literatura,
mas que não diferem
muito das de Cristian e
Fred B. Schneider Schneider
– Failstop (detectável pelos demais)
– Crash (Lamport and Fischer, 1982)
– crash + link (Budhiraja et al., 1992)
– omissão de recepção (Perry and Toueg, 1986)
– omissão de envio (Hadzilacos, 1984)
– omissão geral (Perry and Toueg, 1986)
– comportamento bizantino (Lamport, Shostak and Pease,
1982)
Ingrid Jansch Porto 22
Comunicação entre processos
troca de mensagens
– SEND e RECEIVE
• primitivas de comunicação e sincronização
RPC (remote procedure call)
– mais alto nível que SEND e RECEIVE
– interação cliente / servidor
invocação remota de métodos orientação a
objetos
Ingrid Jansch Porto 23
Comunicação entre processos
– troca de mensagens
• assíncrona
• síncrona (sem buffer - CSP)
– troca de mensagens assíncrona
• buffer infinito
• transmissor nunca bloqueia
– buffered message passing
• buffer finito
• opera assincronamente até buffer ficar cheio
Ingrid Jansch Porto 24
Comunicação entre processos
RPC
– call service (value_args, result_args)
– comunicação síncrona
falhas executando RPC
– órfãos
• execuções indesejadas de procedimento remoto,
ocasionada por defeito durante invocação
– ordem de chamadas
Ingrid Jansch Porto 25
Orientação a objetos
modelo orientado a objetos
• outro paradigma de comunicação de alto nível
• atualmente muito popular
– um processo executa um método em um objeto
particular
• objeto pode residir em qualquer nodo
• processo envia mensagem ao objeto
• objeto executa uma ação e retorna resultado
Ingrid Jansch Porto 26
Ordenação de eventos
dificuldade de determinar relações temporais
– RAZÃO: inexistência de clock global
problema
– determinar ordenação temporal de eventos que
ocorrem em nodos diferentes, medidos por relógios
diferentes
– relação: a “aconteceu antes de” b : a b
Ingrid Jansch Porto 27
Ordenação de eventos
ordem parcial
– se a e b são eventos do mesmo processo e a é
executado antes de b então a b
– se a é send e b é receive da mesma mensagem então
ab
– a b e b c então a c
– eventos concorrentes:
• nem a b, nem b a
Ingrid Jansch Porto 28
Clocks lógicos
relógios lógicos
Lamport (78)
• meio de assinalar um número a um evento
• nenhuma relação com o tempo físico
– sistema de clock lógico
• Ci - clock local ao proc Pi, C - sistema de clock
• um sistema de clock lógico é correto se é consistente com
a relação
para quaisquer eventos a e b,
se a b então C(a) < C(b)
Ingrid Jansch Porto 29
Clocks lógicos
a maior parte dos problemas de ordenação podem
ser resolvidos com clocks lógicos, sem
necessidade de relógios físicos sincronizados
clock lógico
– carimba um evento de forma que a relação de
ordem parcial é mantida
– pode ser facilmente implementado
• usando contadores
• numerando mensagens com numeração crescente
– exemplo de implementação: timestamp T
Ingrid Jansch Porto 30
Timestamps
– Pi inclui seu timestamp nas mensagens m que envia
• Tm: timestamp da mensagem m
Ingrid Jansch Porto 31
Timestamps
– as duas condições asseguram realização da ordem
parcial
– implementação:
• um contador por nodo é suficiente
• impossível assinalar timestamps consistentes com a
relação de ordem parcial puramente usando relógios
físicos
• clocks físicos precisariam ser sincronizados para
assegurar a relação de ordem parcial
Ingrid Jansch Porto 32
Ordenação total com clock lógico
– relógio lógico pode ser usado para ordenação total
(Lamport 78)
• mensagens de diferentes processos podem possuir o
mesmo timestamp
• se duas mensagens possuem o mesmo timestamp devem
ter sido originadas em diferentes processos
• para estabelecer uma ordem, basta ordenar os processos
de alguma forma
a mesma forma de ordenação deve ser
seguida por todos os processos
Ingrid Jansch Porto 33
Ordenação total
– uma implementação possível
• eventos com mesmo timestamp são ordenados pela
ordem lexicográfica dos nomes dos processos
– preserva a relação de ordem parcial
• todos os nodos classificam os eventos na mesma ordem,
• não assegura preservação de ordem temporal dos eventos
concorrentes
se a ordem temporal for importante, clocks lógicos
não podem ser empregados
Ingrid Jansch Porto 34
Exemplo
Pb envia b1 antes de Pa enviar a1
a1 b1 a2 b3
pa pc
a1 a2
ordem total
preservada
ordem parcial
a2 preservada
a1 b1 a2 b3
pb b1 b3
pd
Pb recebe a2 após enviar b1 b1 a1 b3 a2
Ingrid Jansch Porto 35