Você está na página 1de 26

Desenvolvimento de Aplicações Distribuı́das

Controle de Tempo e Sincronismo

Geanderson Esteves dos Santos

Pontifı́cia Universidade Católica de Minas Gerais


Instituto de Ciências Exatas e Informática

DAD (2019/01)

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Tópicos

Apresentação da disciplina
Introdução
Desafios e caracterı́sticas
Arquitetura
Comunicação
Nomeação
Controle de tempo e sincronismo
Transação e controle de concorrência
Segurança
Arquitetura Orientada a Serviços (SOA) e WebServices
Sistemas de arquivos distribuı́dos
Aplicações móveis
Seminários

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Tempo e Sincronização

Comunicação é importante, mas não é tudo!!!


Como os processos cooperam e sincronizam uns com os
outros?
Exemplo 1: Importante que vários processos não → acessem
simultaneamente um recurso compartilhado como uma
impressora, mas cooperem para garantir um acesso temporário
exclusivo.
Exemplo 2: Concordância, entre dois processos, em → relação
a ordenação de eventos.

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs – Tempo e Sincronização

Introdução
Relógios fı́sicos
UTC - Tempo Universal Coordenado
O problema do tempo
Sincronização de Tempo em Sistemas Distribuı́dos
Tempo em Sistemas Distribuı́dos
Relógios lógicos
NTP - Network Time Protocol

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Introdução

Relógios fı́sicos
Nos computadores, é possı́vel programar um temporizador para
gerar uma interrupção 60 vezes por segundo ou a qualquer
outra frequência
Cada interrupção é denominada ciclo de relógio
Ao iniciar o sistema, data e hora atuais são digitadas e
convertidas em ciclos de relógio. A cada ciclo de relógio, o
procedimento do serviço de interrupção soma uma unidade a
hora armazenada na memória.

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Introdução
Relógios fı́sicos
Dispositivos eletrônicos que contam oscilações de algum
material com frequência de oscilação bem definida.
Alguns utilizam cristais e outros utilizam ou osciladores
atômicos (mais precisos).
Os dispositivos podem gerar interrupções de intervalos
regulares que permitem verificar frações de tempo.
A frequência de geração da interrupção é denominada o clock
do processador.

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Introdução

Relógios fı́sicos
Com um único computador e um único relógio Não há →
problema se o relógio estiver um pouco defasado!
Todos os processos na máquina usam o mesmo relógio,
internamente estão consistentes!
Com a introdução de múltiplas CPUs, cada uma com o seu
relógio → diferença nos valores dos horários!
Clock skew: diferença entre a leitura simultânea de dois
relógios

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Introdução

Relógios fı́sicos
Com um único computador e um único relógio Não há →
problema se o relógio estiver um pouco defasado!
Todos os processos na máquina usam o mesmo relógio,
internamente estão consistentes!
Com a introdução de múltiplas CPUs, cada uma com o seu
relógio → diferença nos valores dos horários!
Clock skew: diferença entre a leitura simultânea de dois
relógios

Programas que esperam que o horário associado com um


arquivo, objeto, processo ou uma mensagem esteja correto e
seja independente da máquina na qual foi gerado podem falhar!

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Introdução

Relógios fı́sicos
Exemplo I
Hora atômica Internacional (International Atomic Time) é baseada
em relógios muito precisos (taxa de variação de 10 × 10−13 )

Exemplo II
Hora Coordenada Internacional (Universal Coordinated Time –
UCT) é o padrão para medição do tempo

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Introdução

Relógios fı́sicos
Exemplo I
Hora atômica Internacional (International Atomic Time) é baseada
em relógios muito precisos (taxa de variação de 10 × 10−13 )

Exemplo II
Hora Coordenada Internacional (Universal Coordinated Time –
UCT) é o padrão para medição do tempo

É baseada na hora atômica, mas ocasionalmente é ajustada


pela hora astronômia
“Broadcast” da hora é feito através de estações de rádio
(WWV) e satélites (GPS)
Computadores que recebem o sinal sincronizam os relógios

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Introdução

Relógios fı́sicos - GPS


Global Positioning System (sistema de posicionamento global)
GPS usa 29 satélites, cada um circulando em a 20.000Km de
altura
Cada satélite tem até quatro relógios atômicos que são
calibrados periodicamente
Um satélite transmite sua posição em broadcast e anexa
marcas de tempo a cada msg, informando a hora local
Essa transmissão broadcast permite que todo receptor na
Terra calcule com precisão sua própria posição (usando três
satélites)

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Introdução

Relógios fı́sicos - GPS


Ao se calcular a posição/tempo, usando GPS, dois fatos
importantes do mundo real devem ser considerados:
Leva um certo tempo para que os dados sobre a posição de
um satélite cheguem ao receptor
De modo gral, o relógio do receptor não está em sincronia
com o de um satélite
De modo geral, calcular uma posição exata não é trivial!
No caso do tempo, receptores GPS têm um erro declarado de
menos de 20 a 35 nanossegundos.

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Introdução
UTC - Tempo Universal Coordenado
A noção do tempo originalmente foi definida em função da
rotação da terra e a comparação com outros astros – Tempo
astronômico.
O horário GMT é definido com base nos eventos astronômicos,
enquanto o UTC é baseado na ressonância de átomos de césio.
A mensuração dos relógios atômicos e o tempo astronômico
tendem a entrar em descompasso.
O tempo UTC é baseado no tempo atômico e em alguns
momentos é alterado para sincronizar com o tempo
astronômico
São sincronizados e transmitidos via rádios e satélites como o
GPS (Global Positioning System)
O UTC substituiu o GMT em 1972.

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Introdução

O problema do tempo
Dificuldade de sincronizar os relógios de diferentes CPUs
Necessidades
Medir o tempo decorrido em determinadas situações
Identificar a hora correta de eventos em sistemas distribuı́dos
Verificar a autenticidade de uma requisição

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs

Tempo em Sistemas Distribuı́dos


Contexto → Problemas
Cada CPU possui seu próprio relógio
Diferentes cristais oscilam em frequências distintas levando os
relógios a ficarem fora de sincronismo
Impossı́vel garantir que todos os relógios estejam sincronizados
Problemas com atrasos decorrentes do tempo de rede
Alternativas
Algoritmos de sincronização de tempo (Algoritmo de Cristian,
Algoritmo de Berkeley, Algoritmo de Lamport)

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs

Relógios lógicos
Se dois processos não interagem, não é necessário que estejam
sincronizados
Quando há comunicação, o que importa é que as pontas
concordem com a ordem com que os eventos ocorreram
Relação aconteceu-antes (→)
Significado: a → b = a aconteceu-antes de b
Transitividade: se a → b e b → c então a → c
Dois eventos (a, b) são concorrentes se não se pode inferir
que a → b ou b → a
Exemplo do comando make (UNIX)
Quando compilados, arquivos fontes (file.c) geram arquivos
objeto (file.o)
Somente os arquivos fontes cujo horário de alteração esteja
maior que o horário de alteração do arquivo objeto são
compilados

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs

Relógios lógicos
Sincronização baseada em “tempo relativo”
Tempo relativo não possui nenhuma relação com o tempo real
O mais importante é que os processos do Sistema Distribuı́do
concordem com a ordem em que os eventos ocorrem
Algoritmo de Lamport
Relógios Vetoriais

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs

Algoritmo de Lamport
Lamport definiu a seguinte relação: “acontece-antes”:
a → b (a acontece antes de b)
Significa que todos os processos concordam que primeiro o
evento a ocorreu e depois disto, o evento b ocorreu. Esta
relação pode ser observada em duas situações:
Se a e b são eventos no mesmo processo, e a ocorre antes de
b, então a → b é verdadeiro
Se a é o 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 verdadeiro

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs

Algoritmo de Lamport
A relação “acontece-antes” é transitiva, logo:
se a → b e b → c, então a → c
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

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs

Algoritmo de Lamport
É necessário um modo de medição de tal forma que para todo
evento a, possa ser assumido que ele ocorreu em um tempo
C(a) no qual todos os processos concordem

Se a → b, então C(a) < C(b)

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs

Algoritmo de Lamport

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs
Algoritmo de Lamport

Solução de Lamport:
Uma vez que a mensagem m foi enviada no tempo 60 (Figura
b), ela deve chegar no tempo 61 ou maior
Cada mensagem carrega o tempo de envio, de acordo com o
relógio do transmissor
Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das
Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs

Algoritmo de Lamport
Por usar inteiros simples como marcas de tempo, o algoritmo
de Lamport perde informações de vários ordenamentos válidos.
Após aplicar o algoritmo de Lamport, temos apenas uma de
várias ordenações possı́veis! Ou seja, temos um SD totalmente
ordenado
No entanto, em algumas situações, é necessário ter acesso a
todas as ordenações parciais possı́veis, que representam
“fotografias” consistentes do Sistema Distribuı́do, ou seja
estados globais.
Em recuperação a falhas, por exemplo, é necessário termos
acessos a estes estados globais.

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs
Relógios Vetoriais
Por exemplo, podemos estar interessados em saber se o evento
n é concorrente com d, c ou y. Aplicando o algoritmo de
Lamport, teremos uma ordenação total que fará com que esta
informação desapareça!

Relógios vetoriais possibilitam definir todas as ordenações


parciais possı́veis em um Sistema Distribuı́do
Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das
Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs

NTP - Network Time Protocol


Protocolo para sincronização de relógios, baseado no UDP
O ajuste do relógio é feito entre pares de servidores: A
consulta B e B consulta A
Apesar de ser um protocolo que permite sincronismo simétrico,
um relógio somente é ajustado se a sua precisão é pior do que
a do relógio do outro computador
É um protocolo confiável pois não é afetado por problemas de
conexão usando servidores redundantes e caminhos
redundantes entre servidores
Atende um grande número de clientes
É um protocolo seguro pois evita interferências acidentais ou
voluntárias usando técnicas de autenticação para verificar se os
dados provém de uma origem conhecida

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das


Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs

NTP - Network Time Protocol


Os algoritmos de Cristian e Lamport se destinam a
sincronização em redes locais, o NTP define uma arquitetura
para distribuição de tempo via Internet
Clientes são sincronização com o UTC por meio de
comunicação via UDP na porta 123
Topologia do NTP dividida em camadas ou estratos
O estrato 0 são os relógios de referência fornecem a hora para
os servidores do estrato 1
Os servidores do estrato 1 fornecem hora para os servidores do
estrato 2 e assim por diante
Quanto mais próximo do estrato 0, mais precisa é a hora
fornecida
O estrato de um servidor é dinâmico dependendo da
conectividade desse

Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das

Você também pode gostar