sistemas distribuídos - instituto de computação - uffsimone/sd/contaulas/aula14.pdfalgoritmos...

38
SISTEMAS DISTRIBUÍDOS CAPÍTULO 6 – SINCRONIZAÇÃO Slides cedidos pela professora Aline Nascimento e Slides de COS 418: Distributed Systems

Upload: others

Post on 22-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

SISTEMAS DISTRIBUÍDOSCAPÍTULO 6 – SINCRONIZAÇÃO

Slides cedidos pela professora Aline Nascimento eSlides de COS 418: Distributed Systems

Page 2: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA

Uma questão fundamental em SD é a concorrência e a

colaboração entre vários processos

Como garantir que o acesso concorrente de recursos não

gere situações de inconsistência de dados?

São necessárias soluções que garantam o acesso

mutualmente exclusivo pelos processos

Algoritmos distribuídos de exclusão mútua podem ser

classificados em duas categorias

Baseados em ficha e Baseados em permissão

Page 3: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA

Abordagens baseadas em fichas

Existe uma ficha disponível no sistema e apenas o processo

que possuir a ficha pode acessar o recurso compartilhado

Evita inanição (Starvation)

Fácil evitar deadlocks

O problema é se a ficha for perdida, como recriá-la?

Abordagens baseadas em permissão

Processo que quer recursos deve antes pedir permissão aos

demais

Page 4: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA - ALGORITMOCENTRALIZADO

Simula o que é feito em um sistema monoprocessador:

Um processo é eleito como coordenador

Sempre que um processo quiser acessar determinado recurso,

é necessário pedir permissão ao coordenador, através de uma

mensagem

O coordenador permite acesso ao recurso através de uma

mensagem de concessão, desde que nenhum outro processo

esteja acessando o recurso naquele momento

Para usar uma região crítica: REQUISIÇÃO, CONCESSÃO e

LIBERAÇÃO

Page 5: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA - ALGORITMOCENTRALIZADO

Page 6: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA - ALGORITMOCENTRALIZADO

Prós:

Simples, fácil de entender e de implementar

É justo (segue o FCFS)

Como no FCFS, não há inanição (starvation)

Contras:

Como todo sistema centralizado um ponto de erro e um

ponto de gargalo

Processos não conseguem distinguir coordenador inativo de

permissão negada, caso se o recurso não está disponível

nenhuma mensagem é enviada

Page 7: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA - ALGORITMODISTRIBUÍDO

Pesquisadores procuraram algoritmos distribuídos

determinísticos de exclusão mútua.

Lamport apresentou o primeiro em 1978

Ricart e Agrawala o tornaram mais eficiente em 1981

Page 8: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA - ALGORITMODISTRIBUÍDO

Requer ordenação total de todos os eventos no sistema

Para isso será usado... Algoritmo de Lamport!

Funcionamento:

Quando processo deseja acessar um recurso compartilhado,

monta uma mensagem que contém o nome do recurso, seu

número de processo e a hora corrente (lógica).

Envia mensagem para todos processos, inclusive ele mesmo

Page 9: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA - ALGORITMODISTRIBUÍDO

Funcionamento (continuação):

Quando um processo recebe uma mensagem de requisição de

outro, executa uma ação de acordo com seu próprio estado em

relação ao recurso:

1. Se o receptor não estiver acessando o recurso nem quer acessá-

lo, devolve “OK” ao remetente

2. Se já tem acesso ao recurso, não responde e coloca requisição

em uma fila

3. Se receptor também quer acessar o recurso, mas ainda não

possui a permissão, compara a marca de tempo da mensagem

que chegou com a marca de tempo da mensagem que enviou a

todos. Se a que recebeu é mais baixa envia OK, senão coloca

requisição na fila e não manda nada

Page 10: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA - ALGORITMODISTRIBUÍDO

Funcionamento (continuação):

Após enviar requisições que peçam permissão, um processo

aguarda recebimento de todas as respostas

Quando houver permissão de todos, processo acessa o

recurso

Processo libera o recurso enviando um “OK” a todos os

processos que estão em sua fila

Page 11: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA - ALGORITMODISTRIBUÍDO

P0 envia requisição com marcador de hora igual a 8 e P2 com marcadorIgual a 12. P1 envia OK para todos. P0 e P2 veem o conflito e comparamMarcadores. P2 perdeu e envia OK para todos. P0 coloca pedido de P2 naFila e acessa o recurso. Quando acaba envia OK para P2.

Page 12: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA - ALGORITMODISTRIBUÍDO

Vantagens:

Exclusão mútua é garantida

Não há deadlock nem starvation

Desvantagens:

Ponto de falha único foi substituído por n pontos de falha

Trocou 1 gargalo por n gargalos

Pode melhorar enviando sempre uma resposta. Se não chegar

resposta quem pediu pode concluir que o nó morreu

Tem que ter uma comunicação de grupo e gerenciamento de

grupo e de mensagens

Page 13: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA – ALGORITMO TOKENRING

Algoritmo baseado em ficha que circula ao redor do anel

lógico

Se o processo quer acessar recurso e tem a ficha, usa

recurso e quando acaba passa ficha

Se não quer usar recurso, passa a ficha

Page 14: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA – ALGORITMO TOKENRING

Garante a exclusão mútua

Não há deadlock nem starvation

A dificuldade é recuperar uma ficha perdida

Como saber o tempo razoável para um token não aparecer?

Se um processo morreu, um vizinho que tenta enviar o token

para ele pode detectar, e anel pode ser reconfigurado

Page 15: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

EXCLUSÃO MÚTUA - COMPARAÇÃO

Algoritmo Mensagens porentrada/saída Problemas

Centralizado 3 Queda do coordenador

Descentralizado 3mk Starvation, baixa eficiência

Distribuído 2(n-1) Queda de qualquerprocesso

Token Ring 1 a ∞ Ficha perdida

Page 16: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

ALGORITMOS DE ELEIÇÃO

Usados quando há necessidade de um nó agir como

coordenador. São exemplos tradicionais de algoritmos de

eleição:

Algoritmo do valentão

Algoritmo de anel

Além disso, existem soluções para ambientes específicos:

Algoritmos para redes sem fio

Algoritmos para sistemas de grande escala (como P2P)

Page 17: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

ALGORITMOS DE ELEIÇÃO – ALGORITMO DOVALENTÃO

Todos nós possuem um identificador

Sempre que um nó P percebe que o coordenador nãoresponde, P inicia uma eleição:

1. P envia uma mensagem ELEIÇÃO a todos os processos de

números mais altos

2. Se nenhum responder, P vence a eleição e se torna o

coordenador

3. Se um dos processos de número mais alto responder, ele

toma o poder e o trabalho de P está concluído

Dessa forma é eleito o nó com maior identificador

Page 18: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

ALGORITMOS DE ELEIÇÃO – ALGORITMO DOVALENTÃO

Page 19: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

ALGORITMOS DE ELEIÇÃO – ALGORITMO DOANEL

Baseado na utilização de anel (físico ou lógico), mas não usa

ficha:

Quando qualquer processo nota que o coordenador não está

funcionando, monta uma mensagem ELEIÇÃO com seu número

A mensagem é enviada a seu sucessor ou próximo que esteja

em funcionamento

A cada etapa, o remetente adiciona seu número de modo a se

tornar também um candidato à eleição de coordenador

Quando a mensagem retorna ao processo que iniciou a eleição,

este envia a mensagem COORDENADOR com o número mais

alto da sua lista

Page 20: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

ALGORITMOS DE ELEIÇÃO – ALGORITMO DOANEL

Exemplo: Nós 3 e 6 iniciam a eleição simultaneamente

Page 21: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

ELEIÇÕES EM AMBIENTES SEM FIO

Necessários em ambientes onde a troca de mensagens não

é confiável e a topologia da rede muda com frequência

Visa eleger o melhor líder

Exemplo: o nó o que possui maior bateria restante

Um nó fonte P inicia a eleição enviando a mensagem

ELEIÇÃO a seus vizinhos

Quando um nó Q recebe a mensagem ELEIÇÃO pela

primeira vez, designa o remetente como seu pai e envia uma

mensagem ELEIÇÃO a todos vizinhos exceto seu pai

Page 22: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

ELEIÇÕES EM AMBIENTES SEM FIO

Se Q recebe uma mensagem ELEIÇÃO de um nó não-pai,

apenas confirma o recebimento

Se todos vizinhos de um nó R já possuem um pai, R é um nó

folha, portanto pode reportar de volta a Q, passando

informações úteis

Quando Q recebe todas as respostas, reporta a seu pai qual

é o melhor dos recebidos por Q

O nó P recebe os melhores candidatos e decide pelo melhor,

informando a todos via broadcast.

Page 23: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

ELEIÇÕES EM AMBIENTES SEM FIO

F

D

B

C

A

3

10

72

5

● A detecta falha no coordenador e envia eleição para B e C● C e B tem A como pai e C envia para B e D, e B envia para C e F● C responde ACK para B e B para C● D recebe de C eleicão, coloca D como pai e envia para F● F recebe de B eleicão, coloca B como pai e envia para D● D recebe ack de F e envia (D,10) para C● F recebe ack de D e envia (F,7) para B● B recebe de F e manda (F,7) para A● C recebe de D e manda (D,10) para A● A recebe (D,10) e (F,7) e elege D como coordenador

Page 24: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

ELEIÇÕES EM SISTEMAS DE GRANDEESCALA

Há situações em que é preciso trabalhar com redes maiores

Exemplo: é necessário eleger Superpares em redes P2P

Requisitos a serem cumpridos por superpar:

1. Nós normais devem ter baixa latência de acesso comsuperpares

2. Superpares devem estar uniformemente distribuídos pela redede sobreposição

3. Deve haver uma porção predefinida de superpares em relaçãoao número total de nós na rede de sobreposição

4. Cada superpar não deve precisar atender mais do que umnúmero fixo de nós normais

Page 25: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

QUESTÃO 1

Cite no mínimo 3 fontes de atraso que podem ser

introduzidas entre a transmissão da hora em broadcast

WWV e o ajuste, pelos processadores de seus relógios

internos em um sistema distribuído

Page 26: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

RESPOSTA 1

Atraso relativo a propagação de sinal na atmosfera

Latência de transmissão de pacotes na rede

Após um pacote chegar em um processador, ainda existem

atrasos relativos a interrupções no processamento e filas

internas

Page 27: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

QUESTÃO 2

Considere o comportamento de duas máquinas em um SD.

Ambas tem relógios que devem pulsar 1000 vezes por

milissegundo.

Um deles realmente pulsa a esta taxa, mas o outro pulsa

990 vezes por milissegundo.

Se as atualizações UTC chegam uma vez por minuto, qual

será a máxima defasagem entre os relógios?

Page 28: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

RESPOSTA 2

O relógio da segunda máquina:

990 vezes em um milissegundo

990.000 vezes em um segundo

Em um segundo menos 10.000 ticks 10mseg

Em um minuto 10mseg X 60 = 600mseg

O relógio da segunda máquina é 1% mais lento

1% de 60seg = 0.01 x 60 = 0.6seg = 600mseg

Page 29: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

QUESTÃO 8

Muitos algoritmos distribuídos requerem a utilização

de um processo coordenador.

Até que ponto estes algoritmos são realmente

considerados distribuídos?

Page 30: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

RESPOSTA 8

Em um algoritmo centralizado sempre existe um processo

fixo que age como coordenador

A distribuição vem do fato de que outros processos rodam

em máquinas separadas.

Page 31: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

QUESTÃO 9

Na abordagem centralizada da exclusão mútua, ao

receber uma mensagem de um processo que está

liberando o acesso a região crítica, o coordenador

normalmente concede permissão ao primeiro

processo da fila.

Cite um outro algoritmo possível para o coordenador.

Page 32: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

RESPOSTA 9

Os pedidos feitos ao coordenador podem estar associados a

prioridades.

O processos com maior prioridade receberá o recurso

compartilhado

Page 33: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

QUESTÃO 10

Suponha que o coordenador, no algoritmo de

exclusão mútua centralizado, caia.

Isto sempre derruba o sistema?

Se não derrubar, sob quais circunstâncias isto acontece?

Há um modo de evitar o problema e fazer com que o sistema

seja capaz de tolerar quedas do coordenador?

Page 34: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

RESPOSTA 10

Suponha que o algoritmo seja tal que o coordenador sempre

responda a um pedido, ou aceitando ou negando. Se não

existem processos acessando recursos, nem na fila, então a

queda do coordenador não é fatal.

O próximo pedido de permissão ao coordenador irá falhar e

o processo requisitante pode inicial um novo processo de

eleição de coordenador.

Page 35: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

QUESTÃO 11

O algoritmo de Ricart e Agrawala apresenta o seguinte

problema: se um processo falhou e não responde a

uma requisição de um outro processo para acessar um

recurso, a falta de resposta pode ser interpretada

como uma recusa de permissão.

Sugerimos que todas as recusas sejam respondidas

imediatamente para facilitar a detecção de

processos que falharam.

Existem circunstâncias em que até este método é

insuficiente? Discuta sua resposta.

Page 36: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

RESPOSTA 11

Suponha que um processo X negue a permissão e depois

caia.

O processo requisitante pensa que X está vivo, e ficará

esperando uma permissão futura que nunca virá.

Uma solução é permitir que o processo requisitante não

fique bloqueado esperando uma resposta. O processo

requisitante apenas dorme por um período fixo de tempo, e

quando acordar, verifica se os processos dos quais ele

espera uma resposta estão vivos.

Page 37: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

QUESTÃO 14

Suponha que dois processos detectem a falha de um

coordenador simultaneamente e ambos decidam convocar

uma eleição que utilize o algoritmo do valentão.

O que acontecerá?

Page 38: Sistemas Distribuídos - Instituto de Computação - UFFsimone/sd/contaulas/aula14.pdfAlgoritmos para sistemas de grande escala (como P2P) ALGORITMOS DE ELEIÇÃO – ALGORITMO DO

RESPOSTA 14

O algoritmo funcionará normalmente.

Cada um dos processos com maiores números irá receber

duas mensagens de ELEIÇÃO.

A segunda mensagem é ignorada e o processo de eleição

continua