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 Ingrid Jansch Pôrto 2006 Agradecimentos a Taisy Silva Weber pelo conjunto de slides original, a partir do qual este

Embed Size (px)

Citation preview

Page 1: 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

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.

Page 2: 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

Ingrid Jansch Porto 2

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.

Page 3: 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

Ingrid Jansch Porto 3

Níveis

processador fail-stop, armazenamento estável,comunicação confiável, consenso bizantino,

difusão confiável e atômica

recuperação para um estado consistente

resiliência de dados

resiliência de processos

ações atômicas

software tolerante a falhas

serviços

blocosbásicos

sistema distribuído

Page 4: 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

Ingrid Jansch Porto 4

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

Page 5: 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

Ingrid Jansch Porto 5

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.

Page 6: 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

Ingrid Jansch Porto 6

Sistemas distribuídos

– sem memória compartilhada– sem relógio global

modelos– modelo físico

– modelo lógico

nodos e rede

processos e canais

o modelo físico é de interesse secundário nessa disciplina; entretanto, para melhorar o desempenho, características físicas especiais do meio podem ser consideradas

processadorrelógio localmemória local volátilarmazenamento não volátilinterface de redesoftware

Page 7: 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

Ingrid Jansch Porto 7

Modelo físico

processador

memórialocal

relógiolocal

disco

interfacede

rede

NODO i

- memória não é compartilhada com demais nodos- o relógio é local a cada nodo

NODO k

mensagens

NODO j

Page 8: 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

Ingrid Jansch Porto 8

Comunicação:topologias ponto a ponto

totalmenteconectado

estrela

árvore

Page 9: 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

Ingrid Jansch Porto 9

Topologia barramento

barramentocomum

nodos

nodos

uma mensagem enviada pelo barramento pode ser recebida simultaneamente por todos os nodos (broadcast)

bus, barra ou via

Page 10: 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

Ingrid Jansch Porto 10

Modelo lógico

aplicação distribuída– conjunto de processos concorrentes– processos cooperam para realizar uma computação

• cada processo é seqüencial

progresso finito• nada pode ser dito sobre velocidades relativas entre os

processos

cada processo pode estar em um nodo diferente

todos os processos avançam na execução

Page 11: 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

Ingrid Jansch Porto 11

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

Page 12: 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

Ingrid Jansch Porto 12

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)

Page 13: 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

Ingrid Jansch Porto 13

Canal

c b a

c b a

p i

p j

canal

ordem de mensagenspreservada

processo

no modelo físico, as mensagens a, b e c podem trafegar por rotas diferentes

ordem de envio

Page 14: 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

Ingrid Jansch Porto 14

Canal

p a

p d

p c

p b

x y

x y

m n

m n

m x y n

x m n y

ordem parcial preservadaordem total não preservada

Page 15: 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

Ingrid Jansch Porto 15

Sistemas síncronos e assíncronos

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

definidos pela existência de limites de tempo

Page 16: 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

Ingrid Jansch Porto 16

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

Page 17: 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

Ingrid Jansch Porto 17

usado para detectar defeitos em nodos e perda de mensagens

Vantagem do sistema síncrono

detecção de defeito– defeito de um componente do sistema pode ser

deduzido pela ausência de resposta– timeout

se um nodo não reponde após certo intervalo de temposistema síncrono - nodo com defeitosistema assíncrono - nada se pode afirmar

Page 18: 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

Ingrid Jansch Porto 18

Classificação de defeitos

colapso ou crash– 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

temporização– o componente responde ou muito cedo ou muito tarde– engloba omissão

modelo de Cristian

mais restritiva de todas as classes

também chamada falha de desempenho

Page 19: 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

Ingrid Jansch Porto 19

Classificação de falhas

resposta• computação incorreta, o componente produz respostas

incorretas para algumas entradas– não engloba as anteriores

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

considerada caso especial de bizantinas

Page 20: 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

Ingrid Jansch Porto 20

respostatemporização

arbitrária

omissãocrash

Classificação de falhas

comportamento totalmente arbitrário e

imprevisível

respostas

incorretas

para algumas entradas

resposta adiantada ou retardada

sem resposta paraalgumas entradas

parada ou perda doestado interno

Page 21: 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

Ingrid Jansch Porto 21

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

Page 22: 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

Ingrid Jansch Porto 22

Modelos de falhas

Fred B. 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)

várias classificações diferentes na literatura, mas que não diferem muito das de Cristian e Schneider

Page 23: 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

Ingrid Jansch Porto 23

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

Page 24: 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

Ingrid Jansch Porto 24

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

Page 25: 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

Ingrid Jansch Porto 25

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

Page 26: 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

Ingrid Jansch Porto 26

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

Page 27: 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

Ingrid Jansch Porto 27

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

Page 28: 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

Ingrid Jansch Porto 28

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

Page 29: 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

Ingrid Jansch Porto 29

Clocks 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)

relógios lógicos

Page 30: 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

Ingrid Jansch Porto 30

Clocks lógicos

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

a maior parte dos problemas de ordenação podem ser resolvidos com clocks lógicos, sem necessidade de relógios físicos sincronizados

Page 31: 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

Ingrid Jansch Porto 31

Timestamps

– Pi inclui seu timestamp nas mensagens m que envia• Tm: timestamp da mensagem m

– Duas condições:• 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

Ci - clock local ao processo Pi

Page 32: 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

Ingrid Jansch Porto 32

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

Page 33: 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

Ingrid Jansch Porto 33

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

Page 34: 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

Ingrid Jansch Porto 34

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

Page 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

Ingrid Jansch Porto 35

Exemplo

p a

p d

p c

p b

a1 a2

b1 b3

ordem parcial preservada

a2

a1 b1 a2 b3

ordem total preservada

b1 a1 b3 a2 Pb recebe a2 após enviar b1

Pb envia b1 antes de Pa enviar a1

a1 b1 a2 b3