Sistemas Distribuídos - brhott.files.wordpress.com · escala e compensação que mapeia o tempo...
Transcript of Sistemas Distribuídos - brhott.files.wordpress.com · escala e compensação que mapeia o tempo...
Tópicos
• Tempo e Relógios • Relógios Físicos
• Sincronização• Método de Cristian
• Algoritmo de Berkeley
• Network Time Protocol (NTP)
• Tempo e relógio lógicos• Relógios Lógicos
• Relação Happened- Before
DECSI/ICEA UFOP
2
Tempo e relógios
• O que é o tempo real?– Função monotônica contínua e crescente [Newtoniano]
• O que é 1 segundo?– Divisor de um dia solar
– Relógios atômicos
• A linha do tempo– timestamps
– duração de intervalos
• Relógios
DECSI/ICEA UFOP
3
Tempo e relógios
DECSI/ICEA UFOP
4
um segundo é a duração de 9.192.631.770 períodos da radiação correspondente à transição entre os dois níveis do estado fundamental do átomo de césio 133
Qual o papel do tempo em sistemas distribuídos?
• Gravar e observar a localização de eventos na linha do tempo– sequenciamento de eventos que formam um estado global
– medir a duração entre dois eventos
• Forçar o futuro posicionamento de eventos na linha do tempo– sincronização
DECSI/ICEA UFOP
5
O papel do tempo
• Timestamp: sequência de caracteres que marcam a
• data e/ou tempo no qual um certo evento ocorreu.• (ex. data de criação/alteração de um ficheiro)
• um timestamp está associado a um ponto na timeline.
• Intervalos de tempo: cadeia de tempo composta por vários intervalos adicionados
DECSI/ICEA UFOP
6
Medindo tempo em sistemas distribuídos
• Como medir durações distribuídas?
• Como reconciliar diferentes linhas do tempo?– Ex. qual o tempo de transmissão de uma mensagem?
• Tempo global × tempo real
DECSI/ICEA UFOP
7
Tempo global vs tempo absoluto
• Tempo Global (global time): implementa a abstração de um tempo universal, através de um relógio que fornece o mesmo tempo a todos os participantes no sistema.
• Tempo Absoluto (absolute time): padrões universalmente ajustados, disponíveis como fontes de tempo externo para o qual qualquer relógio interno se pode sincronizar.
DECSI/ICEA UFOP
8
Eventos
• Eventos podem ser locais ou podem ser trocas de mensagem
• Eventos ordenados e concorrentes
DECSI/ICEA UFOP
9
Eventos
• É normalmente conveniente tratar com processos ao invés de processadores– Um sistema distribuído é composto por N processos que executam em M
processadores
– Processadores são conectados por canais de comunicação
• A evolução do sistema é modelada por uma sequência de eventos ei
p
• e eip se somente se e ocorreu antes de ei no processo p
• Um evento modifica o estado do processo p
• A história H é uma seqüência de tuplas contendo um evento eip
e o estado de p após eip
• Histórico(pi) = hi = <e0, e1, e2 ….>
DECSI/ICEA UFOP
10
Relógios locais físicos• Equipamento físico, que conta as oscilações que
ocorrem num cristal de quartzo a uma dada frequência.
• Cada oscilação do cristal decrementa o contador de uma unidade.
• Quando o contador chega a zero, é gerado um interrupte o contador é recarregado com o valor inicial.
• Cada interrupt é designado como um “clock tick”
DECSI/ICEA UFOP
11
Relógios locais físicos• Sistema operacional lê valor relógio de Hardware Hi(t)
• O hardware implementa uma função para acertar uma escala e compensação que mapeia o tempo real t em um tempo de relógio de software Ci(t)
Ci(t) = α Hi(t) + β
• Imperfeições de relógios físicos– Granularidade (α)
– Relógios físicos avançam em ticks
– Taxa de desvio (β)– Depende da qualidade do relógio e das condições do ambiente (ex.
temperatura)
DECSI/ICEA UFOP
12
Problema dos Relógios locais físicos
• Imperfeições de relógios físicos–Granularidade (α)
– Relógios físicos avançam em ticks
–Taxa de desvio (β)– Depende da qualidade do relógio e das condições
do ambiente (ex. temperatura)
Para uma taxa de desvio de 10-5 , após 60 minutos o erro acumulado pode ser superior a 30 milissegundos
DECSI/ICEA UFOP
13
Para que serve um relógio local?
• Prover timestamps para eventos locais
• Medir durações locais–Qual o erro causado pela taxa de desvio?– é tipicamente na ordem de 10-5
• Definir timeouts
• Medir durações de atraso round-trip
DECSI/ICEA UFOP
14
Sincronização Física de Relógios
• Relógios dos computadores atuais: podem atrasar ou adiantar com o tempo (clock drift)• Razão: cristal de quartzo oscila a freqüências ligeiramente
diferentes
• Clock drift médio: 1 seg a cada 11.6 dias
• Sincronização Física de Relógios:• Objetivo: manter os relógios físicos de um conjunto de
máquinas “acertados”• | Ci - Cj | < , para todo i e j
DECSI/ICEA UFOP
15
Sincronização Interna vsSincronização externa• Sincronização interna:
• relógios têm que obter precisão relativamente a um tempo interno ao sistema
• Sincronização externa:• relógios tem que estar sincronizados com uma fonte
externa de tempo universal
DECSI/ICEA UFOP
16
Sincronização Física de Relógios
Referências de Tempo universal
• Tempo Atómico Internacional - TAI -Temps Atomique International
• função contínua monótona crescente a uma taxa constante. Tempo médio dos relógios atômicos de césio
• Coordinated Universal Time UTC) • referência de tempo política (correção do TAI de forma a
ajustar o tempo com o dia solar)
• Forma mais simples de obter o UTC: • por GPS (Global Position System) – é assegurada uma
exatidão, em terra, <= 100nsDECSI/ICEA UFOP
17
Sincronização usando um servidorde tempo
DECSI/ICEA UFOP
18
mr
mt
p Servidor de tempo, s
Ocorre um atraso para que a mensagem com a hora certa chegue em p
Medição de durações round-trip
• Certas durações distribuídas podem ser medidas sem a existência explícita de relógios globais
• Round-trip time• Tempo necessário para enviar e receber uma
mensagem na rede.
DECSI/ICEA UFOP
19
Algoritmos de sincronização
• Sincronização interna entre dois processos num sistema distribuído síncrono.• São conhecidos os limites máximo (Max) e mínimo (Min)
para o envio de mensagens, assim como para o desvio do relógio e para o tempo de execução dos processos.
• Assumindo que o processo 1 envia uma mensagem ao processo 2 com o tempo que marca o seu relógio, t• A incerteza no envio da mensagem será u = (Max – Min)
DECSI/ICEA UFOP
20
Algoritmos de sincronização• Se o processo 2 acerta o seu relógio para t + Min,
• o máximo desvio (skew) será u porque a mensagem pode ter demorado Max.
• Se o processo 2 acerta o seu relógio para t + Max, • o máximo desvio será também u porque a mensagem
pode ter demorado Min.
• Mas se o processo 2 acertar o seu relógio para, t + (Max + Min) /2• O desvio entre os dois relógios será no máximo,
(Max - Min) / 2
DECSI/ICEA UFOP
21
Algoritmos de sincronização
• Como acertar relógios• obter UTC e corrigir o software do relógio
Problemas
• O que acontece se um relógio está adiantado e é acertado?• O tempo nunca anda para trás
• O valor lido do relógio físico deverá ser escalado pelo software de forma a ir atrasando lentamente, sempre como uma função crescente.
DECSI/ICEA UFOP
22
Algoritmo de Cristian
• Proposto em 1989
• Existem dois tipos de estações:• Um servidor de tempo (time server)
• Clientes deste servidor de tempo
• Idéia básica: • Clientes periodicamente requisitam o tempo ao
servidor
• Tempo do servidor: CUTC
DECSI/ICEA UFOP
23
Algoritmo de Cristian
• obter UTC e corrigir o software do relógio
Estimativa para o tempo de propagação da mensagem:
p = (T1 – T0 – h ) /2 ( metade do “round-trip time” )
DECSI/ICEA UFOP
24
Algoritmo de Cristian
• Acertar o relógio do cliente para UTC + p
• Fazer várias medições para obter o valor de T1-T0• Descartar valores acima de um determinado limite
• Ou assumir os valores mínimos
• Algoritmo probabilístico: • a sincronização é conseguida se o RTT é pequeno
quando comparado com a exatidão desejada
• a exatidão é tanto maior quanto o tempo de transmissão está perto do mínimo
DECSI/ICEA UFOP
25
Algoritmo de Cristian
• Problema 1: CUTC < Ccliente (ou seja, cliente está adiantado)• Pode trazer conseqüências inesperadas para algumas
aplicações
• Solução: “atrasar” o relógio gradativamente, até que a correção seja implementada
• Problema 2: Ponto único de falha e congestionamento (bottleneck)• Possível solução: utilizar um conjunto de servidores com
receptores de UTC
DECSI/ICEA UFOP
26
Algoritmo de Cristian
• Implementação Prática:• NTP (Network Time Protocol, 1991)
• Padrão Internet para sincronização de relógios (RFC 1129)
• Baseado em UDP
• Hierarquia de servidores (primários, secundários etc)
DECSI/ICEA UFOP
27
Algoritmo de Berkeley
• Usado no Berkeley Unix (1989)
• Servidor consulta clientes periodicamente (polling), os quais informam os valores correntes de seus relógios
• Baseado nas respostas, servidor computa uma média e a envia de volta aos clientes
DECSI/ICEA UFOP
28
Algoritmo de Berkeley
• É escolhido um computador para ser o co-ordenador(master)
• O máster periodicamente contacta os outros computadores, (slaves)
• -O masterfaz uma estimativa do tempo local de cada slave, baseado no rtt.
• -O master calcula o tempo médio de todos os computadores, ignorando valores de transmissão demasiado elevados e máquinas com tempos muito diferentes dos outros.
• -Finalmente o master envia a cada computador o valor de que o seu relógio deve ser ajustado (esse valor pode ser positivo ou negativo)
DECSI/ICEA UFOP
29
Algoritmo de Berkeley
• Precisão: depende do round trip time
• Tolerância a falhas: Calcula a média dos tempos para um subconjunto de computadores que diferem a até um certo valor máximo. • Ignora mensagens cujo tempo de transmissão é
demasiado elevado.
• Que fazer se o master falhar?• Eleger um novo coordenador.
DECSI/ICEA UFOP
31
NTP
• Network Time Protocol• Rede hierárquica de servidores na Internet
• 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 frequente para compensar as taxas de deriva encontradas na maioria dos computadores.
• Fornecer proteção contra interferência no serviço de tempo, seja mal-intencionada ou acidental.
DECSI/ICEA UFOP
32
NTP
DECSI/ICEA UFOP
33
1
2
3
2
3 3
Note: Setaas indicam controle de sincronização, números
fornecem o statrum.
NTP
• Modos de sincronização do NTP
• Modo multicast
• Usado em LANs de alta velocidade
• um ou mais servidores faz periodicamente multicastdo seu tempo para os outros servidores.
• os receptores acertam os seus relógios assumindo um pequeno atraso de transmissão.
DECSI/ICEA UFOP
34
NTP
• Modos de sincronização do NTP
• Modo procedure call
• Similar ao algoritmo de Cristian
• os clientes solicitam o tempo de um ou vários servidores, e estes enviam o valor do seu relógio.
• adequado quando se pretende maior exatidão
• ou o multicast não está disponível
DECSI/ICEA UFOP
35
Tempo lógico e relógio lógico
• Principais propriedades de um algoritmo distribuído:• Informações são distribuídas pelos vários nodos do
sistema
• Processos tomam decisões baseados apenas nas informações locais
• Sem um ponto único de falhas
• Não existe um relógio global a todo sistema
DECSI/ICEA UFOP
37
Ordenação de Eventos
• Sistema centralizado: trivial• Relógio comum a todos os processos
• Sistema distribuído: não é nada trivial• Não existe uma fonte de tempo global a todos os
processos
• Solução: Relação Happens-Before
DECSI/ICEA UFOP
38
Relação Happens-Before
• Proposta por Lamport em um paper clássico:• Lamport, L. Time, clocks and the ordering of events in a
distributed system, CACM, vol. 21, pp. 558-564, july 1978.
• Idéias básicas:• Definir ordem de eventos apenas entre processos que
interagem entre si
• Relógio lógico: o que importa é a ordem dos eventos e não o tempo físico em que os mesmos ocorreram
DECSI/ICEA UFOP
39
Relação Happens-Before
• Notação: A B• Lê-se que “A ocorreu antes de B”
• Significado: todos os processos do sistema concordam que primeiro ocorreu o evento A e então o evento B
• Eventos que não são ordenados pela relação “” são ditos concorrentes.• Notação: A \\ B
DECSI/ICEA UFOP
40
Relação Happens-Before
• Definição:• Se A e B são eventos de um mesmo processo e A foi
executada antes de B, então A B
• Se A consiste no evento de enviar uma mensagem para um processo e B é o evento de recebimento desta mensagem, então A B.
• Se A B e B C, então A C (transitividade)
DECSI/ICEA UFOP
41
Relação Happens-Before
• A B
• Não existe A E, pois A e E estão em processos diferentes e nã existe nenhuma mensagem
• Portanto, A é concorrente de E: A || EDECSI/ICEA UFOP
42
p1
p2
p3
a b
c d
e f
m1
m2
Tempo
Físico
Implementação da Relação Happens-Before• Algoritmo de Lamport
• Utiliza o conceito de relógio lógico (C):• Inteiro monotonicamente crescente armazenado em
cada nodo
• Incrementado a cada evento
• Implementação do conceito de relógio lógico:• Se A B
então C(A) < C(B)
• O contrário não precisa ser verdadeiro
DECSI/ICEA UFOP
43
Relógio Lógico
• O valor do relógio lógico de um processo P, Cp, é atualizado da seguinte forma:• Cp é incrementado antes de cada evento de P.
• Quando P envia uma mensagem M para Q, ele insere na mesma um timestamp t= Cp
• Quando Q recebe (M, t), então
Cq:= max (Cq, t) + 1
(garante-se assim que Cp < Cq)
DECSI/ICEA UFOP
44
Relógio Lógico
• Relógio Lógico: como definido, dá origem a uma relação de ordem parcial• Dois eventos podem ocorrer no mesmo tempo lógico
• Ordenação total : adicionar o PID de cada processo no final do relógio lógico• Exemplo:
• Processo 1: relógio lógico = 40.1
• Processo 2: relógio lógico = 40.2
DECSI/ICEA UFOP
45
Ocorrência de eventos nos processos P1, P2 e P3
DECSI/ICEA UFOP
46
p1
p2
p3
a b
c d
e f
m1
m2
Tempo
Físico
Rótulos de tempo do Algoritmo de Lamport para ordenação de eventos
DECSI/ICEA UFOP
47
a b
c d
e f
m1
m2
21
3 4
51
p1
p2
p3
TempoFísico