Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)



Documentos relacionados
Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Grupos de Processos (Comunicação Grupal)

Sistemas Distribuídos Grupos

Programação Distribuída

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Sistemas Distribuídos Modelo Cliente-Servidor

Manual de instalação, configuração e utilização do Enviador XML

Redes de Computadores

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede

TRABALHO PRÁTICO Nro. 02 (Atualizado em 29/10/2008)

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

SISTEMAS DISTRIBUÍDOS

Nomes e Endereçamento. Nomes e Endereçamento. Paradigmas em Sistemas Distribuídos. Paradigmas em Sistemas Distribuídos

Consistência: modelos baseados em dados Consistência: modelos baseados do cliente. Sistemas Distribuídos. junho de 2013

Sincronização em SDs I. Bruno M. Carvalho Sala: 3B2 Horário: 35T34

MINISTÉRIO DA SAÚDE. Secretária de Gestão Estratégica e Participativa da Saúde SGEP. Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS

Manual SIGEESCOLA Matrícula

Manual do usuário Sistema de Ordem de Serviço HMV/OS 5.0

Manual do Desktop Sharing. Brad Hards Tradução: Marcus Gama

ALGORITMOS DISTRIBUÍDOS Algoritmos de eleição

Exclusão Mútua em Sistemas Distribuídos

Manual do Usuário. Sistema para Administração de Condomínios MANUAL USUÁRIO C H E Q U E S CONTROLE POR LEITURA DE CÓDIGO DE BARRAS. ENG Sistemas - 1 -

Camada de Transporte, protocolos TCP e UDP

PANDION MANUAL DO USUÁRIO (versão 1.0)

e-sfinge Sistema de Fiscalização Integrada de Gestão Módulo: Web Service

CAMADA DE TRANSPORTE

PÉGASUS (ETHERNET POCKET) STUDIO V1.00 MANUAL DE INSTALAÇÃO E OPERAÇÃO

Introdução. Algumas terminologias. Camada de Enlace de Dados. Prof. Leandro Pykosz

Redes de Computadores II

Endereços de transporte TPDU. Nível de Rede Endereço de rede. Figura 1. Entidade de transporte

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

Instruções de Uso do sistema Sirc-Cartório

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

Comunicação. Parte II

Redes de Computadores_Marcelo Furtado Pratica 2- Qualidade de serviços

Neste tópico, veremos como selecionar e copiar informações entre bancos de dados de empresa no SAP Business One.

Sistemas Distribuídos. Aleardo Manacero Jr.


natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Diagrama lógico da rede da empresa Fácil Credito

Portal de Aprendizado Tutorial do Aluno

Especificação do Trabalho Prático

Exercícios Teóricos Resolvidos

MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO GERAL DE MODERNIZAÇÃO E INFORMÁTICA SISAU

Sistemas Distribuídos 59. Sistemas Distribuídos 61. "Receive não-bloqueante:

SISTEMA BRENA DE AUTOMAÇÃO COMERCIAL

Aulas 22 & 23. Controle de Fluxo e de Congestionamento. Eytan Modiano MIT

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Tratamento de erros. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Abril de 2006

Comunicação de Dados

Como criar um perfil de destaque no LinkedIn

SISTEMAS DISTRIBUÍDOS

GATI Gestão de Atendimento Inteligente. Manual de Uso. powered by OPUS Software v1.0

Pró-Reitoria de Educação a Distância. Manual do Ambiente Virtual de Aprendizagem para alunos

Comutação de pacotes: LANs Comutadas. Prof. Dr. S. Motoyama

Redes de Computadores

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

Passo-a-passo Oi Torpedo Empresa

SISTEMA MEDLINK E-TISS PASSO-A-PASSO (USE JUNTO COM A VÍDEO AULA)

Redes de Computadores II INF-3A

Sistemas Distribuídos

EMENDAS AO PLDO : 2/ REGRAS E PROCEDIMENTOS IMPLEMENTADOS NO SISTEMA DE EMENDAS

1. Introdução Pregão Eletrônico

Introdução. Uso do disco Vantagens Desvantagens Baixo custo, facilidade de manutenção do software e do hardware, simetria e flexibilidade

Prof. Samuel Henrique Bucke Brito

UNIVERSIDADE. Sistemas Distribuídos

Tribunal de Justiça do Estado de Mato Grosso Supervisão de Informática Departamento de Desenvolvimento Sistema Declaração On Line. Declaração On Line

Capítulo 13 Pastas e Arquivos

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino.

Sistemas Distribuídos Aula 10

Primeiros passos das Planilhas de Obra v2.6

Este documento tem por objetivo a definição das especificações necessárias para transmissão de Conhecimento de Transporte eletrônico - CT-e.

MINISTÉRIO DA EDUCAÇÃO

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

DoS: Negação de Serviço e formas de defesa

Redes de Computadores

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

MANUAL DO OFICIAL DE JUSTIÇA

Asset Management Software Client Module. Guia do Usuário

Sincronização em Sistemas Distribuídos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

O QUE É A CENTRAL DE JOGOS?

"Manual de Acesso ao Moodle - Discente" 2014

CATÁLOGO DE APLICAÇÕES Conferência com Coletores (WEB)

Editores Colaborativos (Keepers)

Arquitetura de Sistemas Operativos

PORTABILIDADE NUMÉRICA UMA SOLUÇÃO ORIENTADA PELA SIMPLICIDADE, QUALIDADE E BAIXO CUSTO

Aula 4 Estatística Conceitos básicos

PEDIDOS WEB MANUAL DO USUÁRIO

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite

Tecnologia de Redes de Computadores - aula 5

Monitor de Comercialização - Proponente MT

Arquitetura TCP/IP. Parte XI Transporte orientado a conexão (TCP) Fabrízzio Alphonsus A. M. N. Soares

Transcrição:

COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo Comunicação one-to-one Forma mais simples de comunicação entre processos point -to-point, ou unicast Algumas aplicações requerem comunicação envolvendo grupos de processos oferecer facilidades para o programador oferecer bom nível de desempenho ex.:multicast melhor que relação a feixes de comunicação unicast Sistemas Distribuídos 173 Sistemas Distribuídos 174 Objetivo Envio de mensagem para um grupo de processos através de uma única operação Grupo de processos Coleção de processos que agem em conjunto Propriedades Mensagem enviada ao grupo é recebida por cada um dos seus membros Grupos devem ser dinâmicos Formas de comunicação em grupo one to many many to one many to many Sistemas Distribuídos 175 Sistemas Distribuídos 176 também chamado multicast broadcast: caso especial de multicast para todos processos em uma rede exemplo: gerente de servidores, todos oferecendo mesmo tipo de serviço o gerente pode mandar mensagem a todos servidores perguntando por um servidor livre para assumir um pedido seleciona primeiro que responde - resposta em unicast gerente de servidores não tem que manter controle sobre servidores livres outro exemplo: achar servidor oferecendo um determinado tipo de serviço mensagem em broadcast com pergunta - resposta em unicast grupo aberto qualquer processo pode mandar mensagens para o grupo como um todo exemplo: servidores replicados para processamento distribuído formam grupo aberto pois clientes mandam pedidos para o grupo de servidores Sistemas Distribuídos 177 Sistemas Distribuídos 178 1

grupo fechado somente membros do grupo podem mandar mensagem para o grupo ex.: grupo de servidores trabalhando em problema comum (ex.: nodos trocam informações sobre carga, para balanceamento - grupo pode ser fechado pois os nodos trocam X informações somente entre eles) Processos hierarquizados X Grupo simétrico Coordenador + trabalhador Falha do coordenador Membresia simplificada Tolerância a falhas Tomada de decisão complicada Sincronização membresia - mensagens Sistemas Distribuídos 179 Sistemas Distribuídos 180 sistema deve permitir criação e deleção dinâmica de grupos, bem como processos poderem entrar (join) e sair de grupos dinamicamente mecanismo simples: servidor de grupo centralizado todos pedidos mandados a este servidor facilidade para manter informação atualizada sobre todos os grupos e exatamente os membros pertencentes aos grupos problema tradicional em soluções centralizadas: baixa confiabilidade - servidor de grupo falha - todo grupo fica comprometido problemas de servidor de grupos centralizado: baixa confiabilidade baixa escalabilidade (potencial para crescer) replicação do servidor de grupo para resolver tais problemas overhead aumenta - manter informação dos grupos consistente em todos servidores replicados Sistemas Distribuídos 181 Sistemas Distribuídos 182 Buffered e unbuffered multicast multicast é assíncrono: não é realístico o enviador esperar que todos recebedores do grupo multicast estejam prontos para receber o enviador pode não saber quantos recebedores existem no grupo unbuffered: mensagem chega e processo recebedor não está pronto - kernel no recebedor descarta mensagem buffered : mensagem armazenada para o processo receptor Semântica send-to-all e bulletin-board send-to-all: cópia da mensagem é mandada para cada processo do grupo, e a mensagem é armazenada até sua recepção bulletin -board: mensagem é endereçada a um canal; processos recebedores copiam mensagem do canal. Dita mais flexível pois: a relevância de uma mensagem a um recebedor particular depende do estado do recebedor mensagens não aceitas após um período de podem não ser mais úteis; seu valor depende do estado do enviador ex.: server manager procurando servidor para pedido - com bborad somente servidores aptos para aceitar request leriam do canal de multicast - mensagem poderia ser retirada do canal assim que o enviador aquele pedido não tenha mais necessidade Sistemas Distribuídos 183 Sistemas Distribuídos 184 2

Confiabilidade flexível em mulicast aplicações diferentes tem diferentes requisitos de confiabilidade 0-reliable : enviador não espera resposta de nenhum recebedor - ex.: time signal generator 1-reliable : enviador espera resposta de 1 recebedor - qualquer um. Ex.: server manager a procura de um servidor m-out-of-n-reliable: o grupo consiste de n recebedores e o enviador espera uma confirmação de m (1<m<n) dos n recebedores. Ex.: algoritmos de consenso por maioria - usados para controle de consistência de informações replicadas usam este tipo de confiabilidade, com m=n/2 all-reliable : o enviador espera resposta de todos os recebedores do grupo. Ex.: mensagem para atualizar réplicas de arquivo em todos servidores de arquivos envolvidos (grupo) confiabilidade all-reliable característica all-or-nothing - ou mensagem a todos, ou a nenhum método 1: a) transmite a todos; b) espera ack de todos; c) depois de timeout, retransmite aos ainda não confirmados d) volta para b) considerando só os que não confirmaram ainda e) quando todos confirmaram, envio em multicast acabou? E se falhas acontecem? No enviador durante o multicast? Sistemas Distribuídos 185 Sistemas Distribuídos 186 Método 2: enviador Método 2: acontece um flooding da mensagem Cada mensagem tem um identificador para distingui-la das demais o enviador a manda para o multicast group uso de timeout e retransmissões - em falta de confirmação recebedor: verifica identificador da mensagem para ver se é nova se não for nova, descarta se for nova manda a mesma mensagem para o multicast group caro - muitas mensagens deve-se optar por multicast atômico somente quando realmente necessário garante que todos processos do grupo eventualmente receberão a mensagem, mesmo que o processo enviador falhe durante o multicast eventualmente - vai receber, porém não se sabe com que atraso. Sistemas Distribuídos 187 Sistemas Distribuídos 188 Formas de comunicação em grupo - many-to-one recepção seletiva e não seletiva não seletiva recebedor quer receber de qualquer um do grupo seletiva recebedor quer controlar dinamicamente de quem receber ex.: processo buffer recebe mensagens de produtores e consumidores; se buffer cheio -> aceitar mensagens só de consumidores se buffer vazio -> aceirar mensagens só de produtores outro caso -> aceitar mensagens dos dois Sistemas Distribuídos 189 Formas de comunicação em grupo - many-to-many aspectos já discutidos para one-to-many e many-to-one se incluem + ordenada de mensagens das mensagens em ordem aceitável para a aplicação ex.: 2 enviadores mandam mensagens para atualizar mesmo registro da base de dados para dois servidores mantendo cada um uma réplica da base de dados. Se mensagem recebida em ordens diferentes pelos servidores, teremos resultados diferentes - inconsistência de mensagens requer mecanismo de sequenciamento (serialização) S1 R1 R2 S2 Sistemas Distribuídos 190 3

Formas de comunicação em grupo - many-to-many em one-to-many: sequenciar multicasts enviador inicia próximo multicast só depois de acabar o que já está em curso em many-to-one: mensagens são recebidas pelo recebedor na ordem em que chegam da rede... em many -to- many? Vários enviadores e vários recebedores em diversos pontos rede apresenta atrasos diferentes dependendo das posições dos processos... falhas de links, roteadores... Como garantir mesma percepção de ordem para os vários recebedores? Ordenação de mensagens Ordenação absoluta quando diversas mensagens são transmitidas para um grupo, as mensagens chegam para todos os membros do grupo na mesma ordem que foram enviadas Ordenação consistente quando diversas mensagens são transmitidas para um grupo, as mensagens chegam para todos os membros do grupo na mesma ordem Ordenação de causa garante que se o evento de envio de uma mensagem causa o evento de envio de outra mensagem, então as mesagens são enviadas a todos receptores na mesma ordem. Sistemas Distribuídos 191 Sistemas Distribuídos 192 S1 R1 R2 S2 t1 absoluta t2 t1<t2 t1 S1 R1 R2 S2 consistente t2 S1 R1 R2 R3 S2 m3 m3 de causa m3 causada por Ordenação de mensagens - absoluta - método usar timestamps globais como identificadores das mensagens supor sincronização dos relógios kernel do recebedor mantém mensagens recebidas usa janela deslizante de para r para o processo - fixo e ajustado considerando o maior atraso na comunicação entre processos do grupo mensagens dentro da janela esperam para serem entregue pois mensagem com timestamp menor pode chegar quando passa o da janela, mensagens podem ser entregue pois garante que as diferenças de atraso no envio dos diversos processos para o recebedor serão cobertas pelo de espera da janela Sistemas Distribuídos 193 Sistemas Distribuídos 194 sincronização de relógios - dificuldade de implementar absoluta - muitas aplicações não necessitam para muitas aplicações basta que as mensagens sejam entregues em uma ordem consistente, ou seja: se um processo percebe mensagem antes de então todos processos envolvidos também percebem antes de (mesmo que tenha sido enviada antes de!) método 1: sequenciador enviadores mandam mensagens para o grupo para um sequenciador sequenciador associa número de sequencia a cada mensagem e manda por multicast recebedor salva mensagens e espera sequencia se completar para r em ordem método 1: sequenciador centralização: sujeito a falhas - prejudica todo grupo protocolo ABCAST: enviador associa número de sequencia crescente rário à mensagem e manda em multicast cada recebedor retorna um número de sequencia que propõe para a mensagem recebida max(fmax,pmax) + 1 + i/n Fmax: número máximo final já acordado no grupo, guardado pelo processo i Pmax: número máximo de sequencia já proposto por este recebedor (processo i) i: número do processo N: número total de processos no grupo Sistemas Distribuídos 195 Sistemas Distribuídos 196 4

protocolo ABCAST: quando enviador recebe as propostas de número de sequencia de todos os recebedores, então ele opta pelo maior número de sequencia proposto e manda commit com o número escolhido número de seq. é garantidamente único devido ao termo i/n (no caso de processo estar acontecendo simultaneamente em dois enviadores, garantese com i/n que não haverão propostas com mesmo nro. Seq.) mensagens com commit podem ser entregues aos processos na ordem conforme o número de sequencia associado Algoritmo para implementar de causa - CBCAST: grupo com n membros cada membro tem um vetor com n elementos i-ésimo elemento do vetor representa a última mensagem recebida do processo I elementos dos vetores são inicializados com 0 (zero) ao enviar uma mensagem processo incrementa seu elemento no vetor quando mensagem chega ao receptor, este verifica se ela depende de outra mensagem condição 1: S[i] = R[i] + 1 // garante que recebedor não perdeu nenhuma mensagem do enviador condição 2: S[j] <= R[j] para todo i diferente de j // garante que enviador não recebeu nenhuma mensagem que o recebedor ainda não // recebeu - ou seja: recebedor tem que ter recebido mesmo conjunto de mensagens // do enviador - mas contrário não é necessário se condições 1 e 2 não Verdadeiro então armazenar mensagem e avaliar novamente na chegada de outra mensagem se condições 1 e 2 ok : r mensagem para aplicação - está ordenada causalmente Sistemas Distribuídos 197 Sistemas Distribuídos 198 A (3,2,5,1) B (3,2,5,1) C (2,2,5,1) D (3,2,4,1) A (3,2,5,1) B (3,2,5,1) C (2,2,5,1) D (3,2,4,1) Atrasa pois A[1]=C[1]+1 não é verdade Atrasa pois A[3]<=D[3] não é verdade Sistemas Distribuídos 199 (3,2,5,1)M2 C ( 3,2,5,1) C(4,2,5,1) (3,2,5,1)M2 D (3,2,5,1) Sistemas Distribuídos D(4,2,5,1) 200 A (0,0,0) B (0,0,0) C (0,0,0) (1,0,0) M2 (1,1,0)M2 (1,0,0) Mensagem M2 chega mas não é entregue Depois que a mensagem chega e é entregue, M2 pode ser entregue Sistemas Distribuídos 201 5