• Nenhum resultado encontrado

Modulo3 Comunicação

N/A
N/A
Protected

Academic year: 2021

Share "Modulo3 Comunicação"

Copied!
33
0
0

Texto

(1)

Comunicação em Sistemas

Distribuídos (parte 1/2)

Andrey Brito, Lívia Sampaio Campos Sistemas Distribuídos – 2012.3

(2)

Nos módulos anteriores...

• Sistemas Distribuídos

– Múltiplos “computadores” – Uma rede de comunicação

– Compartilhando estado (eles cooperam)

• Motivação

(3)

Nos módulos anteriores...

• Modelos: entender possibilidades

– Arquitetural: cliente-servidor, entre-pares – Interação: síncrono, assíncrono, ...

– Falhas: parada, omissão, desempenho, valor, ... – Segurança: confidencialidade, integridade,

autenticidade

• Síncrono x Assíncrono

– Robustez x portabilidade

(4)

Síncrono x Assíncrono

• Princípio da imersão: um protocolo assíncrono “herda” garantias de tempo quando imerso em um sistema síncrono

• Implícito: baixo acoplamento

– Falhas independentes

– Comunicação não-confiável – Ausência de relógio

– Atrasos de comunicação – Velocidade imprevisível

(5)

SD x Redes

• Do que falamos em redes

– Protocolos de comunicação – Tecnologias

– Pacote, latência, vazão, perdas

• Do que falamos em SD

– Protocolos de cooperação – Algoritmos

(6)

Alguns conceitos relevantes

• Desempenho: depende de dois fatores

– Latência: tempo de trânsito do primeiro bit (s) – Vazão: taxa de comunicação (bits/s)

• Escalabilidade • Confiabilidade

• Qualidade de serviço • Difusão

(7)

SD x Redes (2)

• SD não depende diretamente de desempenho

ou de detalhes de baixo nível como a

implementação da difusão

• Mas essas informações pode ser relevantes

para a escolha ou construção de um protocolo

– Custo de uma difusão

– Latências envolvidas

(8)

Representação dos dados

• Programas têm estruturas de dados, pacotes têm sequência de bytes

• Representação pode ter problemas com a ordem dos bytes (ex., “little-endian” vs. “big-endian”) • Conversão dos objetos em sequências de bytes

(marshalling)

– CORBA CDR, Apache Trift, Java Serialization – XML, Google Protocol Buffers

(9)

Este módulo

• Comunicação via troca de mensagens

• Comunicação orientada a eventos

• Chamadas remotas à procedimentos/métodos

• Comunicação via memória compartilhada

(10)

COMUNICAÇÃO VIA TROCA DE

MENSAGENS

(11)

Interface

• Com esta forma de comunicação, normalmente usamos primitivas chamadas “send” e “receive” • A comunicação pode ser síncrona ou assíncrona

(cuidado!) – a chamada bloqueia ou não

– Síncrona: send e receive bloqueiam até que a mensagem enviada seja recebida

– Assíncrona: send não bloqueia, receive pode ou não bloquear

(12)

Interface (2)

• Endereçamento: explícito (ex., IP + porta, IP +

protocolo, ou através de um serviço de

descoberta)

• Confiabilidade das primitivas (perdas):

não-confiável (ex., UDP) ou não-confiável (ex., TCP)

• Ordenação: com ou sem garantias (ex., UDP

vs. TCP)

(13)

Falhas de comunicação

• Omissão, ordenação, desempenho, valor

• Algumas falhas podem ser transformadas em

outras falhas: valor  omissão, desempenho  omissão, ordenação  desempenho

• Obviamente, mais garantias, maior overhead

– Princípio fim-a-fim

– Em alguns casos é melhor ter mecanismos para lidar com falhas eventuais, do que ter garantias

(14)

Comunicação de grupo

• Comunicação entre dois processos por troca de mensagens usando “send” e “receive” é o básico • Mas em algumas situações um processo precisa

se comunicar com um conjunto de processos

– Serviço replicado para tolerância a falhas ou para desempenho

– Descoberta de serviços – Notificação de eventos

– Outros tipos de colaboração (ex., chat, paralelização)

(15)

Exemplos básicos

• Broadcast Ethernet: uma mensagem e todas as máquinas na rede local recebem

• Multicast IP: baseado em UDP, não é obrigatório para roteadores IPv4

• Broadcast IP (dentro de uma subrede)

• Todos sem confiabilidade ou ordenação, mas claramente eficientes

(16)

Multicast IP

• Faixa de endereços especiais (classe D: 1110…)

• Escopo depende do time-to-live (0: máquina

local, 1: rede local, …)

• Grupo aberto

• Roteadores pode usar uma implementação

eficiente

(17)

Protocolos de difusão

(18)

Confiabilidade

• Quando uma difusão pode dar errado?

• Quais as consequências?

(19)

Confiabilidade

• Falhas totais e parciais sempre podem acontecer

– Buffer cheio no receptor, roteador incompatível/falho, problema no remetente

• A falta de ordenação ou perda de mensagens pode levar a inconsistências em sistemas

replicados

• Variações comuns

– Difusão confiável: se algum recebe, todos recebem – Difusão ordenada: algumas garantias de ordenamento

(20)

Ordenação de mensagens

(21)

Ordenação de mensagens

• SYNC: processos bloqueiam

• CO: Causa, preserva potenciais relações de

causa e consequência

• FIFO: canal preserva ordem de envio

• Arbitrária

(22)

Protocolos de difusão – Sistema

• Máquinas se comunicam através de primitivas

ponto-a-ponto, máquinas falham apenas parando • O envio acontece através de uma primitiva

“broadcast(m)” ou “multicast(g, m)”, m é a mensagem e g é o grupo

• Além do recebimento da mensagem, existe um evento chamado “deliver”

– Receive é a primitiva da comunicação ponto-a-ponto – Deliver é a primitiva de recebimento da difusão

(23)

Comunicação ponto-a-ponto

• Comunicação confiável pode ser definida

como...

– Validade: mensagens enviadas (buffer de saída) são recebidas em algum momento (“eventually”) – Integridade: uma mensagem recebida é idêntica a

uma enviada e nenhuma mensagem é entregue duas vezes

(24)

Comunicação ponto-a-ponto

• Comunicação confiável pode ser definida

como...

– Validade: mensagens enviadas (buffer de saída) são recebidas em algum momento (“eventually”) – Integridade: uma mensagem recebida é idêntica a

uma enviada e nenhuma mensagem é entregue duas vezes

• Como implementar? Validade: acks,

Integridade: checksum, ids, criptografia

(25)

Difusão básica

• Algoritmo

B-multicast(g,m):

for each process p e g, send(p, m);

On receive (m) at p:

(26)

Difusão básica

• Algoritmo

B-multicast(g,m):

for each process p e g, send(p, m);

On receive (m) at p:

B-deliver (m) at p

• Problema: se o remetente falhar, apenas

alguns receberão

(27)

Difusão confiável

• Funciona mesmo que o remetente falhe

• Propriedades

– Integridade: um processo correto p entrega uma mensagem m apenas uma vez e esta mensagem foi enviada por algum processo

– Validade: se um processo envia m, ela será entregue em algum momento

– Concordância (agreement): se algum processo correto entrega, todos entregam (tudo ou nada)

(28)

Difusão confiável

(29)

Difusão confiável

• Integridade: um processo correto p entrega uma mensagem m apenas uma vez e esta mensagem foi enviada por algum processo

– Derivado do B-multicast: checksum, criptografia, etc.

• Validade: se um processo envia m, ela será entregue em algum momento

– Depois que o processo termina de enviar, ele entrega (deliver) a mensagem

• Concordância (agreement): se algum processo correto entrega, todos entregam (tudo ou nada)

(30)

Difusão com ordem

• Até agora não tínhamos ordem

• Alternativas

– FIFO: duas difusões feitas por um mesmo

processo, serão entregues na mesma ordem – Causal: preserva a relação “aconteceu-antes” – Total: todos os processos entregam na mesma

ordem

(31)

Difusão com ordem

Message processing Delivery queue Hold-back queue deliver When delivery guarantees are

(32)

Difusão com ordem

Sistemas Distribuídos 2012.3 COPIN/UFCG/CEEI 32

F3 F1 F2 T2 T1 P1 P2 P3 Time C3 C1 C2

(33)

Difusão com ordem

• P1 precisa atrasar sua própria mensagem, para manter a ordem

• F2 nunca poderia ser entregue antes de F1 em P2 • C3 tem que ser entregue depois de C1

• Total > Causal > FIFO

– Quanto mais ordem, menos desempenho (latência, banda) – A menor garantia necessário deve ser usada

Referências

Documentos relacionados

Functional Status Score for Intensive Care Unit (FSS-ICU) e o para identificar a Força de Preensão manual (FPM), o dinamômetro hidráulico de mãoForam divididos em 3 grupos de

Deep Brain Stimulation In The Nucleus Accumbens For Refractory Deep Brain Stimulation In The Nucleus Accumbens For Refractory Anorexia Nervosa.

Em conclusão, o EB, entendido atualmente como uma extensão considerável de MI reconhecível à endoscopia digestiva alta, é uma lesão homogênea quanto à expressão

Lees deze handleiding grondig door voor u het toestel in gebruik neemt.. Werd het toestel beschadigd tijdens het transport, installeer het dan niet en raadpleeg

Entre o total das duas notas analisadas, para as 27 UFs e duas categorias, os resultados positivos representam 12, 76% dos resultados, enquanto 16, 67% dos resultados n˜ao

Valor Unitário de R$ 1,50 (um real e cinqüenta centavos). - CLARÃO COMERCIAL DE MATERIAIS ELÉTRICOS LTDA. - DELVALLE MATERIAIS ELÉTRICOS LTDA. - CLARÃO COMERCIAL DE

Desta forma, o objetivo do presente estudo foi determinar e comparar o momento, duração e amplitude do pico de LH em ovelhas (Texel x Santa Inês) utilizando protocolo de IATF de

8° Fica o Poder Executivo autorizado, consoante § 7° do artigo 137 da Lei Orgânica do Município de São Paulo, a abrir créditos adicionais suplementares por decreto,