Exclusão Mútua e Eleição Prof. Raul Ceretta Nunes Curso de Ciência da Comutação ELC1018 - Sistemas Distribuídos 1
Algoritmo Centralizado a) Processo 1 solicita ermissão ao coordenador ara entrar na região crítica. Permissão é concedida. b) Processo 2 então solicita ermissão ara entrar na mesma região crítica. O coordenador não resonde. c) Quando o rocesso 1 sai da região crítica, ele informa o coordenador, que então envia OK ao rocesso 2. 2
Exemlo: servidor gerenciando token de exclusão mútua ara um gruo de rocessos Fila de requisições Server 4 2 3. Envia token 1 1. Requer token 2. Libera token 4 2 3 3
Algoritmo Distribuído Requisição contém: hnome da região crítica (ocional) ho número do rocesso htemo lógico (timestam) 4
Algoritmo Distribuído (Ricart e Agrawala) On initialization state := RELEASED; To enter the section state := WANTED; Multicast request to all rocesses; rocessamento da requisição T := request s timestam; Wait until (number of relies received = (N 1)); state := HELD; On receit of a request <T i, i > at j (i j) if (state = HELD or (state = WANTED and (T, j ) < (T i, i ))) then queue request from i without relying; else rely immediately to i ; end if To exit the critical section state := RELEASED; rely to any queued requests; 5
Algoritmo Distribuído a) Dois rocessos desejam entrar na mesma região crítica ao mesmo momento. b) Processo 0 tem menor timestam, logo ele vence. c) Quando o rocesso 0 termina, ele envia um OK e o rocesso 2 ode agora entrar na região crítica. 6
Algoritmo Distribuído (Maekawa) On initialization state := RELEASED; voted := FALSE; For i to enter the critical section state := WANTED; Multicast request to all rocesses in V i ; Wait until (number of relies received = K); state := HELD; On receit of a request from i at j if (state = HELD or voted = TRUE) then queue request from i without relying; else send rely to i ; voted := TRUE; end if For i to exit the critical section state := RELEASED; Multicast release to all rocesses in V i ; On receit of a release from i at j if (queue of requests is non-emty) then remove head of queue from k, say; send rely to k ; voted := TRUE; else voted := FALSE; end if 7
Algoritmo Token Ring a) Um gruo de rocessos desordenados sobre uma rede. b) Um anel lógico construído em software. 8
Algoritmo Token Ring 1 2 n 3 4 Token 9
Comaração dos Algoritmos Proriedades chaves: hnúmero de mensagens requerido ara um rocesso entrar e sair da região crítica hatraso que ode ocorrer antes de conseguir entrar na região crítica hsensibilidade à falhas 10
Comaração dos Algoritmos Algorithm Messages er entry/exit Delay before entry (in message times) Problems Centralized 3 2 Coordinator crash Distributed 2 ( n 1 ) 2 ( n 1 ) Token ring 1 to 0 to n 1 Crash of any rocess Lost token, rocess crash 11
Exercício 1) Avalie qual algoritmo deve ser utilizado se regiões críticas são raramente utilizadas. 1) Avalie qual algoritmo deve ser utilizado se regiões críticas são frequentemente/muito utilizadas. 12
Comentários sobre Exercícios 1) fator dominante = mecanismo de entrada 2) fator dominante = modo de esera 13
Algoritmos de Eleição 14
Algoritmo de Eleição Função hescolher um rocesso que deverá liderar ou coordenar um algoritmo distribuído. Proriedades h(e1) Segurança - um rocesso articiante i tem elected i = ou elected i = P, onde P é o escolhido como líder (não defeituoso e com maior id). h(e2) Subsistência - todos os rocesso i articiam e configuram elected i ou falham. 15
Um rocesso i não convoca mais de uma eleição or vez, mas dois rocessos i e j odem convocar concorrentemente. A eficiência do algoritmo é medida or: hnúmero de mensagens enviadas - largura de banda consumida; e htemo do ciclo do algoritmo - temo entre início e término de uma execução. 16
Algoritmo de Chang e Roberts Algoritmo de eleição baseado em anel Objetivo: eleger um coordenador, o de maior id Modelo de sistema: hnão ocorrem falhas ho sistema é assíncrono hrocesso i só conhece um vizinho (sucessor) e só se comunica com ele (envio) e com o antecessor (recebimento). Sucessor = (i+1) mod n hrocesso i não conhece id dos outros rocessos 17
Algoritmo de Chang e Roberts Notas: A eleição iniciada elo rocesso 17. 4 3 17 17 O identificador mais alto encontrado é 28. 9 24 Os rocessos articiantes são marcados mais escuro. 15 1 24 28 28 24 18
Algoritmo de Chang e Roberts Inicialização articiante falso coordenador Tarefa 1: início de uma eleição articiante verdadeiro send(eleição, id i ) ara (i+1) mod n 19
Algoritmo de Chang e Roberts Tarefa 2: quando receive(eleição, id j ) se id j > id i então articiante verdadeiro send(eleição, id j ) ara (i+1) mod n senão se id j < id i E articiante == falso então articiante verdadeiro send(eleição, id i ) ara (i+1) mod n senão % id j = id i articiante falso send(eleito, id i ) ara (i+1) mod n 20
Tarefa 3: quando receive(eleito, idj) articiante falso se id j id i então coordenador id j send(eleito, id j ) ara (i+1) mod n senão coordenador id i 21
Exercício O número de mensagens trocadas costuma ser uma das métricas de desemenho ara avaliar algoritmos distribuídos. Demonstre orquê, na ausência de concorrência, no ior caso o algoritmo baseado em anel de Chang e Roberts troca 3N-1 mensagens. 22
Resosta do Exercício A ausência de concorrência indica que aenas um rocesso disara uma eleição. O ior caso corresonde ao início da eleição elo sucessor do maior identificador. hn mensagens ELEICAO ara chegar ao futuro coordenador, que não disara a eleição or que ainda não comletou o anel. hn-1 mensagens ELEICAO ara ercorrer o anel e chegar ao coord. hn mensagens ELEITO ara concluir a eleição Resultado = 3N-1 mensagens! 23
Algoritmo de Garcia-Molina Conhecido como algoritmo do valentão - bully Modelo de sistema: hrocessos odem falhar durante eleição hcomunicação é confiável hsistema é síncrono (usa timeouts) hrocesso i conhece ID dos outros rocessos hrocesso i ode se comunicar com qualquer j 24
Algoritmo de Garcia-Molina election Eleição do coordenador P 2 aós falha de P 4 seguida de falha em P 3 Stage 1 Stage 2 1 election answer 2 answer election answer election 1 2 3 4 3 election C 4 C timeout Stage 3 1 2 3 4 Eventually... Stage 4 coordinator C 1 2 3 4 25
Variáveis de Sincronismo Num sistema síncrono são conhecidos: hatraso de transmissão máximo (T trans ) hatraso de rocessamento máximo (T rocess ) hround-tri-time (T) = 2.T trans + T rocess 26
Imortância da recisão das hióteses Considere que T não seja reseitado. Por exemlo, 3 funcionando de forma extremamente lenta (erda de sincronismo). Considere que um rocesso falho ossa ser substituído or outro com o mesmo ID e que ordem de entrega não ode ser garantida. 27