Vous êtes sur la page 1sur 35

Arquitetura de sistemas distribuídos

Ingrid Jansch Pôrto


2006

Agradecimentos a Taisy Silva Weber pelo conjunto de slides


original, a partir do qual este foi realizado .
Arquitetura de sistemas distribuídos
 Material baseado

– Pankaj Jalote. Fault Tolerance in Distributed Systems.


Prentice Hall, 1994.

– Mukesh Singhal & Niranjan Shivaratri. Advanced Concepts


in Operating Systems. McGraw Hill, 1994.

– Sape Mullender. Distributed Systems. Addison-Wesley, 2nd


edition, 1994.

Ingrid Jansch Porto 2
Níveis
serviços

software tolerante a falhas

resiliência de processos

resiliência de dados

ações atômicas

recuperação para um estado consistente

difusão confiável e atômica


blocos
básicos processador fail-stop, armazenamento estável,
comunicação confiável, consenso bizantino,
sistema distribuído
Ingrid Jansch Porto 3
Sistemas distribuídos
 Modelos de Sistemas Distribuídos (SD):
modelos físico e lógico; comunicação entre
processos
 Relógios lógicos e ordenação de eventos
 Estado global do SD
 Canais de comunicação
 Modelos de computação. Modelos de defeitos
 Acordo bizantino
Ingrid Jansch Porto 4
Modelos de sistemas distribuídos
 Modelo físico: definido pelos componentes físicos do
sistema. Ë o nível de realização da computação (rede
real).
 Modelo lógico: definido do ponto de vista do
processamento ou da computação. Corresponde ao
ponto de vista do usuário; serve de base para a
definição de serviços.
Em sistemas robustos, o modelo lógico é independente
das falhas que ocorrem sobre o modelo físico.
Ingrid Jansch Porto 5
Sistemas distribuídos
– sem memória compartilhada
processador
– sem relógio global relógio local
memória local volátil
 modelos armazenamento não volátil
interface de rede
– modelo físico  nodos e rede software

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

– conjunto de processos concorrentes


– processos cooperam para realizar uma computação
• cada processo é seqüencial

 progresso finito todos os processos avançam na execução

• nada pode ser dito sobre velocidades relativas entre os


processos

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

ordem parcial preservada


mn ordem total não preservada

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
ab
– 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

– Duas condições: Ci ­ clock local ao processo Pi


• cada Pi incrementa Ci entre 2 eventos sucessivos
• recebendo mensagem m com Tm ,
Pj torna Cj maior ou igual ao seu valor atual e maior
que Tm

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

Vous aimerez peut-être aussi