5/28/25
1
Sistemas Distribuídos
Prof. Dr. José R. Torres Neto
1
Exclusão Mútua
2
2
5/28/25
2
Regiões Críticas
◎ partes do código ou operações onde a execução deve
ser controlada para garantir consistência e evitar
conflitos entre processos concorrentes.
3
Ex.: Vários processos tentando
acessar e modificar um arquivo
compartilhado
simultaneamente
Ex.: Diferentes nós tentando
modificar registros em uma
base de dados distribuída ao
mesmo tempo
3
Exclusão Mútua
◎ A melhor maneira de garantir a exclusão mútua em SD
é imitar o que acontece em um Sistema local.
◎ Passos:
◎ Elege um coordenador (Líder)
◎ Lembrando…
4
4
5/28/25
3
Exclusão Mútua
◎ Passos:
◎ Elege um coordenador (Líder)
◎ Um processo envia uma solicitação para o
coordenador para entrar em uma região crítica
◎ Se nenhum processo está acessando essa região, o
coordenador autoriza o acesso.
5
5
Algoritmo Centralizado
a) Nó 1 solicita o acesso à região crítica. A permissão é condedida.
b) Nó 2 solicita o acesso, mas o coordenador não responde.
c) Nó 1 informa que a região crítica foi liberada. Coordenador dá
permissão ao Nó 2.
6
6
5/28/25
4
Algoritmo Centralizado - Vantagens
◎ Garante a exclusão mútua
◎ Justo (os pedidos são concedidos na ordem em que
são recebidos - FIFO)
◎ Sem inanição (um processo não espera pra sempre)
◎ Fácil implementação (apenas 3 mensagens:
solicitação, concessão, liberação)
7
7
Algoritmo Centralizado - Desvantagens
◎ Ponto único de falha: Coordenador
◎ Gargalo no desempenho: Escalabilidade
◎ Se os processos bloqueiam após fazer um pedido, eles
não podem distinguir um coordenador morto com
uma falta de permissão (“permissão negada”)
8
8
5/28/25
5
Algoritmo Descentralizado
a) Dois processos querem entrar na região crítica ao mesmo tempo( 0 e 2)
b) Processo 0 tem o timestamp mais baixo, então ganha a permissão
concentida
c) Quando o processo 0 termina, ele envia um “OK” e o processo 2 pode
acessar a região 9
9
Algoritmo Token Ring
10
10
5/28/25
6
Vantagens
◎ Exclusão mútua? ok!
◎ Inanição? Ordem ok!
Algoritmo Token Ring
Desvantagens
◎ Token pode ser perdido?
- regeneação do token
◎ Detectar que o token foi perdido?
- desafio difídil: rede pode
estar sobrecarregada
11
11
Replicação e
Consistência
12
12
5/28/25
7
1.
Replicação
13
13
Confiabilidade
Garante comportamento
correto, apesar de erros.
• Dados corrompidos
Uma réplica
funcionando, o serviço
continua
Por que replicar?
14
14
5/28/25
8
Por que replicar?
Desempenho
É importante quando
precisa se ampliado
em quantidade e
área geográfica
Ampliação e
quantidade: diversos
servidores web com
cache de páginas
Aplicação geográfica:
requisições são
repassadas para o
servidor mais
próximo.
15
15
2.
Consistência
Desafio
16
16
5/28/25
9
“
Como garantir a consistência entre
os dados das diversas réplicas?
17
17
Desafios
◎ Na utilização de caches em um servidor web, os
browsers salvam cópias locais de páginas acessadas
◎ Se o usuário requisitar o acesso mais de uma vez, o
browser retorna a página salva localmente
◎ Isso melhora o tempo de acesso
Mas e se o usuário quiser a versão da página mais
recente?
18
18
5/28/25
10
Desafios
◎ Sincronização das réplicas
◎ Quando uma atualização deve ser realizada?
◎ Deve-se ter um acordo, e em geral, uma
sincronização global
◎ Relaxar as restrições de consistência
◎ Réplicas diferentes temporariamente
19
19
Modelos de
Consistência
Contratos: um conjunto de regras
20
20
5/28/25
11
Modelos de Consistência Centrado a Dados
◎ Operações de leitura-escrita em dados
compartilhados:
◎ Memória distribuída
◎ Banco de dados distribuídos
◎ Sistemas de arquivos
21
21
“
Modelos de Consistência é o contraste entre os processos e o
repositório de dados, no sentido das regras acordadas entre os
mesmos para manter a consistência
22
22
5/28/25
12
Depósito de Dados – Distribuídos em várias máquinas
23
◎ cada processo pode acessar dados
do repositório através de um cópia
local de todo o conteúdo do
repositório
◎ operações de escrita são
propagadas para todas as cópias
◎ operação de dados é classificada
como escrita quando altera o
dado, diferentemente da operação
de leitura
23
Modelos de Consistência
◎ Difícil definir com precisão a ordem das escritas sem
um relógio global
◎ O relaxamento do modelo de consistência é uma
solução factível
24
24
5/28/25
13
Modelos de Consistência Centrado a Dados
◎ Quais inconsistência sao toleráveis?
◎ Diferenças dos valores numéricos entre réplicas
◎ Diferenças das idades entre replicas
◎ Diferença em relação à ordenação de operações
de atualização
25
25
Desvios Numéricos
◎ Utilizada por aplicações onde os dados têm semântica
numérica
◎ Existe um faixa de valores onde existe uma réplica
◎ Ex. Aplicação diz que duas cópias não podem
desviar de R$ 0,40
◎ Ex. Valores de replicas não podem diferir mais do
que 0,5%
26
26
5/28/25
14
Desvios de Idade
◎ Relacionado com a última atualização de uma replica
◎ Algumas aplicações podem tolerar que uma replica
forneça dados antigos, contanto que não sejam tão
antigos
◎ Ex. Previsão do tempo, permacem a mesma
durante algum tempo
◎ Ex. Servidor principal pode receber atualizações
em tempos oportunos 27
27
Desvios em relação à ordenação de operações
◎ Em algumas aplicações, a ordenação das atualizações
podem ser diferente nas replicas, dentro de um limite
◎ Atualizações são aplicadas a uma cópia local, à espera
de um acordo global de todas as replicas
◎ Algumas atualizações podem voltar atrás e serem
aplicadas em uma ordem diferente, antes da
permanência
28
28
5/28/25
15
Consistência Contínua - conit
◎ Conit – Consistency Unit
◎ Especifica a unidade Segundo a qual a consistência
deve ser medida
29
29

Aula-SD-17-exclusao mutua em sistemas distribuidos

  • 1.
    5/28/25 1 Sistemas Distribuídos Prof. Dr.José R. Torres Neto 1 Exclusão Mútua 2 2
  • 2.
    5/28/25 2 Regiões Críticas ◎ partesdo código ou operações onde a execução deve ser controlada para garantir consistência e evitar conflitos entre processos concorrentes. 3 Ex.: Vários processos tentando acessar e modificar um arquivo compartilhado simultaneamente Ex.: Diferentes nós tentando modificar registros em uma base de dados distribuída ao mesmo tempo 3 Exclusão Mútua ◎ A melhor maneira de garantir a exclusão mútua em SD é imitar o que acontece em um Sistema local. ◎ Passos: ◎ Elege um coordenador (Líder) ◎ Lembrando… 4 4
  • 3.
    5/28/25 3 Exclusão Mútua ◎ Passos: ◎Elege um coordenador (Líder) ◎ Um processo envia uma solicitação para o coordenador para entrar em uma região crítica ◎ Se nenhum processo está acessando essa região, o coordenador autoriza o acesso. 5 5 Algoritmo Centralizado a) Nó 1 solicita o acesso à região crítica. A permissão é condedida. b) Nó 2 solicita o acesso, mas o coordenador não responde. c) Nó 1 informa que a região crítica foi liberada. Coordenador dá permissão ao Nó 2. 6 6
  • 4.
    5/28/25 4 Algoritmo Centralizado -Vantagens ◎ Garante a exclusão mútua ◎ Justo (os pedidos são concedidos na ordem em que são recebidos - FIFO) ◎ Sem inanição (um processo não espera pra sempre) ◎ Fácil implementação (apenas 3 mensagens: solicitação, concessão, liberação) 7 7 Algoritmo Centralizado - Desvantagens ◎ Ponto único de falha: Coordenador ◎ Gargalo no desempenho: Escalabilidade ◎ Se os processos bloqueiam após fazer um pedido, eles não podem distinguir um coordenador morto com uma falta de permissão (“permissão negada”) 8 8
  • 5.
    5/28/25 5 Algoritmo Descentralizado a) Doisprocessos querem entrar na região crítica ao mesmo tempo( 0 e 2) b) Processo 0 tem o timestamp mais baixo, então ganha a permissão concentida c) Quando o processo 0 termina, ele envia um “OK” e o processo 2 pode acessar a região 9 9 Algoritmo Token Ring 10 10
  • 6.
    5/28/25 6 Vantagens ◎ Exclusão mútua?ok! ◎ Inanição? Ordem ok! Algoritmo Token Ring Desvantagens ◎ Token pode ser perdido? - regeneação do token ◎ Detectar que o token foi perdido? - desafio difídil: rede pode estar sobrecarregada 11 11 Replicação e Consistência 12 12
  • 7.
    5/28/25 7 1. Replicação 13 13 Confiabilidade Garante comportamento correto, apesarde erros. • Dados corrompidos Uma réplica funcionando, o serviço continua Por que replicar? 14 14
  • 8.
    5/28/25 8 Por que replicar? Desempenho Éimportante quando precisa se ampliado em quantidade e área geográfica Ampliação e quantidade: diversos servidores web com cache de páginas Aplicação geográfica: requisições são repassadas para o servidor mais próximo. 15 15 2. Consistência Desafio 16 16
  • 9.
    5/28/25 9 “ Como garantir aconsistência entre os dados das diversas réplicas? 17 17 Desafios ◎ Na utilização de caches em um servidor web, os browsers salvam cópias locais de páginas acessadas ◎ Se o usuário requisitar o acesso mais de uma vez, o browser retorna a página salva localmente ◎ Isso melhora o tempo de acesso Mas e se o usuário quiser a versão da página mais recente? 18 18
  • 10.
    5/28/25 10 Desafios ◎ Sincronização dasréplicas ◎ Quando uma atualização deve ser realizada? ◎ Deve-se ter um acordo, e em geral, uma sincronização global ◎ Relaxar as restrições de consistência ◎ Réplicas diferentes temporariamente 19 19 Modelos de Consistência Contratos: um conjunto de regras 20 20
  • 11.
    5/28/25 11 Modelos de ConsistênciaCentrado a Dados ◎ Operações de leitura-escrita em dados compartilhados: ◎ Memória distribuída ◎ Banco de dados distribuídos ◎ Sistemas de arquivos 21 21 “ Modelos de Consistência é o contraste entre os processos e o repositório de dados, no sentido das regras acordadas entre os mesmos para manter a consistência 22 22
  • 12.
    5/28/25 12 Depósito de Dados– Distribuídos em várias máquinas 23 ◎ cada processo pode acessar dados do repositório através de um cópia local de todo o conteúdo do repositório ◎ operações de escrita são propagadas para todas as cópias ◎ operação de dados é classificada como escrita quando altera o dado, diferentemente da operação de leitura 23 Modelos de Consistência ◎ Difícil definir com precisão a ordem das escritas sem um relógio global ◎ O relaxamento do modelo de consistência é uma solução factível 24 24
  • 13.
    5/28/25 13 Modelos de ConsistênciaCentrado a Dados ◎ Quais inconsistência sao toleráveis? ◎ Diferenças dos valores numéricos entre réplicas ◎ Diferenças das idades entre replicas ◎ Diferença em relação à ordenação de operações de atualização 25 25 Desvios Numéricos ◎ Utilizada por aplicações onde os dados têm semântica numérica ◎ Existe um faixa de valores onde existe uma réplica ◎ Ex. Aplicação diz que duas cópias não podem desviar de R$ 0,40 ◎ Ex. Valores de replicas não podem diferir mais do que 0,5% 26 26
  • 14.
    5/28/25 14 Desvios de Idade ◎Relacionado com a última atualização de uma replica ◎ Algumas aplicações podem tolerar que uma replica forneça dados antigos, contanto que não sejam tão antigos ◎ Ex. Previsão do tempo, permacem a mesma durante algum tempo ◎ Ex. Servidor principal pode receber atualizações em tempos oportunos 27 27 Desvios em relação à ordenação de operações ◎ Em algumas aplicações, a ordenação das atualizações podem ser diferente nas replicas, dentro de um limite ◎ Atualizações são aplicadas a uma cópia local, à espera de um acordo global de todas as replicas ◎ Algumas atualizações podem voltar atrás e serem aplicadas em uma ordem diferente, antes da permanência 28 28
  • 15.
    5/28/25 15 Consistência Contínua -conit ◎ Conit – Consistency Unit ◎ Especifica a unidade Segundo a qual a consistência deve ser medida 29 29