Está en la página 1de 21
+ Sistemas Distribuídos Exclusão Mútua, Engenharia da Computação Coordenação e Acordo Prof. Jairson Rodrigues Universidade Federal do Vale do São Francisco + ALGORITMOS DISTRIBUÍDOS Exclusão Mútua, Coordenação e Acordo AGENDA Exclusão Mútua Algoritmo Centralizado Algoritmo Descentralizado Algoritmo Distribuído Algoritmo Token Ring Algoritmos de Eleição + 3 Exclusão Mútua n  Concorrência e colaboração são pontos chave em sistemas distribuídos n  Em muitos casos processos precisam acessar os mesmos recursos n  É preciso evitar que recursos fiquem corrompidos ou inconsistentes n  Garantir acesso mutuamente exclusivo a recursos pelos processos CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 4 Problemas de Sincronização em SD’s Como deve ser feita a sincronização? n  Algoritmos n  Algoritmo de Cristian, Algoritmo de Berkeley, Algoritmo de Lamport n  Para n  de sincronização de tempo tratamento de exclusão mútua e deadlocks Algoritmos de Ficha, Algoritmo Centralizado, Algoritmo Descentralizado, Algoritmo Distribuído, Algoritmo Token Ring n  Coordenação de acesso a regiões críticas Algoritmos de Eleição n  Algoritmo do Valentão (ou Maioral), Algoritmo do Anel CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 5 Exclusão Mútua Visão Geral n  Soluções baseadas em ficha n  Processos trocam mensagem especial, chamada ficha n  Quem possuir a ficha, possui acesso ao recurso n  Solução simples e eficaz, sem inanição ou deadlocks n  Desvantagem quando o processo que detém a ficha falha n  Soluções baseadas em permissão n  Algoritmo Centralizado n  Algoritmo Descentralizado Algoritmo Distribuído n  Algoritmo Token Ring n  CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 6 Exclusão Mútua Algoritmo Centralizado n  Simular exclusão mútua como é feita em sistemas centralizados n  Um processo é escolhido como coordenador n  Outros processos enviam mensagens ao coordenador declarando que recursos querem usar n  Se o recurso estiver livre o coordenador concede acesso ao recurso n  Se o recurso estiver ocupado, nega por omissão ou enviando mensagem n  Ponto falho: se o coordenador falhar todo o sistema cai CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 7 Exclusão Mútua Algoritmo Centralizado CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 8 Exclusão Mútua Algoritmo Descentralizado n  Um único coordenador costuma ser uma abordagem ruim n  Solução: coordenador descentralizado n  Assume-se (hipoteticamente) que cada recurso está replicado n  Cada processo coordena o acesso ao recurso n  Processo interessado no recurso deve ter m > n/2 votos concedendo acesso n  Corretude do algoritmo baseado em probalidade de acerto CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 9 Exclusão Mútua Algoritmo Distribuído n  Há casos em que um algoritmo correto segundo as leis da probabilidade não é o bastante n  Para qualquer evento no sistema não deve haver ambiguidade sobre quem ocorreu primeiro n  Processo interessado em recurso monta mensagem com hora corrente, identificador do recurso e seu número de processo n  Processo envia mensagem a todos os outros processos CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 10 Exclusão Mútua Algoritmo Distribuído n  Quando um processo recebe a mensagem n  Se não estiver usando o recurso e não tiver interesse nele, responde ao remetente com um “OK” n  Se o receptor estiver usando o recurso, simplesmente não responde, colocando a requisição do remetente em fila n  Se não estiver usando mas também deseja usar, realiza comparação de data e o mais antigo recebe concessão ao recurso n  O processo remetente aguarda a concessão de todos os processos n  Ao concluir, informa a liberação do recurso para todos aqueles que estão em sua fila CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 11 Exclusão Mútua Algoritmo Distribuído CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 12 Exclusão Mútua Algoritmo Token Ring n  Admite-se uma “rede de barramento” de processos sem ordenação n  Anel lógico é construído via software, cada processo é atribuído a uma posição no anel n  Não importa a ordenação, apenas que cada processo saiba qual processo vem depois dele n  Na inicialização do anel o processo 0 recebe uma “ficha” n  A “ficha” trafega pelo anel do processo “k” para o processo “k+1” CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 13 Algoritmo Token Ring Algoritmo Token Ring n  Quando processo receber ficha do seu vizinho n  n  n  n  Verifica se precisa utilizar o recurso Caso positivo, realiza o trabalho sobre o recurso e libera a ficha para o próximo vizinho Caso negativo, apenas passa a ficha adiante Se nenhum processo precisar do recurso a ficha circula velozmente pelo anel CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 14 Algoritmo Token Ring Algoritmo Token Ring CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 15 Comparativo de Algoritmos Algoritmo Mensagens Tempo de Atraso Problemas 3 2 Queda do coordenador 3mk, k= 1,2,3… 2m Distribuído 2(n-1) 2(n-1) Queda de qualquer processo Token Ring 1a ∞ 0 a n-1 Ficha perdida Centralizado Descentralizado CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues Inanição, baixa eficiência 19/05/15 + 16 Algoritmos de Eleição n  Muitos algoritmos distribuídos requerem um coordenador n  Qualquer processo pode ser escolhido, no entanto um deles precisa ser escolhido n  Premissas: n  Cada processo tem um número de processo exclusivo Um processo por máquina n  Todo processo sabe o número de todos os outros n  n  Algoritmos tradicionais n  Algoritmo do Maioral (ou Valentão) n  Algoritmo do Anel CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 17 Algoritmos de Eleição Algoritmo do Maioral (ou Valentão) n  Quando qualquer processo percebe que um coordenador não está mais respondendo a requisições, inicia uma eleição n  P envia mensagem “ELEIÇÃO” a todos os processos de número mais alto n  Se nenhum responder, P vence a eleição Se um processo responder, este toma o poder da eleição e P termina seu trabalho n  n  Receptor envia mensagem “ELEIÇÃO” para todos os processos de número mais alto n  Processo repete-se até que nenhum processo responda O último processo a enviar é o de maior PID e vence a eleição n  CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 18 Algoritmos de Eleição Algoritmo do Maioral (ou Valentão) CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 19 Algoritmos de Eleição Algoritmo do Anel n  Diferente da maioria, este algoritmo de anel não usa ficha e considera a ordenação n  Quando um processo nota que não há coordenador n  Processo envia mensagem “ELEIÇÃO” para sucessor (no anel) n  Se PID do remetente > PID do destinatário, mensagem é passada adiante Se PID do remetente < PID do destinatário, este passa a participar da eleição n  A certa altura a mensagem volta ao último processo que entrou na disputa (maior PID), que será o novo coordenador n  CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 20 Algoritmos de Eleição Algoritmo do Anel CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15 + 21 Referências Bibliografia, fontes, créditos, imagens… n  Sistemas Distribuídos – Princípios e Paradigmas, 2ª Edição – Prentice Hall. Tanenbaum, Andrew; Van Steen, Maarten n  Sistemas Distribuídos – Conceitos e Projeto, 4ª Edição – Bookman. Coulouris, George; Dollimore, Jean; Kindberg, Tim CCMP0054 - Sistemas Distribuídos I - Engenharia da Computação - Prof. Jairson Rodrigues 19/05/15