sistemas distribuídos walfredo cirne aula 3: conceitos básicos as figuras que aparecem nesses...

26
Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento dos mesmos.

Upload: internet

Post on 17-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Sistemas DistribuídosWalfredo Cirne

Aula 3: Conceitos Básicos

As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento dos mesmos.

Page 2: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Propriedades de um sistema

• Safety– Alguma coisa ruim não pode acontecer

• Liveliness– Alguma coisa boa vai acontecer um dia

• Timeliness– Adicionam requisitos de tempo real às

propriedades de liveliness

Page 3: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Nomes e endereços

• Nomes identificam objetos– Nomes únicos globalmente × contexto de nomes– Nomes “puros” × “impuros”

• Endereços são nomes usados por algum sistema de comunicação para entregar mensagens

• Nomes são resolvidos em endereços– “Ciência da Computação é a ciência que resolve

problemas adicionando níveis de indireção”– Quais resoluções temos quando enviamos um email

para [email protected]?– Nomes podem ter seu significado mudado ao longo do

tempo

Page 4: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Mapeamento/resolução de nomes

• Serviços de nomes traduzem nomes em endereços– Binding

• Associa um nome a um endereço

– Lookup• Recupera (resolve) um endereço a partir de um nome

– Unbiding• Desassocia um nome a um endereço

• O servidor de nomes precisa usar um endereço bem conhecido

Page 5: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Servidores de nomes

Page 6: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Troca de mensagens

• Mecanismo básico de interação em sistemas distribuídos• Endereçamento, protocolo e formato das mensagens• Confiabilidade

Page 7: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Ordenação de Mensagens

• FIFO: Quaisquer duas mensagens enviadas pelo mesmo participante e entregue a qualquer participante são entregues na mesma ordem de envio.

Page 8: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Semântica de Bloqueio

• O send pode retornar quando:– Se recebe um ack– Quando o dado enviado está bufferizado – Imediatamente

• Cada opção tem impactos de performance e interface

• Respose-and-reply × Notification/events

Page 9: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Operação remota

• Chamada remota de procedimento (ou método)– Marshalling/unmarshalling– Bloqueio durante a execução– Semântica de falhas

• Mecanismo básico usado no paradigma cliente/servidor– Amplamente usada (ex Java RMI)

Page 10: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Usando multiplas threads com operações remotas

Page 11: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Comunicação em grupo

• Difusão de conteúdo– especialmente streaming

• Grupo de servidores– melhor disponibilidade e/ou performance

• 1 multicast ≠ n unicasts

Page 12: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Multicast para difusão de conteúdo

Page 13: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Group membership

• Serviço usado para construção de grupos de replicas– Provê serviço de alto nível– Entrega confiável de mensagens

• Visão do grupo– Os membros do grupo sabem quem está no

grupo

• Ordenação de mensagens– O enviador recebe suas próprias mensagens

Page 14: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Relembrando o modelo de Lamport

• O sistema é composto por uma coleção de processos;

p

q

r

• Cada processo é uma sequência de eventos• Um evento pode ser:

– uma sub-rotina, uma instrução... – O envio de uma mensagem;– O recebimento de uma mensagem

Page 15: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Precedência

• Se a e b são eventos no mesmo processo e a precede b, então a b

• Se a é o envio da mensagem m e b é a recepção da mensagem m, então a b

• Se a b e b c, então a c

Page 16: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Ordenação Causal

• Causal: Permite ordenar mensagens enviadas por processos diferentes

• Obedece “Entrega Causal”: – se enviop(m) envioq(n),

então entregar(m) entregar(n)

• Implementação: protocolos que asseguram “ordem lógica”

Page 17: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Relógios Lógicos

• A idéia é associar um número a cada evento

• Cada processo Pi tem um relógio Ci• Um relógio associa um número Ci[a] a cada

evento a no processo i

• O sistema formado por todos os relógios é representado por C;– C[b] = Ci[b], se b aconteceu no processo i

• Os valores de C são apenas contadores

Page 18: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Relógios Lógicos

• Clock Condition: Para quaisquer dois eventos a e b: se a b, então C[a] < C[b]

• Implementação– Cada processo Pi incrementa Ci entre dois

eventos sucessivos

– Se a é o envio de uma mensagem m por Pi então m carrega o valor Tm de Ci[a]; ao receber m, Pj ajusta seu relógio Cj para um valor maior do que Tm

Page 19: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

• Assumindo que todas as mensagens são broadcast

• Se unicast ou multicast são permitidos, necessita-se de uma matriz no lugar do vetor

Relógios Vetoriais

Page 20: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Limitações da ordenação causal

Page 21: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Ordenação Total

• Quaisquer duas mensagens entregues a quaisqueis processos são entregues na mesma ordem

• Fundamental para replicação ativa

Page 22: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Canais Ocultos

Page 23: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Acordo sobre Participantes

• Muitas vezes é importante saber quais processos constituem o sistema– Por exemplo, rank e size viabilizam a

computação determinística de uma propriedade por todos os processos

• Conjunto de participantes = Visão

• É fundamental que cada mensagem seja entregue a todos os seus destinatários na mesma visão

Page 24: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Troca de Visão Desincronizada

Page 25: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Atomic Broadcast

• Atomic Broadcast = View Synchrony + Total Order

• Atomic Broadcast =Mudança de visão via entrega de mensagem + Total Order

Page 26: Sistemas Distribuídos Walfredo Cirne Aula 3: Conceitos Básicos As figuras que aparecem nesses slides são de Veríssimo&Rodrigues, reproduzidas com o consentimento

Determinismo de Replicas

• Atomic broadcast permite implementarmos replicação, desde que as replicas sejam totalmente determinísticas

• Mas, como construir replicas perfeitamente determinísticas?– Será que um malloc() é determinístico?