Carregar apresentação
A apresentação está carregando. Por favor, espere
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 dos mesmos.
2
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
3
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 para Nomes podem ter seu significado mudado ao longo do tempo
4
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
5
Servidores de nomes
6
Troca de mensagens Mecanismo básico de interação em sistemas distribuídos Endereçamento, protocolo e formato das mensagens Confiabilidade
7
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.
8
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
9
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)
10
Usando multiplas threads com operações remotas
11
Comunicação em grupo Difusão de conteúdo Grupo de servidores
especialmente streaming Grupo de servidores melhor disponibilidade e/ou performance 1 multicast ≠ n unicasts
12
Multicast para difusão de conteúdo
13
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
14
Relembrando o modelo de Lamport
Um evento pode ser: uma sub-rotina, uma instrução... O envio de uma mensagem; O recebimento de uma mensagem Cada processo é uma sequência de eventos O sistema é composto por uma coleção de processos; p q r
15
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
16
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”
17
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
18
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
19
Relógios Vetoriais Assumindo que todas as mensagens são broadcast
Se unicast ou multicast são permitidos, necessita-se de uma matriz no lugar do vetor
20
Limitações da ordenação causal
21
Ordenação Total Quaisquer duas mensagens entregues a quaisqueis processos são entregues na mesma ordem Fundamental para replicação ativa
22
Canais Ocultos
23
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
24
Troca de Visão Desincronizada
25
Atomic Broadcast Atomic Broadcast = View Synchrony + Total Order
Atomic Broadcast = Mudança de visão via entrega de mensagem + Total Order
26
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?
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.