Redes e Sistemas Distribuídos II – Cód

Slides:



Advertisements
Apresentações semelhantes
O Modelo OSI O RM-OSI é um modelo de referência p/ interconexão de sistemas abertos (open systems interconection) Padrão ISO 7498, publicado em 1984 Sistemas.
Advertisements

Sistemas Distribuídos Baseados em Objetos
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Barramentos Introdução.
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Conceitos Relacionados a Internet
Modelos de Comunicação em Sistemas Distribuídos
RPC Remote Procedure Call
Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação
Comunicação Distribuída
Chapter 4: Threads.
Comunicação em Sistemas Distribuídos
Interação Cliente Servidor
Cabeamento LAN, Hardware de topologia e interface físicos
Capítulo 1 Introdução 1.1 O que é um sistema operacional
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Sistemas Operacionais
Sincronização de Processos (5)
Estruturas de Controle
Prof. Marcelo Diniz Fonte:
Sincronização e Comunicação entre Processos
Sistemas Distribuídos
Modelo OSI OSI é um modelo de referência para interligação de sistemas abertos (open systems interconection) Padrão ISO 7498, publicado em 1984 Sistemas.
Mobilidade Cláudia Ribeiro.
Modelos de Referência.
Classes e objetos P. O. O. Prof. Grace.
Sistemas Operacionais
Introdução à Programação Distribuída em Java
Escola Secundária Filipa de Vilhena Ano Lectivo 2010/ Turma IGR1
REDES DE COMPUTADORES II
Utilitários de Redes Prof. Andréa Chicri Torga Adaptações
Funcionalidades e Protocolos da Camada de Aplicação
NETBIOS Disciplina: Redes de Computadores
Modelo de referência OSI
SISTEMAS OPERACIONAIS
Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação.
Sistemas Distribuídos
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Web Services Uninorte Semana de Tecnologia da Informação
Chamada Remota de Procedimentos
Redes de Computadores Prof Rafael Silva.
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
Sistemas Distribuídos
Concorrência e Java RMI
Comunicação entre processos: Mensagens Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.
Capítulo 1 Introdução 1.1 O que é um sistema operacional
UML - Unified Modeling Language
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Sistemas Distribuídos
Comunicação.
Entrada e Saída (E/S).
Troca de Mensagens Programação concorrente
Disciplina de: Comunicação de Dados Professor: Carlos Pereira Trabalho Realizado por: João Santos.
Capítulo 4: Processos.
Sistemas Distribuídos Prof. Marcus Rodrigues
Modelos de Comunicação em Sistemas Distribuídos
Modelos de Comunicação em Sistemas Distribuídos
Redes de computadores: Camada de Transporte Prof. Dr. Amine BERQIA
Arquitetura TCP/IP Aplicação Transporte Rede Enlace Física.
Sistemas Distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Sistemas Distribuídos
Passagens de Mensagens Prof. Dr. Norian Marranghello
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Sistemas Distribuídos
Protocolos de Comunicação e Passagem de Mensagens
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Redes de Computadores Prof. Msc. Moisés Pereira Bastos.
Transcrição da apresentação:

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

07/04/2017 Comunicação Protocolos de Camadas Mater Christi

Roteiro Comunicação entre Processos Protocolos em Camadas 07/04/2017 Roteiro Comunicação entre Processos Protocolos em Camadas Modelo Cliente-Servidor RPC Mater Christi

Comunicação Entre Processos (CEP) 07/04/2017 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) Mater Christi

Termos mais usados na CEP 07/04/2017 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 e-mail Checksum: técnica comum para validar os dados recebidos OSI: Modelo Open Systems Interconnection (Baseado em pacotes) Mater Christi

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

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

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

Modelo Cliente-Servidor 07/04/2017 Modelo Cliente-Servidor Mater Christi

Modelo Cliente Servidor 07/04/2017 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor Exemplo de cliente e servidor em C http://www.e-reading-lib.com/chapter.php/143358/41/Tanenbaum_-_Distributed_operating_systems.html Exemplo de cliente e servidor em Java Deitel: Como programar Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor Endereçamento Bloqueio vs Sem bloqueio Bufferização vs Não Buferização Confiável vs Não confiável Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Modelo Cliente Servidor 07/04/2017 Modelo Cliente Servidor 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 Mater Christi

Protocolos de Middleware 07/04/2017 Protocolos de Middleware Mater Christi

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

07/04/2017 Tipos de Comunicação Middleware visto como serviço intermediário (distribuído) na comunicação de nível da aplicação Mater Christi

Tipos de Comunicação Comunicação Síncrona e Assíncrona 07/04/2017 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 Mater Christi

07/04/2017 RPC Remote Procedure Call Mater Christi

RPC Troca de mensagem entre processos Birrel e Nelson (1984) 01/08/2013 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

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.

Stubs Cliente e Servidor 01/08/2013 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

Stubs Cliente e Servidor 01/08/2013 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

Stubs Cliente e Servidor 01/08/2013 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

Stubs Cliente e Servidor 01/08/2013 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

Stubs Cliente e Servidor 01/08/2013 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

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

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

Passos de uma chamada de procedimento remoto 07/04/2017 Passos de uma chamada de procedimento remoto Servidor não funciona, retorna resultado para o topo Stub servidor empacota em mensagem, chamadas locais OS OS do servidor envia a mensagem para o OS do cliente OS do cliente dá a mensagem para stub cliente Stub descompacta resultado, retorna ao cliente Mater Christi

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