comunicação entre processos...comunicação entre processos essa atividade envolve a comunicação...
TRANSCRIPT
![Page 1: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/1.jpg)
Comunicação entre Processos
Prof. Leonardo Barreto Campos
http://sites.google.com/sitew/leonardobcampos 1/29
![Page 2: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/2.jpg)
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
2/29http://sites.google.com/sitew/leonardobcampos
![Page 3: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/3.jpg)
Introdução
De onde viemos:
http://sites.google.com/sitew/leonardobcampos 3/40
![Page 4: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/4.jpg)
Introdução
Conceitos gerais de Sistemas Distribuídos:
http://sites.google.com/sitew/leonardobcampos 4/40
![Page 5: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/5.jpg)
Introdução
Revisão das Redes de Computadores:
UDP: datagramas
TCP: fluxo (stream)
http://sites.google.com/sitew/leonardobcampos 5/40
![Page 6: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/6.jpg)
Introdução
Revisão das Redes de Computadores:
UDP: datagramas
TCP: fluxo (stream)
http://sites.google.com/sitew/leonardobcampos 6/40
![Page 7: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/7.jpg)
Introdução
Revisão das Redes de Computadores:
UDP: datagramas
TCP: fluxo (stream)
http://sites.google.com/sitew/leonardobcampos 7/40
![Page 8: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/8.jpg)
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
![Page 9: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/9.jpg)
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;
http://sites.google.com/sitew/leonardobcampos 9/40
◦ 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;
![Page 10: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/10.jpg)
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.
http://sites.google.com/sitew/leonardobcampos 10/40
◦ 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;
![Page 11: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/11.jpg)
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
![Page 12: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/12.jpg)
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 processocujo soquete esteja associado a esse endereço IP e a essenúmero de porta;
◦ Um processo pode usar o mesmo soquete para enviar ereceber mensagens;
◦ Cada computador tem 216 números de portas disponíveis paraserem usados pelos processos;
◦ Qualquer processo pode fazer uso de várias portas parareceber mensagens, mas um processo não pode compartilharportas com outros processos no mesmo computador;
◦ Cada soquete é associado a um protocolo em particular (UDPou TCP).
http://sites.google.com/sitew/leonardobcampos 12/40
![Page 13: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/13.jpg)
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
![Page 14: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/14.jpg)
Socket Cliente UDP
Cliente UDP:
◦ Declaração das variáveis:
http://sites.google.com/sitew/leonardobcampos 14/40
![Page 15: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/15.jpg)
Socket Cliente UDP
Cliente UDP:
◦ Envio das mensagens, até que a palavra “fim” seja digitada
http://sites.google.com/sitew/leonardobcampos 15/40
![Page 16: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/16.jpg)
Socket Servidor UDP
Servidor UDP:
http://sites.google.com/sitew/leonardobcampos 16/40
![Page 17: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/17.jpg)
Socket Servidor UDP
Servidor UDP:
http://sites.google.com/sitew/leonardobcampos 17/40
![Page 18: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/18.jpg)
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
![Page 19: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/19.jpg)
Representação externa de dados e
empacotamento Problemas:
◦ 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
![Page 20: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/20.jpg)
Representação externa de dados e
empacotamento Problemas:
◦ Diferentes forma para representar caracteres (ASCII e
Unicode);
http://sites.google.com/sitew/leonardobcampos 20/40
![Page 21: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/21.jpg)
Representação externa de dados e
empacotamento Soluções:
◦ 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
![Page 22: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/22.jpg)
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;
http://sites.google.com/sitew/leonardobcampos 22/40
◦ Para suportar a RPC(Remote ProcedureCall – chamadaremota deprocedimento) ouRMI (Remote MethodInvocation –Invocação Remotade Métodos) osdados devem sersimplificado, e osvalores de dadosprimitivos individuais,representados emum formato comum;
![Page 23: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/23.jpg)
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
![Page 24: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/24.jpg)
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
![Page 25: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/25.jpg)
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
![Page 26: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/26.jpg)
Representação comum de dados do
CORBA Exemplo:
◦ 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
![Page 27: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/27.jpg)
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
![Page 28: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/28.jpg)
Leitura Complementar
Link:
http://sites.google.com/sitew/leonardobcampos 28/29
![Page 29: Comunicação entre Processos...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](https://reader034.vdocuments.site/reader034/viewer/2022051807/6003028a6af17f44ff7ae549/html5/thumbnails/29.jpg)
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