passagens de mensagens prof. dr. norian marranghello grupo 2 caio scaramucci felipe a. cavani
TRANSCRIPT
Passagens de Passagens de MensagensMensagens
Prof. Dr. Norian MarranghelloProf. Dr. Norian Marranghello
Grupo 2Grupo 2Caio ScaramucciCaio ScaramucciFelipe A. CavaniFelipe 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
IntroduçãoIntrodução
• Necessidade de processos estarem se comunicando.
• Aplicações distribuída.
• A necessidade de ser transparente ao usuário
• Confiável.
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
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
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.
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
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
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.
PipePipe• Aplicação limitada
• Produtor e consumidor. Ex: Unix pipe. ls –lh | more
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
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
SocketSocket
Socket seguro
• Informações confidenciais.
• Criptografia.
• Métodos de validação.
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.
Comunicação grupalComunicação grupal
Um trasmissor e um receptor Um trasmissor e vários receptores
Comunicação grupalComunicação grupalExemplo
• Servidores de arquivos redundantes.
Servidores Cliente
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.
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
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
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.
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
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.
Comunicação GrupalComunicação Grupal
Grupo Igualitário Grupo Hierárquico
CoordenadorProcesso do grupo
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.
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.
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.
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.