Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
SISTEMAS DISTRIBUÍDOSCAPÍTULO 6 – SINCRONIZAÇÃO
Slides cedidos pela professora Aline Nascimento eSlides de COS 418: Distributed Systems
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
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
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
EXCLUSÃO MÚTUA - ALGORITMOCENTRALIZADO
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
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
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
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
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
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.
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
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
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
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
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)
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
ALGORITMOS DE ELEIÇÃO – ALGORITMO DOVALENTÃO
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
ALGORITMOS DE ELEIÇÃO – ALGORITMO DOANEL
Exemplo: Nós 3 e 6 iniciam a eleição simultaneamente
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
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.
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
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
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
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
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?
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
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?
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.
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.
RESPOSTA 9
Os pedidos feitos ao coordenador podem estar associados a
prioridades.
O processos com maior prioridade receberá o recurso
compartilhado
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?
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.
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.
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.
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á?
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