modelos de comunicação em sd 1 modelos de comunicação em sistemas distribuídos alcides...

28
Modelos de Comunicação em SD Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

1

Modelos de Comunicação emSistemas Distribuídos

Alcides Calsavara

Page 2: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

2

Referência Básica

[C] Distributed Systems: Concepts and Design. G. Coulouris, J. Dollimore, T. Kindberg. Addison-Wesley, 1994. ISBN 0-201-62433-8. (Capítulos 4 e 5)

[T] Distributed Operating Systems. A. S. Tanenbaum. Prentice-Hall, 1995. ISBN 0-13-219908-4. (Seções 2.4 e 2.5)

Page 3: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

3

Conteúdo

Elementos básicos de comunicação Transmissão de dados Endereçamento Sincronismo Enfileiramento (Bufferização) Confiabilidade

Comunicação cliente-servidor Comunicação em grupo Chamada remota de procedimento

Page 4: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

4

Comunicação cliente-servidor

Cliente

Núcleo Núcleo

Rede

Requisição

RespostaServidor

Requisição/Resposta

1

2

3

4

5

6

7

Enlace

Físico

Page 5: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

5

Transmissão de dados

Dados em programas são estruturados enquanto que mensagens carregam informação sequencial:

» Linearização/Restauração de dados Heterogeneidade na representação de dados

em computadores:

» Uso de um formato externo comum

» Inclusão de uma identificação de arquitetura na mensagem

Page 6: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

6

Marshalling/Unmarshalling

Marshalling: Linearização de uma coleção de itens de

dados estruturados Tradução dos dados em formato externo

Unmarshalling: Tradução do formato externo para o local Restauração dos itens de dados de acordo

com sua estrutura

Page 7: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

7

Endereçamento Esquemas:

Endereçamento máquina.processo Endereçamento máquina.id-local Descoberta de endereço via broadcasting

(difusão) Descoberta de endereço via um servidor de

nomes Problemas potenciais: transparência de

localização, sobrecarga, escalabilidade

Page 8: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

8

Comunicação síncrona

Primitiva send é bloqueante: processo cliente aguarda enquanto o núcleo envia a mensagem para o processo servidor.

Primitiva receive é bloqueante: processo servidor aguarda até que o núcleo receba uma mensagem endereçada para aquele processo.

Page 9: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

9

Comunicação assíncrona Primitiva send não é bloqueante: o processo

cliente aguarda somente enquanto a mensagem é copiada para o buffer do núcleo.

Primitiva receive pode ser: bloqueante: o processo servidor aguarda

por uma mensagem. não bloqueante: o processo servidor

simplesmente comunica o núcleo que espera receber uma mensagem.

Page 10: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

10

Enfileiramento Situações:

Send ocorre antes de Receive Um cliente faz um Send enquanto o servidor

ainda atende a outro cliente Solução trivial: clientes devem insistir ... Solução pragmática: mailbox (uma fila de

mensagens controlada pelo núcleo): mailbox criado a pedido do servidor mensagens endereçadas ao mailbox

Page 11: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

11

Confiabilidade

Mensagens se perdem, atrasam, duplicam. Abordagens:

Send tem semântica não confiável: as aplicações devem garantir entrega de mensagens (ex: timeout)

Mensagem de acknowledgement enviada pelo servidor (no nível núcleo)

Mensagem de acknowledgement implícita na resposta do servidor

Page 12: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

12

Pacotes em protocolo C-SCódigo Tipo De Para Descrição

REQ Request C S O cliente deseja umserviço

REP Reply S C Resposta do servidor parao cliente

ACK Ackowledgment x y O pacote anterior chegou

AYA Are you alive? C S Investiga de o servidornão parou

IAA I am alive S C O servidor não parou

TA Try again S C O servidor está lotado

AU Address unknown S C Nenhum processo estáusando aquele endereço

Page 13: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

13Chamada de Procedimentos Remotos (RPC)

Comunicação baseada em operações de entrada/saída: abstração fraca, sujeito a erros

Ideal: programar um sistema distribuído como se fosse centralizado

RPC objetiva permitir chamada de procedimento remoto como se fosse local, ocultando entrada/saída de mensagens

Page 14: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

14

Visão geral

Um processo A chama um procedimento p de um processo B, entrando em estado de espera

O processo B passa a executar o procedimento p, e ao seu término faz um reply para o processo A

O processo A volta à sua execução normal após ter recebido o reply

Page 15: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

15

Chamadas de procedimento

O procedimento chamador, que já tem suas variáveis locais empilhadas, empilha os parâmetros da chamada e o endereço de retorno

O procedimento chamado aloca suas variáveis locais

No retorno do procedimento chamado, os parâmetros e o endereço de retorno são desempilhados

Page 16: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

16

Modos de parâmetros Valor: procedimento chamado recebe uma cópia

de uma variável conhecida do procedimento chamador

Referência: procedimento chamado recebe o endereço de uma variável conhecida do procedimento chamador

Cópia/Reescrita: procedimento chamador recebe uma cópia de uma variável conhecida do procedimento chamador e o valor desta cópia é reescrito na variável

Page 17: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

17

Chamadas e mensagens em RPC

Máquina do Cliente Máquina do Servidor

Kernel Kernel

cliente servidor

empacotaparâmetros

desempacotaresultados

desempacotaparâmetros

empacotaresultados

transporte de mensagensvia rede

12

3

4

0 56

7

8

9

1011

Page 18: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

18

Funções dos Stubs Client stub

intercepta a chamada empacota os parâmetros (marshalling) envia mensagem de request ao servidor (através do núcleo)

Server stub recebe a mensagem de request (através do núcleo) desempacota os parâmetros (unmarshalling) chama o procedimento, passando os parâmetros empacota o resultado envia mensagem de reply ao cliente (através do núcleo)

Client stub recebe a mensagem de reply (através do núcleo) desempacota o resultado passa o resultado para o cliente

Page 19: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

19

Falhas em RPC

O cliente não é capaz de localizar o servidor A mensagem de request do cliente para o

servidor é perdida A mensagem de reply do servidor para o

cliente é perdida O servidor pára após ter recebido a

mensagem de request O cliente pára após ter enviado a mensagem

de request

Page 20: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

20

Falha do servidor Passos normais:

recebe mensagem de request executa procedimento envia mensagem de reply

Falha pode ocorrer: após a execução antes da execução

Semânticas de chamada: pelo menos um no máximo um exatamente um

Page 21: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

21

Falha do cliente O servidor torna-se um “órfão” Soluções:

exterminação do servidor pela máquina do cliente reencarnação do cliente: toda computação remota

é destruída "reencarnação" suave do cliente: somentes as

computações remotas referentes a aquele cliente são destruídas

expiração: servidor estabele um timeout para confirmação

Page 22: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

22

Comunicação em grupo

ER R

R

R

R R

R R

E

R

Processo que envia mensagem

Processo que recebe mensagem

Tolerância a falhas baseada na replicação de serviços

Localização de objetos em serviços distribuídos

Melhor desempenho via replicação de dados

Múltipla atualização

Page 23: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

23

Tipos de grupos Visibilidade:

Aberto: um processo fora do grupo consegue enviar mensagens para o grupo todo

Fechado: somente processos do grupo enviam mensagens para o grupo todo

Organização: Peer: todos os processos tomam decisão Hierárquico: decisão é centralizada

Page 24: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

24

Endereçamento de grupo

Multicast: um processo envia uma mensagem simultânea e somente para os membros do grupo.

Broadcast: um processo envia uma mensagem para todas as máquinas e somente as que contêm um membro do grupo a assimila.

Unicast: um processo envia uma mensagem para todos os membros do grupo em série.

Page 25: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

25

Modificações no grupo

Controle centralizado: servidor de grupo Controle descentralizado: acordo entre

os membros Operações:

Entrada de um membro: atualizar estado Saída de um membro: se involuntária (ex:

parada), todos os membros restantes devem notar sua saída.

Page 26: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

26

Primitivas de comunicação

GroupSend: envia mensagem para todos os membros do grupo

GroupReceive: aguarda mensagem enviada a todo o grupo

GetReply: aguarda resposta de todos os membros do grupo após um GroupSend

Page 27: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

27

Atomicidade Uma mensagem enviada ao grupo deve

ser recebida por todos os seus membros ou por nenhum deles.

Situação: o enviador pode parar enquanto está enviando a mensagem para o grupo.

Garantia de consistência do grupo Facilidade de programação

Page 28: Modelos de Comunicação em SD 1 Modelos de Comunicação em Sistemas Distribuídos Alcides Calsavara

Modelos de Comunicação em SD

28

Ordenação de mensagens

Todas as mensagens enviadas a um grupo devem chegar a todos os processos na mesma ordem.

Abordagens: Ordenação por tempo global Ordenação por tempo consistente:

somente uma mensagem por vez é difundida