Sistemas Distribuídos - brhott.files.wordpress.com · escala e compensação que mapeia o tempo...

48
Sistemas Distribuídos Tempo e Relógios Vinícius Fernandes Soares Mota 1

Transcript of Sistemas Distribuídos - brhott.files.wordpress.com · escala e compensação que mapeia o tempo...

Sistemas Distribuídos

Tempo e Relógios

Vinícius Fernandes Soares Mota

1

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

DECSI/ICEA UFOP

30

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

NTP

DECSI/ICEA UFOP

36

Ti

Ti-1Ti-2

Ti- 3

Server B

Server A

Time

m m'

Time

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

Questões

DECSI/ICEA UFOP

Vinícius Fernandes Soares Mota

Tempo e relógios

48