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)

Sistemas Distribuídos Grupos

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

Grupos de Processos (Comunicação Grupal)

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

UNIVERSIDADE. Sistemas Distribuídos

Comunicação. Parte II

Programação Distribuída

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

Sistemas Distribuídos. Aleardo Manacero Jr.

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

Sistemas Distribuídos Aula 15

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

SISTEMAS DISTRIBUÍDOS

MC714 - Sistemas Distribuídos. Leandro Villas

Exclusão Mútua em Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos Aula 10

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

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Sistemas Distribuídos

CAMADA DE TRANSPORTE

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Sincronização em Sistemas Distribuídos

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

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

Redes de Computadores

Arquitecturas Tolerantes a faltas em Sistemas Distribuídos

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

3. Comunicação em Sistemas Distribuídos

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

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

ALGORITMOS DISTRIBUÍDOS Algoritmos de eleição

Redes de Computadores II INF-3A

Qualidade em Servicos de Rede Prof. Eduardo Maronas Monks Roteiro de Laboratorio Camada de Transporte Parte II

Sistemas Distribuídos

Fault Tolerance Middleware for Cloud Computing

Sistemas Distribuídos. Coulouris Capítulo 4

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

Sistemas Distribuídos Modelo Cliente-Servidor

Sistemas Operacionais

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Desktop

"Manual de Acesso ao Moodle - Discente" 2014

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

Sistemas Distribuídos

Redes de Computadores

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

A Camada de Transporte

Sistemas distribuídos:comunicação

MANUAL DE UTILIZAÇÃO Aplicativo Controle de Estoque Mobile

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

4 Um Exemplo de Implementação

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace

Índice. Para encerrar um atendimento (suporte) Conversa Adicionar Pessoa (na mesma conversa)... 20

Definição do Trabalho da Disciplina. Este documento é muito importante: LEIAM ATÉ O FINAL!

Modelos Fundamentais. Carlos Ferraz.

MODELO CLIENTE SERVIDOR

Módulo 8 Ethernet Switching

Um pouco sobre Pacotes e sobre os protocolos de Transporte

Manual SAGe Versão 1.2 (a partir da versão )

AULA 6: SERVIDOR DNS EM WINDOWS SERVER

Tecnologia de Redes de Computadores - aula 5

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

Sistemas Distribuídos: Conceitos e Projeto Eleição de Coordenador

Arquitetura de Sistemas Operativos

Sumário INTRODUÇÃO... 4 PROTOCOLO ARP...5 ARP - ADDRESS RESOLUTION PROTOCOL...5 FUNCIONAMENTO DO PROTOCOLO ARP...5 CACHE ARP... 6

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares

Inventario de produtos

Registro e Acompanhamento de Chamados

Sistemas Distribuídos

Rede de Computadores

ELEMENTOS DE PROTOCOLOS DE TRANSPORTE. Fabricio Sousa

Tutorial para envio de comunicados e SMS

Entendendo como funciona o NAT

MANUAL DO ALUNO DE EDUCAÇÃO A DISTÂNCIA (EAD) I-UMA

Tipos de Servidores. Servidores com estado

Manual de digitação de contas Portal AFPERGS

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Segundo Bimestre

Processos e Threads (partes I e II)

Operação local em caso de falha na rede

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

Cap 03 - Camada de Aplicação Internet (Kurose)

Comunicação em Sistemas Distribuídos

DarkStat para BrazilFW

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

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

Arquitetura de Rede de Computadores

Tabela de roteamento

PAINEL DE SENHAS RBSG4JE. Imagem ilustrativa do painel. Operação/Configuração Painel Eletrônico de Senhas / Guichê com jornal de mensagens.

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Transcrição:

Comunicação one-to-one Forma mais simples de comunicação entre processos point-to-point, ou unicast COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo Algumas aplicações comunicação entre 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 Formas de comunicação em grupo one to many many to one many to many Sistemas Distribuídos 138 Sistemas Distribuídos 139 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 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 Sistemas Distribuídos 140 Sistemas Distribuídos 141 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 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 informações somente entre eles) X Sistemas Distribuídos 142 Sistemas Distribuídos 143 1

Processos hierarquizados X Grupo simétrico Coordenador + trabalhador Falha do coordenador Tolerância a falhas Tomada de decisão complicada sistema deve permitir criação e remoçã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 Sistemas Distribuídos 144 Sistemas Distribuídos 145 Buffered e unbuffered multicast 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 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 Sistemas Distribuídos 146 Sistemas Distribuídos 147 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 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) Sistemas Distribuídos 148 Sistemas Distribuídos 149 2

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? Método 2: enviador 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 em multicast atômico - uso de timeout e retransmissões Sistemas Distribuídos 150 Sistemas Distribuídos 151 Método 2: acontece um flooding da mensagem caro - muitas mensagens deve-se optar por multicast atômico somente quando realmente necessário garante que todos processos sobreviventes 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. 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 152 Sistemas Distribuídos 153 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 S1 R1 R2 S2 de sequenciamento (serialização) 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? Sistemas Distribuídos 154 Sistemas Distribuídos 155 3

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 mensagens são enviadas a todos receptores na mesma ordem. t1 S1 R1 R2 S2 absoluta t2 t1<t2 S1 R1 R2 S2 S1 R1 R2 R3 S2 t1 consistente t2 m3 m3 de causa m3 causada por Sistemas Distribuídos 156 Sistemas Distribuídos 157 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 Ordenação de mensagens - absoluta - método Chegada de mensagem processo kernel Sistemas Distribuídos 158 Sistemas Distribuídos 159 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!) enviadores mandam mensagens para o grupo para um seqüenciador seqüenciador associa número de seqüência a cada mensagem e manda por multicast recebedor salva mensagens e espera seqüência se completar para r em ordem msg Msg+timestamp global Enfileira, adiciona timestamp global e envia para o grupo Sistemas Distribuídos 160 Sistemas Distribuídos 161 4

centralização: sujeito a falhas - prejudica todo grupo protocolo ABCAST: enviador associa número de seqüência crescente rário à mensagem e manda em multicast cada recebedor retorna um número de seqüência 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 seqüência já proposto por este recebedor (processo i) i: número do processo N: número total de processos no grupo protocolo ABCAST: quando enviador recebe as propostas de número de sequencia de todos os recebedores (confirmação implícita), 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 seqüência associado Sistemas Distribuídos 162 Sistemas Distribuídos 163 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 (ou mais) // de mensagens que 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 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 164 Sistemas Distribuídos 165 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 166 (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) D(4,2,5,1) Sistemas Distribuídos 167 5