Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 57

Sincronização

Sistemas Distribuídos - ECOS02

Prof. Bruno Tardiole Kuehne


brunokuehne@unifei.edu.br

IESTI
Overview

1. Introdução

2. Sincronização de Relógio Físico

3. Tempo Lógico e Relógio Lógico

4. Exclusão Mútua

5. Algoritmos de Eleição

1
Introdução
Introdução

As técnicas de sincronização são importantes pois


frequentemente os sistemas distribuídos precisam realizar
tarefas que necessitam de um comportamento sincronizado

} Exemplo:
◦ Comando make

3
Introdução

} Exemplo:
◦ Uma transação de comércio eletrônico envolve eventos no
computador do negociante e de um banco.
◦ Para uma possível auditoria sobre estas transações, é
importante que informações de tempo sejam precisas.

4
Introdução

} Existem algoritmos que dependem da sincronização de


relógio para vários problemas de distribuição.
◦ Consistência de dados distribuídos (Carimbos de tempo)
◦ Autenticidade de uma requisição
◦ Eliminação do processamento de requisições duplicadas

5
Introdução

} Medição de tempo é problemático:


◦ Existência de várias fontes de referência
◦ Teoria da Relatividade Especial (Einstein)
} A noção de tempo físico também é problemática em
sistema distribuído. (Não tem relação com a teoria da
relatividade)
◦ Dificuldade em registrar tempo em diferentes nós de modo
suficientemente preciso

6
Introdução

} Inexistência de tempo global absoluto


} Necessidade de ordenação dos eventos
◦ Exemplo: Sistemas orientados a objetos → precisamos
saber se as referências a objetos já não existem mais
◦ Precisamos observar o estado do objeto
◦ Precisamos observar canais de comunicação (mensagens
podem estar em trânsito)Existência de várias fontes de
referência

7
Introdução

} Em sistemas com uma única CPU, problemas tais como


regiões críticas, exclusões mútuas e outros problemas de
sincronização são geralmente resolvidos utilizando
métodos tais como semáforos e monitores
} Em sistemas distribuídos esses métodos não podem ser
utilizados pois os vários processadores não compartilham
o mesmo espaço de endereçamento

8
Sincronização de Relógio Físico
Sincronização de Relógio Físico

Relógio Interno de um PC

} Cada computador tem seu próprio relógio

10
Sincronização de Relógio Físico

Relógio Interno de um PC

} Funcionamento
◦ Contador recebe o valor armazenado no registrador
◦ A cada pulso do oscilador, o contador é decrementado de
um unidade
◦ Quando o contador é zerado, é gerada uma interrupção de
clock (interrupção da CPU)
◦ S.O. lê valor do registrador e acerta sua escala para
produção do relógio de software

11
Sincronização de Relógio Físico

Desvio e Derivação de Relógio

} A tendência é que os relógios não estejam sempre em


perfeito acordo
◦ Diferença entre relógios é chamada de desvio
} Além disso variações no cristal criam a deriva de relógio
◦ Relógios baseados em cristais de quartzo geram 10-6
segundos de diferença em cada segundo → deriva de 1
segundo a cada 1.000.000 segundo ou 11,6 dias

12
Sincronização de Relógio Físico

Desvio e Derivação de Relógio

} Relógios podem ser sincronizados com fontes externas de


tempo altamente precisas
◦ Relógios físicos baseados em oscilações atômicas – taxa de
deriva = 10−13
} A saída desses relógios atômicos é usada como padrão
para o tempo real decorrido
◦ A referência que utilizamos é astronômica.
◦ Entretanto, o período de rotação da Terra está ficando
maior (atrito das marés) → isso causa descompasso

13
Sincronização de Relógio Físico

Desvio e Derivação de Relógio

} Tempo Universal Coordenado – UTC


◦ Padrão internacional para contagem do tempo
◦ Faz o ajuste entre tempo atômico e astronômico
◦ Os sinais UTC são sincronizados e transmitidos
regularmente por estações de rádio terrestre(WWV) e via
satélite(GPS)

14
Sincronização de Relógio Físico

} Para identificar quando eventos ocorrem nos processos de


sistema distribuído é necessário sincronizar os relógios
◦ Sincronização externa: é feita em relação a uma fonte
externa (UTC) com um limite definido de desvio
◦ Sincronização interna: todos relógios internos concordam
com um limite definido de desvio

15
Sincronização de Relógio Físico

} Como fazer a Sincronização em sistemas síncronos:


◦ Emissor envia sua informação de tempo t
◦ Receptor configura seu relógio em t + Tt r a n s
◦ Mas qual o valor de Tt r a n s ?
◦ Em sistemas síncronos existe um limite superior max e um
inferior min para o tempo de trânsito de mensagens
◦ Esses limites podem ser utilizados para definir um limite
aceitável na sincronização

16
Sincronização de Relógio Físico

Método de Cristian

} Trabalha utilizando máquinas que possuem uma máquina


receptora WWV, a qual será denominada servidor de
tempo
} Periodicamente, cada máquina envia uma mensagem para
o servidor de tempo perguntando pelo tempo corrente
(atual). Esta máquina responde o mais rápido possível com
uma mensagem contendo o tempo corrente CUTC

17
Sincronização de Relógio Físico

Método de Cristian

} Trabalha utilizando máquinas que possuem uma máquina


receptora WWV, a qual será denominada servidor de
tempo
} Periodicamente, cada máquina envia uma mensagem para
o servidor de tempo perguntando pelo tempo corrente
(atual). Esta máquina responde o mais rápido possível com
uma mensagem contendo o tempo corrente C U T C

18
Sincronização de Relógio Físico

Método de Cristian
} T1 e T4 são medidos usando o mesmo clock

19
Sincronização de Relógio Físico

Método de Cristian

} Tempo de propagação da mensagem:


◦ TP = (T4 – T1)/2
◦ Clock = C U T C + TP
A estimativa pode ser melhorada se for considerado o
tempo de manipulação da interrupção
◦ TP = ((T4 – T1 – I)/2
} Problema:
◦ O tempo UTC nunca deve estar menor do que a hora local
da máquina (o relógio nunca pode ser decrementado)

20
Sincronização de Relógio Físico

Método de Cristian

} Problema de Servidor Centralizado


◦ Utilização de múltiplos → multicast
} Problema de Servidor defeituoso enviando tempos
espúrios
◦ Pode ser resolvido com algoritmo de Berkeley

21
Sincronização de Relógio Físico

Algoritmo de Berkeley

} Não existe nenhuma máquina com WWV (receptor UTC)


} No caso do Algoritmo de Cristian, o Servidor de Tempo é
passivo (outras máquinas requisitam o tempo
periodicamente)
} No Algoritmo de Berkeley, o Servidor de Tempo é ativo e
requer, periodicamente de cada máquina, o tempo do seu
relógio
} O Servidor de Tempo calcula uma média dos tempos e diz
para cada máquina como ajustar o seu relógio

22
Sincronização de Relógio Físico

Algoritmo de Berkeley

23
Sincronização de Relógio Físico

Algoritmo de Berkeley

} Elimina leituras de relógios defeituosos


◦ Utiliza apenas leituras dentro de um intervalo aceitável
} Se o nó mestre falhar outro nó assume o papel
} Eleição é feita para decidir novo nó mestre

24
Sincronização de Relógio Físico

NTP – Network Time Protocol

} Algoritmos de Cristian e de Berkeley são utilizados no


contexto de Intranets
} NTP utiliza a Internet para distribuir informações de
tempo.
} Fornece uma arquitetura para um serviço de tempo e um
protocolo

25
Sincronização de Relógio Físico

NTP – Network Time Protocol

} Objetivos:
◦ Fornecer um serviço que permita aos clientes na Internet
serem sincronizados precisamente com o UTC
◦ Fornecer um serviço confiável que possa sobreviver a
longas perdas de conectividade
◦ Permitir que os clientes sejam sincronizados de forma
suficientemente freqüente para compensar as taxas de
derivação encontradas na maioria dos computadores
◦ Fornecer proteção contra interferência de tempo, seja
mal-intencionada ou acidental

26
Sincronização de Relógio Físico

NTP – Network Time Protocol

} Atinge os objetivos através de uma rede de servidores


localizados na Internet
◦ Servidores primários: conectados diretamente a uma fonte
de tempo (UTC)
◦ Servidores secundários: sincronizados com os servidores
principais
} Servidores conectados através de uma hierarquia lógica:
sub-rede de sincronização
◦ Os níveis são chamados stratum
◦ Servidores com stratum mais baixos, maior a precisão

27
Sincronização de Relógio Físico

NTP – Network Time Protocol

} Sub-rede de sincronização - UDP

28
Tempo Lógico e Relógio Lógico
Tempo Lógico e Relógio Lógico

Lamport [1978], mostrou que não podemos sincronizar


perfeitamente os relógios em um sistema distribuído

} De forma geral não podemos usar tempo físico para


descobrir a ordem de qualquer par de eventos arbitrários
que ocorram dentro dele

30
Tempo Lógico e Relógio Lógico

} A sincronização dos clocks não precisa ser absoluta


◦ Se dois processos não interagem, não é necessário que seus
clocks sejam sincronizados pois a falta de sincronização não
será observada e não causará problemas
◦ O importante não é que todos os processos concordem com
o exato tempo em que os eventos acontecem, mas que
concordem na ordem em que os eventos ocorrem

31
Tempo Lógico e Relógio Lógico

Algoritmo de Lamport

} Se a e b são eventos no mesmo processo, e a ocorre antes de


b, então a → b é verdadeira
} Se a é um evento de uma mensagem sendo enviada por um
processo, e b é o evento da mensagem sendo recebida por
outro processo, então a → b é também verdadeira. Uma
mensagem não pode ser recebida antes de ser enviada ou
mesmo tempo em que foi enviada
} A relação “acontece-antes” é uma relação transitiva: Se a
→ b e b → c, então a → c

32
Tempo Lógico e Relógio Lógico

Algoritmo de Lamport

} Se dois eventos x e y acontecem em diferentes processos


que não trocam mensagens, então x → y não é verdadeiro
nem y → x é verdadeiro. Estes eventos são ditos
concorrentes, o que significa que nada pode ser dito sobre
quando eles aconteceram
} Precisa-se de um modo de medir o tempo tal que para cada
evento a possa-se associar o valor C(a) de modo que todos
os processos concordem

33
Tempo Lógico e Relógio Lógico

Algoritmo de Lamport

} Considere que os processos abaixo estão sendo executados


em máquinas diferentes, cada uma com um clock,
executando a sua velocidade

34
Tempo Lógico e Relógio Lógico

Algoritmo de Lamport

} Cada mensagem carrega o tempo


de envio, de acordo com o clock
da máquina que está enviando.
Quando uma mensagem chega e
o relógio do receptor possui um
valor anterior ao da mensagem,
este avança seu relógio para o
tempo de envio da mensagem
mais um
} O clock deve sempre avançar,
nunca retroceder
35
Tempo Lógico e Relógio Lógico

Algoritmo de Lamport

36
Tempo Lógico e Relógio Lógico

Algoritmo de Lamport

37
Tempo Lógico e Relógio Lógico

Algoritmo de Lamport

} Relógios lógicos totalmente ordenados


◦ Alguns eventos distintos tem carimbos de tempo Lamport
idênticos
◦ Para meios de desempate Lamport propôs utilizar a
numeração do processo para desempate
◦ No entanto, isso não tem nenhum significado físico geral

38
Cortes Globais Consistentes

} Para se ter uma fotografia completa de uma aplicação


distribuída é preciso obter o estado de cada processo que a
compõe. Os processos de uma aplicação distribuída têm a
sua execução modelada como uma sequência de eventos
} A definição de corte global consistente é importante para
se identificar quando um estado global obtido do sistema é
também consistente, uma vez que a observação desse
sistema pode ser obsoleta ou mesmo inválida para um
observador externo.
} Um corte consistente é fechado à esquerda sobre a relação
de precedência causal. Toda a seta que intercepta o corte
tem sua origem à esquerda.

39
Cortes Globais Consistentes

} C’ é consistente
} C" é inconsistente

40
Tempo Lógico e Relógio Lógico

Relógios Vetoriais

} Mattern [1989] e Fidge[1991] desenvolveram relógios


vetoriais para superar a deficiência dos relógios de
Lamport
} Cada processo mantém seu próprio relógio vetorial
◦ Cada processo pode registrar os potenciais eventos locais
de cada processo

41
Tempo Lógico e Relógio Lógico

Relógios Vetoriais

42
Tempo Lógico e Relógio Lógico

Como comparar relógios vetoriais:

43
Exclusão Mútua
Exclusão Mútua

} Em Sistemas Distribuídos, muitas vezes recursos são


compartilhados.
} O objetivo da Exclusão Mútua é evitar inconsistência ou
corrupção destes recursos organizando o acesso a eles.

45
Exclusão Mútua

A Exclusão Mútua pode ser classificada em dois tipos


principais

} Baseado em Fichas
◦ Existe apenas uma ficha disponível
◦ Processo com a ficha tem acesso ao recurso
◦ Evita ocorrência de inanição e deadlocks
◦ Problema: Perda da ficha requer um processo distribuído
custoso para sua recriação
} Baseada em Permissões
◦ Processo que precisa acessar o recurso compartilhado
requisita aos outros processos por permissão.

46
Exclusão Mútua

Algoritmo Centralizado

47
Exclusão Mútua

Algoritmo Distribuído - Ricart e Agrawala

48
Exclusão Mútua

Algoritmo Distribuído - Ricart e Agrawala

} Para n processos são necessárias 2(n-1) mensagens para ter


acesso ao recurso
} Ponto de falha único é substituído por n

49
Exclusão Mútua

Algoritmo Token Ring

50
Algoritmos de Eleição
Algoritmos de Eleição

} Em Sistemas Distribuídos, muitas vezes é necessário a


escolha de um processo para agir como coordenador.
} Quando os processos são similares, é necessário uma
maneira de selecionar um deles de modo que todos os
demais concordem e reconheçam a escolha.
} Para escolha é necessário identificar os processos, seja com
um identificador único para cada processo ou até mesmo o
endereço de rede.
} Todos os processos devem conhecer o identificador dos
demais processos.
} Em geral os algoritmos de eleição buscam o processo com
maior número de identificação para designá-lo como
coordenador.
52
Algoritmos de Eleição

Algoritmo do Valentão

53
Algoritmos de Eleição

Algoritmo de Anel

54
References

COULOURIS, George et al
Sistemas Distribuídos: Conceitos e Projeto
Bookman Editora, 2013
TANEMBAUM, Andrew S.; V. STEEN, Maarten
Sistemas Distribuídos: Princípios e Paradigmas
Pearson Prentice Hall, 2007

55
DÚVIDAS?

Você também pode gostar