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
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