Comunicação entre Processos

Documentos relacionados
Processos em Sistemas Distribuídos e Comunicação entre Processos

Sistemas Operacionais Distribuídos e de Redes

Sistemas Operacionais II

Processos em Sistemas Distribuídos: Comunicação entre Processos, Nomeação e Sincronização

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

AULA ANTERIOR: MODELOS FUNDAMENTAIS

Sistemas Distribuídos Aula 10

Sistemas Distribuídos: Conceitos e Projeto RPC e RMI

Comunicação. capítulo

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Sistemas Distribuídos

Sistemas Distribuídos

Principais conceitos de CORBA

Java RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

Comunicação. Carlos A. G. Ferraz 25/6/2003. Sistemas Distribuídos 1. Tópicos. Camadas. Transmissão de dados. Marshalling/Unmarshalling.

Computação Distribuída Cap. III

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA

Sistemas Distribuídos

Canais de Comunicação

Sockets e Threads em Java

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha

Programação com Sockets

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

SISTEMAS DISTRIBUÍDOS

Comunicação entre processos COMUNICAÇÃO ENTRE PROCESSOS. Comunicação entre processos - troca de mensagens

Sistemas Distribuídos. Coulouris Capítulo 4

Comunicação entre processos. Sistema centralizado

COMUNICAÇÃO ENTRE PROCESSOS

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

SISTEMAS DISTRIBUÍDOS


Fundamentos de Sistemas Operacionais

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

INTRODUÇÃO. RPC x RMI

Sockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets

Introdução aos Sistemas Distribuídos

Sistemas Operacionais II

Sistemas Operacionais II

camada de transporte SOCKET TCP UDP

Vamos fazer um pequeno experimento

Sistemas Distribuídos Aula 2

Sistemas de Troca de Mensagens

Programação com Sockets

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 10. Operações nos processos. Processos cooperativos, comunicação entre processos.

Protocolo Request-Reply

Sistemas Distribuídos

Caracterização de Sistemas Distribuídos

Redes de Computadores. Prof. André Y. Kusumoto

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO

SPEEDMiddleware - MOM

Arquiteturas de Computadores. Princípios e exemplos de conjuntos de instruções

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Capítulo IV Comunicação entre processos

Volnys Bernal 1. Trabalho Chat UDP. PSI 2653 Meios Eletrônicos Interativos I

Redes de Computadores

Sistemas Operacionais - Básico e Avançado - Prof. Celso Maciel da Costa Mestrado em Informática - PUCRS

Desenvolvimento de Aplicações Distribuídas

Sistemas Distribuídos

Arquitetura de Computadores Sistemas Operacionais II

PROTOCOLOS DE COMUNICAÇÃO

Jéfer Benedett Dörr

Comunicação entre Processos

Sistemas Distribuídos

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017 ALUNO

Projecto hipotético para resolvermos hoje

Web Services. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

Módulo 3 Nível Transporte

Programação concorrente (processos e threads)

UNIVERSIDADE. Sistemas Distribuídos

Resumo das Propriedades de UDP e de TCP

STD29006 Sistemas Distribuídos

Capítulo III Comunicação entre processos

Jéfer Benedett Dörr

Rede de computadores Protocolos UDP. Professor Carlos Muniz

Prof. Samuel Henrique Bucke Brito

Aplicações de Redes de Computadores

Sistemas Distribuídos

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 12/06/2017. ALUNO Prof. Bosco

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA ENGENHARIA DE COMPUTAÇÃO

Fundamentos de Rede. Aula 2 - Modelo OSI

Data and Computer Network Endereçamento IP

Introdução à passagem de mensagens e sistemas distribuídos

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

O que é um sistema distribuído?

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Redes de Computadores e Aplicações. Aula 43 - Camada de Transporte TCP (Transmission Control Protocol)

Desenvolvimento de Aplicações Distribuídas

Capítulo II Modelos de Programação Distribuída

EXERCÍCIOS DE REVISÃO REDES DE COMPUTADORES EDGARD JAMHOUR. Segundo Bimestre

Desenvolvimento de Aplicações Distribuídas

COMPUTAÇÃO DISTRIBUÍDA

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUIDA PROVA 2 03/07/2017 ALUNO

Cálculo de Soma de Verificação do User Datagram Protocol

Capítulo II Modelos de Programação Distribuída

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

SIST706 Sistemas Distribuídos

Transcrição:

Comunicação entre Processos Prof. Leonardo Barreto Campos http://sites.google.com/sitew/leonardobcampos 1/29

Sumário Introdução Comunicação entre Processos: Soquetes Comunicação por datagrama UDP Comunicação por fluxo TCP Representação externa de dados e empacotamento Comunicação por multicast Virtualização de redes: redes de sobreposição http://sites.google.com/sitew/leonardobcampos 2/29

Introdução De onde viemos: http://sites.google.com/sitew/leonardobcampos 3/40

Introdução Conceitos gerais de Sistemas Distribuídos: http://sites.google.com/sitew/leonardobcampos 4/40

Introdução Revisão das Redes de Computadores: UDP: datagramas TCP: fluxo (stream) http://sites.google.com/sitew/leonardobcampos 5/40

Introdução Revisão das Redes de Computadores: UDP: datagramas TCP: fluxo (stream) http://sites.google.com/sitew/leonardobcampos 6/40

Introdução Revisão das Redes de Computadores: UDP: datagramas TCP: fluxo (stream) http://sites.google.com/sitew/leonardobcampos 7/40

Comunicação entre Processos A passagem de mensagens entre um par de processos pode ser suportada por duas operações de comunicação de mensagem: send e receive. Um processo envia (send) uma mensagem (sequência de bytes) para um destino e o outro processo, no destino, recebe (receive ) a mensagem http://sites.google.com/sitew/leonardobcampos 8/40

Comunicação entre Processos Essa atividade envolve a comunicação de dados do processo remetente para o processo destino e pode implicar na sincronização dos dois processos; Forma síncrona: os processos origem e destino são sincronizados a cada mensagem; send e receive são operações que causam bloqueio Ou seja, quando um envio (send) é feito, o processo origem (ou thread) é bloqueado até que a recepção (receive) correspondente seja realizada; http://sites.google.com/sitew/leonardobcampos 9/40

Comunicação entre Processos Essa atividade envolve a comunicação de dados do processo remetente para o processo destino e pode implicar na sincronização dos dois processos; Forma assíncrona: o uso da operação send é não bloqueante. Ou seja, processo origem pode prosseguir assim que a mensagem tenha sido copiada para o buffer local, e a transmissão da mensagem ocorre em paralelo com o processo origem; http://sites.google.com/sitew/leonardobcampos 10/40

Soquetes As duas formas de comunicação (UDP e TCP) usam a abstração de soquete, um ponto de destino para a comunicação entre processos. Para que um processo receba mensagens, seu soquete deve estar vinculado a uma porta local e a um dos endereços IP do computador em que é executado; http://sites.google.com/sitew/leonardobcampos 11/40

Soquetes Observações: As mensagens enviadas para um endereço IP e um número de porta em particular só podem ser recebidas por um processo cujo soquete esteja associado a esse endereço IP e a esse número de porta; Um processo pode usar o mesmo soquete para enviar e receber mensagens; Cada computador tem 2 16 números de portas disponíveis para serem usados pelos processos; Qualquer processo pode fazer uso de várias portas para receber mensagens, mas um processo não pode compartilhar portas com outros processos no mesmo computador; Cada soquete é associado a um protocolo em particular (UDP ou TCP). http://sites.google.com/sitew/leonardobcampos 12/40

Comunicação por datagrama UDP Um datagrama enviado pelo protocolo UDP é transmitido de um processo origem para um processo destino sem a existência de configurações ou novas tentativas de envio: http://sites.google.com/sitew/leonardobcampos 13/40

Socket Cliente UDP Cliente UDP: Declaração das variáveis: http://sites.google.com/sitew/leonardobcampos 14/40

Socket Cliente UDP Cliente UDP: Envio das mensagens, até que a palavra fim seja digitada http://sites.google.com/sitew/leonardobcampos 15/40

Socket Servidor UDP Servidor UDP: http://sites.google.com/sitew/leonardobcampos 16/40

Socket Servidor UDP Servidor UDP: http://sites.google.com/sitew/leonardobcampos 17/40

Representação externa de dados e empacotamento Independentemente da forma de comunicação usada, os dados devem ser convertidos em bytes antes da transmissão e reconstruídos na sua chegada; Problemas: Tipo de dados primitivos diferentes; http://sites.google.com/sitew/leonardobcampos 18/40

Representação externa de dados e Problemas: empacotamento Representação interna de números em ponto flutuante também difere entre as arquiteturas de processadores (big endian e little endian); http://sites.google.com/sitew/leonardobcampos 19/40

Representação externa de dados e Problemas: empacotamento Diferentes forma para representar caracteres (ASCII e Unicode); http://sites.google.com/sitew/leonardobcampos 20/40

Representação externa de dados e Soluções: empacotamento Os valores são convertidos para um formato externo, acordado antes da transmissão e, na recepção, convertidos para a forma local; se for sabido que os dois computadores são do mesmo tipo, a conversão para o formato externo pode ser omitida; Os valores são transmitidos no formato de remetente, junto a uma indicação do formato usado, e o destinatário converte os valores, se necessário. http://sites.google.com/sitew/leonardobcampos 21/40

Representação externa de dados e empacotamento Dessa forma, os bytes em si não têm a ordem de seus bits alterada durante a transmissão; Para suportar a RPC (Remote Procedure Call chamada remota de procedimento) ou RMI (Remote Method Invocation Invocação Remota de Métodos) os dados devem ser simplificado, e os valores de dados primitivos individuais, representados em um formato comum; http://sites.google.com/sitew/leonardobcampos 22/40

Representação externa de dados e empacotamento Representação externa de dados: Um padrão aceito para a representação de estruturas de dados e valores primitivos; Empacotamento (marshalling) Procedimento de pegar um conjunto de itens de dados e montá-los em uma forma conveniente para transmissão em uma mensagem. Desempacotamento (unmarshalling) Geração de valores primitivos a partir de sua representação externa de dados e reconstrução das estruturas de dados; http://sites.google.com/sitew/leonardobcampos 23/40

Representação externa de dados e empacotamento Vejamos quatro estratégias alternativas para representação externa de dados e empacotamento: A representação comum de dados do CORBA; Serialização de objetos da linguagem Java; XML extensible Markup Language; JSON JavaScript Object Notation; http://sites.google.com/sitew/leonardobcampos 24/40

Representação comum de dados do CORBA CDR do CORBA é a representação externa dos dados definida no CORBA 2.0 e consistem em 15 tipos primitivos, como: http://sites.google.com/sitew/leonardobcampos 25/40

Representação comum de dados do Exemplo: CORBA Uma mensagem CDR do CORBA contendo três campos de um struct cujos tipos respectivos são string, string e unsigned long. http://sites.google.com/sitew/leonardobcampos 26/40

Atividades Futuras Divisão dos Projetos: RMI em Java Hugo e Giltean RMI no CORBA Romenito e Letícia JSON Ícaro e Bruno Buffers de protocolo (Google case) Eluzai e Daniel http://sites.google.com/sitew/leonardobcampos 27/40

Leitura Complementar Link: http://sites.google.com/sitew/leonardobcampos 28/29

Bibliografia George Coulouris, Jean Dollimore, Tim Kindberg, Sistemas Distribuídos Conceitos e Projeto, 5th Ed., Bookman, 2013. http://sites.google.com/sitew/leonardobcampos 29/29