passagens de mensagens prof. dr. norian marranghello grupo 2 caio scaramucci felipe a. cavani

27
Passagens de Passagens de Mensagens Mensagens Prof. Dr. Norian Marranghello Prof. Dr. Norian Marranghello Grupo 2 Grupo 2 Caio Scaramucci Caio Scaramucci Felipe A. Cavani Felipe A. Cavani

Upload: francisco-leveck-galindo

Post on 07-Apr-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Passagens de Passagens de MensagensMensagens

Prof. Dr. Norian MarranghelloProf. Dr. Norian Marranghello

Grupo 2Grupo 2Caio ScaramucciCaio ScaramucciFelipe A. CavaniFelipe A. Cavani

Page 2: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Passagens de MensagensPassagens de Mensagens• Primitivas básicas de comunicação

• Serviço de transporte

• Estruturas de comunicação

• Destino das mensagens

• Comunicação síncrona, assíncrona e buffering

• Pipe

• Socket

• Comunicação grupal

Page 3: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

IntroduçãoIntrodução

• Necessidade de processos estarem se comunicando.

• Aplicações distribuída.

• A necessidade de ser transparente ao usuário

• Confiável.

Page 4: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Primitivas básicas de Primitivas básicas de comunicaçãocomunicação

Serviço de transporte

• Protocolo: conjunto de regras que possibilita a comunicação.

• Principal protocolo de transporte usado atualmente: TCP.

• É uma das camadas do TCP/IP. O que facilita a implementação.

Aplicação

Transporte

Rede

Enlace

Física

Page 5: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Primitivas básicas de Primitivas básicas de comunicaçãocomunicação

Estruturas de comunicação

• Send e Receive (Forma mais simples de passagem de mensagem)

• Pipe

• Socket

• Cliente-servidor

• Comunicação grupal

Page 6: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Primitivas básicas de Primitivas básicas de comunicaçãocomunicação

Destino das mensagens

• Nome: O processo é associado sempre associado a um mesmo endereço.

• Ligação: O SO mascara o endereço.

• Caixa de correio: O processo busca pela mensagem em uma caixa de correio.

• Portas: Caixa de correio utilizando fila.

Page 7: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Primitivas básicas de Primitivas básicas de comunicaçãocomunicação

Comunicação síncrona e assíncrona

Síncrona

• O processo que envia/recebe é bloqueado.

• Bloqueio confiável

• Bloqueio explícito

Page 8: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Primitivas básicas de Primitivas básicas de comunicaçãocomunicação

Comunicação síncrona e assíncrona

Assíncrona

• Send sem bloqueio

• Receive sem bloqueio

• Receive com bloqueio

Page 9: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Primitivas básicas de Primitivas básicas de comunicaçãocomunicação

Buffer

• Solucionar o problema de sincronismo. Ex: send é executado antes do reciver.

• Caixa de correio para depositar mensagens.

• Destruição pelo kernel

•A caixa de correio tem capacidade limitada.

Page 10: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

PipePipe• Aplicação limitada

• Produtor e consumidor. Ex: Unix pipe. ls –lh | more

Page 11: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

SocketSocket• Análogo a tomadas.

• Solicitam ao sistema a criação de um socket.

• listen(buffer,socket) e connect(socket,adr)

• Podem ser criados e destruídos dinamicamente.

• O kernel é responsável pelo mapeamento.

Conexão

Rede

Espaçodo usuário

Espaço do kernel

Socket

Page 12: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

SocketSocketTipos de sockets

• Conexão confiável orientada a bytes. Ex: TCP.

• Conexão confiável orientada a pacotes.

• Transmissão não confiável. Ex: UDP

Page 13: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

SocketSocket

Socket seguro

• Informações confidenciais.

• Criptografia.

• Métodos de validação.

Page 14: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação grupalComunicação grupalIntrodução

• Comunicação de um transmissor para vários receptores.

• Diferente da RPC (Chamada Remota a Procedimentos): permite apenas a comunicação de um trasmissor para um receptor.

• Conveniente para sistemas redundântes.

Page 15: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação grupalComunicação grupal

Um trasmissor e um receptor Um trasmissor e vários receptores

Page 16: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação grupalComunicação grupalExemplo

• Servidores de arquivos redundantes.

Servidores Cliente

Page 17: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação grupalComunicação grupalCaracteristicas de grupos

• Grupo: conjunto de processos que agem juntos.

• Comunicação um-para-muitos.

• São dinâmicos.

• Um processo pode se comunicar com outros do grupo sem saber quantos são e nem aonde estão localizados.

Page 18: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação grupalComunicação grupal

Analogia: FORUM

• Indivíduos do forum Processos

• O programa de controle do forum Sistema operacional

• Mensagens trocadas no forum Mensagens entre os processos

Page 19: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação grupalComunicação grupalTécnicas de gerenciamento de trocas de mensagens

• Multicast: cada grupo tem um endereço. O transmissor se comunica com os receptores do grupo apenas enviando mensagens para esse endereço.

•Broadcast: o trasmissor envia uma mensagem igual para todos do grupo. Estes descartam a mensagem se não forem os destinatários corretos.

•Unicast: o trasmissor envia uma mensagem igual para cada um dos receptores do grupo ao qual se quer comunicar.

10 2 3 4 10 2 3 4 10 2 3 4X

Multicast Broadcast Unicast

Page 20: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação grupalComunicação grupal

Características dos grupos:

• Grupos fechados: somente os processos pertencentes ao grupo podem enviar mensagens a ele.

• Grupo aberto: qualquer processo do sistema pode enviar mensagens a ele.

Page 21: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação GrupalComunicação Grupal

Comunicação não permitida

Grupo fechado

Processo que não é membro

do grupo

Comunicação permitida

Grupo aberto

Processo que não é membro

do grupo

Page 22: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação grupalComunicação grupal

• Grupo igualitário: todos os processos desse grupo são iguais e todas as decisões são tomadas coletivamente.

• Grupo hierárquico: um único processo do grupo, chamado de coordenador, dirige o trabalho do resto do grupo.

Page 23: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação GrupalComunicação Grupal

Grupo Igualitário Grupo Hierárquico

CoordenadorProcesso do grupo

Page 24: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação GrupalComunicação GrupalExemplo

• Jogo de Xadrez no computador:

• Os processos do grupo somente interagem com eles mesmos: grupo fechado.

• Uma jogada é enviada para um único processo que distribue a tarefa entre os outros do grupo: grupo hierárquivo.

Page 25: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação GrupalComunicação GrupalExemplo

• Servidores de arquivos redundantes:

• O cliente (processo não pertencente ao grupo) deve ter a permissão de enviar um pedido de arquivo para todos os servidores (grupos): grupo aberto.

• Todos os servidores são iguais e exercem a mesma tarefa. Se um falhar, qualquer outro pode atender o pedido: grupo igualitário.

Page 26: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação GrupalComunicação GrupalControle dos membros do grupo:

• Servidor de grupo:

• Mantém uma base de dados completa de todos os grupos e seus membros.

• Controla a criação e destruição de grupos.

• Controla a inclusão e exclusão de processos em grupos.

• Ruim por ser centralizado.

Page 27: Passagens de Mensagens Prof. Dr. Norian Marranghello Grupo 2 Caio Scaramucci Felipe A. Cavani

Comunicação GrupalComunicação GrupalAtomicidade:

• Garante que:

• Todos do grupo receberão a mensagem.

• Ninguém do grupo receberá a mensagem se por algum motivo um processo do grupo não puder receber a mensagem.

• Facilita a implementação de um sistema distribuído.