Group Communication Notes
Comunicação em Grupo
Caracterização
/
Definição:
Processos pares, sem papéis especiais.
Comunicação entre iguais.
Recursos:
Necessidade de mecanismos para prevenir condições de corrida.
Condições de corrida podem levar a dados inconsistentes se os recursos partilhados forem acedidos de forma não segura.
Memória:
Sem espaço partilhado.
Sincronização por mensagens.
Pressupostos:
Tempo de transmissão finito, sem perda de mensagens.
Acesso Centralizado
Modelo:
Adaptação cliente-servidor com serialização de pedidos.
Guardião:
Processo dedicado que gere o acesso ao objeto partilhado.
Monitoriza e concede acesso.
Visão Geral do Protocolo
Processos comunicam com guardião .
Solicitar: envia pedido a e espera resposta.
Resposta: concede acesso ou coloca em espera.
Conceder: acede ao objeto.
Libertar: envia mensagem a ; concede acesso ao próximo.
Comentários
Sobrecarga:
Envolve três mensagens por acesso.
Limitação:
Dependência de um guardião.
Falha:
é crítico; falha de paralisa o sistema.
Anel Lógico
Topologia:
Processos em ciclo fechado.
Restrições:
Cada recebe de e envia para .
Testemunho (Token):
Acesso restrito ao processo que detém o testemunho.
Visão Geral do Protocolo
Solicitar:
espera pelo testemunho, acede ao objeto e envia o testemunho.
Sem Necessidade:
encaminha o testemunho.
Comentários
Sobrecarga:
Troca de mensagem constante.
Eficiência:
Bom para grupos pequenos.
Escalabilidade:
Espera longa em grupos grandes.
Ordenação Total de Eventos
Exclusão Mútua:
Uso de relógios lógicos de Lamport.
Timestamps:
Incluem timestamp do evento de envio.
Algoritmo
Inicialização:
,
Entrar:
,
Envia pedido e espera até
Sair:
,
Liberta acesso.
Receber Pedido:
Lida com base no estado e prioridade.
Comentários
Sobrecarga:
mensagens por acesso.
Eficiência:
Bom para grupos pequenos.
Escalabilidade:
Intenso em comunicação para grupos grandes.
Minimizar Mensagens
Modelo:
Permissão baseada em subconjuntos de processos.
Interseção:
Grupos devem-se intersetar para garantir exclusão mútua.
Votação:
Acesso concedido por votos do grupo.
Estrutura do Grupo
Cada pertence a .
Propriedades:
#(Vi) \approx #(Vj)
Cada pertence a grupos.
Algoritmo
Inicialização:
,
Entrar:
, espera votos de
Sair:
Liberta acesso para
Receber Pedido/Libertação:
Gerir estado e votos.
Comentários
Complexidade:
Aproximadamente mensagens.
Escalabilidade:
Mais eficiente para grupos grandes.
Problema:
Potencial deadlock.
Solução para Deadlock
Ordenação total dos pedidos.
Fila de prioridade por timestamp.
Mecanismo de fallback centralizado.
Eleição
Objetivo:
Selecionar um processo para uma tarefa específica.
Requisitos:
Terminação, não ambiguidade, consenso.
Pressupostos
Grupo fixo, estados de processo (em execução ou falha), tempo de transmissão limitado, fiabilidade