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

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

Redes e Sistemas Distribuídos II – Cód. 30127 Prof. MSc. Ronnison Reges Vidal.

Apresentações semelhantes


Apresentação em tema: "Redes e Sistemas Distribuídos II – Cód. 30127 Prof. MSc. Ronnison Reges Vidal."— Transcrição da apresentação:

1 Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal

2 Comunicação Protocolos de Camadas 17/12/2014 Mater Christi 2

3 Roteiro  Comunicação entre Processos  Protocolos em Camadas  Modelo Cliente-Servidor  RPC 17/12/20143 Mater Christi

4 Comunicação Entre Processos (CEP)  CEP em Sistemas Distribuídos é sempre baseada em troca de mensagens. Não existe memória ou clock compartilhados.  3 modelos de comunicação:  RPC: Remote Procedure Calls (Chamada de Procedimento Remoto, oculta a comprexidade da troca de mensagens)  MOM: Message-Oriented Middleware (Middleware Orientado a Mensagem, como e- mail)  Data Streaming (Fluxo de Dados, para aplicações multimídias) 17/12/2014 Mater Christi 4

5 Termos mais usados na CEP  Multicast: enviar para múltiplos receptores  Protocolos Orientados a Conexão: Há a necessidade de estabelecer conexão (i.e. Socket) antes da troca de mensagens (por exemplo, Transmission Control Protocol (TCP) ou Universal Datagram Protocol (UDP)  TCP: lento mas seguro quanto a perda de dados  UPD: rápido mas pode haver perda de dados  Protocolos sem conexão: por exemplo, troca de  Checksum: técnica comum para validar os dados recebidos  OSI: Modelo Open Systems Interconnection (Baseado em pacotes) 17/12/2014 Mater Christi 5

6 Protocolos de Camadas  Camadas, interfaces e protocolos do modelo OSI. 7. Alto nível 6. Cria mensagem: Como string de bits 5. Estabelece comunicação 4. Cria pacotes 3. Roteamento de rede 2. Coloca: header/footer tag + checksum 1. Transmiti bit

7 Protocolos em Camadas  Uma mensagem típica como ela aparece na rede.

8 Camada de Enlace  Discussão entre um receptor e um emissor na camada de enlace de dados.

9 Modelo Cliente-Servidor 17/12/2014 Mater Christi 9

10 Modelo Cliente Servidor  Sobrecarga de Camadas  A cada mensagem enviada deve ser processado meia dúzia de camadas cada qual com seu cabeçalho  Para sistemas distribuídos amplos não há muitos problemas  O fator limitante são as linhas de processamento para sistemas distribuídos localmente  Sobrecarga de protocolos 17/12/2014 Mater Christi 10

11 Modelo Cliente Servidor  Solução – Modelo cliente/servidor  Estrutura o sistema operacional como um grupo de processos cooperantes, chamados de servidores, que oferecem serviços aos usuários, chamados de clientes  Cliente e servidor  Executam mesmo microkernel  Execução de um processo, de vários clientes, de vários clientes ou uma mistura de ambos 17/12/2014 Mater Christi 11

12 Modelo Cliente Servidor 17/12/2014 Mater Christi 12  Baseado em um protocolo de solicitação / resposta simples, sem conexão.  O cliente envia uma mensagem de solicitação para o servidor solicitando algum serviço  O servidor faz o trabalho e devolve os dados pedidos ou de um código de erro indicando porque o trabalho não pode ser realizada

13 Modelo Cliente Servidor 17/12/2014 Mater Christi 13

14 Modelo Cliente Servidor 17/12/2014 Mater Christi 14  Vantagem: simplicidade  O cliente envia uma solicitação e recebe uma resposta  Nenhuma conexão deve ser estabelecida antes de usar ou desfeita depois  A mensagem de resposta serve como aviso de recepção para a solicitação

15 Modelo Cliente Servidor 17/12/2014 Mater Christi 15  Vantagem: Eficiência  A pilha de protocolo é mais curta  Assumindo que todas as máquinas são idênticos, são necessárias apenas três níveis de protocolo  Solicitação e Resposta  enlace de dados  físicos

16 Modelo Cliente Servidor 17/12/2014 Mater Christi 16  Exemplo de cliente e servidor em C  lib.com/chapter.php/143358/41/Tanenbau m_-_Distributed_operating_systems.html lib.com/chapter.php/143358/41/Tanenbau m_-_Distributed_operating_systems.html  Exemplo de cliente e servidor em Java  Deitel: Como programar

17 Modelo Cliente Servidor 17/12/2014 Mater Christi 17  Endereçamento  Bloqueio vs Sem bloqueio  Bufferização vs Não Buferização  Confiável vs Não confiável

18 Modelo Cliente Servidor 17/12/2014 Mater Christi 18  Endereçamento  Utilização de código de máquina e processo  Utilizar processos aleatórios e localizá-los por broadcast  Utilizar um servidor de nomes e localizar os clientes em tempo de execução

19 Modelo Cliente Servidor 17/12/2014 Mater Christi 19  Endereçamento  Envio de mensagens do cliente ao servidor  O endereço é da máquina ou do processo?  Endereços de Rede – Processo único  Endereços de Processos – utiliza dois identificadores: Máquina e para o processo

20 Modelo Cliente Servidor 17/12/2014 Mater Christi 20  Endereçamento  Problemas  transparência é um dos principais objetivos da construção de um sistema distribuído  suponha que o servidor de arquivos normalmente é executado na máquina X  abordagem alternativa consiste em atribuir a cada processo de um endereço único que não contém um número da máquina incorporado

21 Modelo Cliente Servidor 17/12/2014 Mater Christi 21  Endereçamento  abordagem alternativa consiste em atribuir a cada processo de um endereço único que não contém um número da máquina incorporado  ter um processo de alocação de endereço centralizada que simplesmente mantém um contador  A desvantagem deste sistema é que os componentes centralizados como este não escalam para sistemas de grande porte e, portanto, deve ser evitado

22 Modelo Cliente Servidor 17/12/2014 Mater Christi 22  Endereçamento  outro método de atribuição de identificadores de processo é deixar que cada processo escolher seu próprio identificador de um grande espaço de endereço escasso  Pacote de difusão – envia para todas as máquinas

23 Modelo Cliente Servidor 17/12/2014 Mater Christi 23  Endereçamento  Embora este sistema é transparente, mesmo com o cache, a difusão coloca carga extra no sistema  carga adicional pode ser evitada, proporcionando uma máquina adicional para mapear de alto nível (ou seja, ASCII ) para nomes de endereços da máquina

24 Modelo Cliente Servidor 17/12/2014 Mater Christi 24

25 Modelo Cliente Servidor 17/12/2014 Mater Christi 25  Primitivas de Bloqueio vs Sem bloqueio  Primitivas de bloqueio ou Primitivas síncronas  Primitivas de não-bloqueio ou Primitivas assíncronas  Quando um processo chama send ele especifica um destino e um buffer para enviar para esse destino  Enquanto a mensagem está sendo enviada, o processo de envio é bloqueado (ou seja, suspenso). A instrução após a chamada para send não é executada até que a mensagem foi enviada completamente

26 Modelo Cliente Servidor 17/12/2014 Mater Christi 26  Primitivas de Bloqueio vs Sem bloqueio  Uma alternativa são as primitivas sem bloqueio  Se send é sem bloqueio, ele retorna o controle para o chamador imediatamente, antes que a mensagem seja enviada

27 Modelo Cliente Servidor 17/12/2014 Mater Christi 27

28 Modelo Cliente Servidor 17/12/2014 Mater Christi 28  Primitivas de Bloqueio vs Sem bloqueio  A vantagem deste sistema é que o processo envio pode continuar a computação em paralelo com a transmissão de mensagens, em vez de ter o processador ir ocioso  Desvantagem  O enviador não pode modificar a mensagem no buffer até que a mensagem tenha sido enviada

29 Modelo Cliente Servidor 17/12/2014 Mater Christi 29  Primitivas de Bloqueio vs Sem bloqueio  Há duas formas  Cópia interna no buffer do kernel, permitindo que o processo continue  Interromper o enviador quando a mensagem tiver sido enviada  Problemas de sincronização de comunicação

30 Modelo Cliente Servidor 17/12/2014 Mater Christi 30  Primitivas de Bloqueio vs Sem bloqueio  Envio com bloqueio  CPU permanece ocioso durante a transmissão  Envio sem bloqueio com cópia  CPU desperdiça tempo com a cópia extra  Envio sem bloqueio com interrupção  Torna a programação difícil

31 Protocolos de Middleware 17/12/2014 Mater Christi 31

32 Protocolos de Middleware  Um modelo de referência adaptado para comunicação em rede.

33 Tipos de Comunicação  Middleware visto como serviço intermediário (distribuído) na comunicação de nível da aplicação 17/12/2014 Mater Christi 33

34 Tipos de Comunicação  Comunicação Síncrona e Assíncrona  Comunicação Persistente  Armazena a comunicação pelo tempo necessário(por exemplo, mail delivery)  Comunicação Transiente  A mensagem é armazenada enquanto o emissor e o receptor estão funcionando.  Comunicação Discreta  Comunicação por Fluxo 17/12/2014 Mater Christi 34

35 RPC Remote Procedure Call 17/12/2014 Mater Christi 35

36 01/08/ RPC  Troca de mensagem entre processos  Birrel e Nelson (1984)  Executar chamadas a procedimentos localizados em outras máquinas  Remote Procedure Call – RPC  Máquinas diferentes – Espaços de endereço diferentes  Parâmetros e resultados necessitam ser transportados  Alguma ou ambas as máquinas podem quebrar

37 Chamada de Procedimento Convencional (a) Passagem de parâmetros em uma chamada de procedimento local: a pilha antes da chamada a read (b) A pilha enquanto o procedimento está rodando.

38 01/08/ Stubs Cliente e Servidor  Stub Cliente  Pedaço do código que transforma informações (parâmetros) vindas de procedimentos locais em mensagens  Stub Servidor  Pedaço do código que transforma requisições vindas da rede em chamadas de procedimento locais

39 01/08/ Stubs Cliente e Servidor  Transparência ao procedimento de chamada  Tipo de interface entre o código de usuário e o sistema operacional local  Stub cliente  Método Análogo  Empacotamento de parâmetros  Envio ao servidor  Bloqueio em espera a resposta

40 01/08/ Stubs Cliente e Servidor  Stub servidor tipicamente chama o procedimento “receive” e está bloqueado esperando as mensagem que virão  Stub servidor desempacota os parâmetros e chama o procedimento servidor normalmente

41 01/08/ Stubs Cliente e Servidor  Executa a operação e retorna o resultado  Empacota o resultado em uma mensagem  Chama o procedimento “send” retornando o resultado ao cliente  Chama o procedimento “receive” esperando novas requisições

42 01/08/ Stubs Cliente e Servidor  A menssagem é copiada para o buffer de espera e o processo cliente é desbloqueado  Stub cliente inspeciona a mensagem e desempacota o resultado copiando o para o procedimento que o chamou  O procedimento sabe que o dado está disponível, mas não tem ideia que foi processado remotamente

43 Stubs Cliente e Servidor  Princípio da RPC entre um programa cliente e servidor.

44 Passos de uma chamada de procedimento remoto 1. Procedimento cliente chama o stub cliente em modo normal 2. Stub cliente constrói a mensagem, chamadas locais OS 3. OS do cliente envia mensagem para remoto OS 4. Remoto OS dá mensagem para stub servidor 5. Stub descompacta os parâmetros, e chama o servidor

45 Passos de uma chamada de procedimento remoto 1. Servidor não funciona, retorna resultado para o topo 2. Stub servidor empacota em mensagem, chamadas locais OS 3. OS do servidor envia a mensagem para o OS do cliente 4. OS do cliente dá a mensagem para stub cliente 5. Stub descompacta resultado, retorna ao cliente 17/12/2014 Mater Christi 45

46 Passando Valores por Parâmetro  Passos envolvidos na computação remota através do RPC


Carregar ppt "Redes e Sistemas Distribuídos II – Cód. 30127 Prof. MSc. Ronnison Reges Vidal."

Apresentações semelhantes


Anúncios Google