A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.

Apresentações semelhantes


Apresentação em tema: "Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação."— Transcrição da apresentação:

1 Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

2 Modelos de comunicação em Sistemas Distribuídos

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

4 Comunicação cliente-servidor

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

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

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

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.

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.

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

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

12 Pacotes em protocolo C-S

13 Chamada 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

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

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

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

17 Chamadas e mensagens em RPC Máquina do ClienteMáquina do Servidor Kernel clienteservidor empacota parâmetros desempacota resultados desempacota parâmetros empacota resultados transporte de mensagens via rede 1 2 3 4 0 5 6 7 8 9 10 11

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)

19 Funções dos Stubs 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)

20 Funções dos Stubs Client stub recebe a mensagem de reply (através do núcleo) desempacota o resultado passa o resultado para o cliente

21 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

22 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

23 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

24 Comunicação em grupo 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

25 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

26 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.

27 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.

28 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

29 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

30 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


Carregar ppt "Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação."

Apresentações semelhantes


Anúncios Google