• Nenhum resultado encontrado

Sistemas Distribuídos

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas Distribuídos"

Copied!
27
0
0

Texto

(1)

Sérgio Duarte - ⓒ2011 - DI/FCT/UNL Mestrado em Engenharia Informática

Sistemas Distribuídos I

Capítulo 3

Tempo físico e Relógios lógicos

Mestrado em Engenharia Informática Sistemas Distribuídos

Tempo

Em Sistemas Distribuídos, o tempo é uma questão importante e levanta problemas interessantes...

‣ Precisa de ser medido com elevada precisão

‣ Precisa de ser medido de forma consistente pelas diversas componentes de um sistema

(2)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

Tempo

Um relógio global e absoluto não existe!

‣ Este facto incontornável assenta nos melhores conhecimentos de Física actual...

‣ A avaliação do tempo está dependente do referencial de observação

‣ o tempo pode fluir a velocidades distintas para observadores diferentes ‣ observadores distintos podem testemunhar eventos (não causais) por

uma ordem diferente

Mestrado em Engenharia Informática Sistemas Distribuídos

Tempo: Medição

O tempo é uma grandeza relativa e mede-se por contagem de eventos periódicos que ocorreram desde uma referência no passado.

A regularidade dos eventos e a fidelidade do processo de

detecção dos eventos definem as características de precisão do relógio.

(3)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

Tempo: Relógios Físicos

Não existem dois relógios físicos exactamente iguais!

‣ A condição física (e as condições ambientais) introduz(em) imprecisão...

‣ Dois relógios “perfeitamente” sincronizados num dado momento, mais tarde ou mais cedo irão mostrar medições distintas...

Para muitas aplicações distribuídas, os relógios físicos não são suficientemente precisos...

‣ impossibilidade ordenar correctamente eventos com base em estampilhas obtidas de relógios físicos distintos...

‣ a percepção da possível causalidade entre eventos pode desaparecer

Mestrado em Engenharia Informática Sistemas Distribuídos

Relógios de Software

C(t) = α H(t) + β

‣ manipulando α e β, pode-se “acertar” o relógio de software

pilha

contador cristal

relógio

Clock tick periódico

Valor de referência

(4)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

Relógios: Desvio e Deriva

Não havendo dois relógios exactamente iguais, significa que cada um mede o tempo à sua maneira...

‣ A diferença instantânea entre os valores de qualquer par de relógios é conhecido como desvio (skew)

‣ O desvio existe e tende a aumentar porque todos os relógios estão sujeitos a deriva, ou seja não medem o tempo de forma precisa e constante: tendem a atrasar-se ou adiantar-se um relativamente aos outros...

Mestrado em Engenharia Informática Sistemas Distribuídos

Relógios: Precisão

Existem limites físicos para a precisão de um relógio...

Tecnologia Deriva (sDeriva (s-1-1))

cristal de quartzo

10

-6 ~11,6 dias

quartzo de

alta-precisão

10

-8 ~ 3,2 anos

(5)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

Relógios: Sincronização

Devido à deriva, o desvio entre os relógios tende a aumentar; Periodicamente, é necessário proceder a um acerto ou

sincronização

A sincronização é feita com base num valor de referência que se pretende que seja o mais preciso possível...

‣ idealmente usa-se o tempo fornecido por um relógio atómico

Mestrado em Engenharia Informática Sistemas Distribuídos

Tempo: Normas Internacionais

O Tempo Atómico Internacional (TAI) é o valor de referência internacional para medir o passar do tempo.

‣ Criado em 1967

‣ Baseado na média de vários relógios atómicos distribuídos por várias instituições mundiais

(6)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

Tempo: Normas Internacionais

O Tempo Universal Coordenado

*

é o valor de

referência internacional para a hora oficial.

‣ É derivado a partir de Tempo Atómico Internacional

e é sincronizado com o “tempo sideral” pela adição

de “segundos de salto” para fazer face ao

abrandamento do período de rotação da Terra.

‣ É distribuído de variadas formas, com precisão

diversa: GPS, Rádio, Internet(NTP), etc.

* Coordinated Universal Time - UTC

Mestrado em Engenharia Informática Sistemas Distribuídos

Relógios Físicos: Sincronização

A necessidade (frequente) de etiquetar os eventos ocorridos num sistema distribuído com uma hora e data conduz à

necessidade de sincronizar os relógios físicos envolvidos...

(7)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

Relógios Físicos: Sincronização

O objectivo da sincronização é garantir que o desvio máximo entre quaisquer par de relógios físicos do sistemas não excede um determinado valor.

A sincronização pode ser:

‣ Interna (envolvendo apenas os relógios físicos do sistema em questão)

‣ Sincronização de frequências...

‣ Externa ou temporal (envolvendo também um ou mais relógios externos)

Mestrado em Engenharia Informática Sistemas Distribuídos

Relógios Físicos: Sincronização Interna

A sincronização interna apenas pretende limitar o desvio máximo existente entre os relógios físicos pertencentes às componentes de um (mesmo) sistema.

A sincronização interna não evita desvios ou deriva face a outros relógios (e à hora UTC).

(8)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

Relógios Físicos: Sincronização Externa

A sincronização externa tem como objectivo garantir que o desvio de todos os relógios físicos de um sistema em relação a um relógio UTC externo de referência está dentro de um dado limite

dado um limite de precisão D, tal que D > 0, e um relógio externo S, então:

| S(tutc) - Ci(t) | < D, para i = 1, 2, 3, ..., N

Mestrado em Engenharia Informática Sistemas Distribuídos

Relógios Físicos: Sincronização

Por definição, quando os relógios de um sistema distribuído estão sincronizados externamente, então também estão sincronizados internamente

(9)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

Relógios: Correcção

Existem várias noções de correcção para relógios físicos... ‣ Deriva limitada - impor determinada precisão ao relógio hardware Hi(t)

‣ impedir saltos excessivos durante a operação normal

‣ Monotonia - o tempo só avança...

‣ Ci(t) é uma função monótona crescente (entre pontos de sincronização):

C

i

(t) = α H

i

(t) + β

Mestrado em Engenharia Informática Sistemas Distribuídos

Relógio: Falhas

Um relógio físico que não cumpra as condições de correcção desejadas considerada-se “avariado”

‣ A avaria pode ser permanente (fail stop)

‣ Nos demais casos, as avarias dizem-se falhas arbitrárias ou bizantinas

(10)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

Sincronização: Algoritmos

A sincronização de relógios físicos num sistema

distribuído pode ser conseguida através da troca de

mensagens...

‣ Porém, as mensagens podem sofrer atrasos que dão origem a incerteza...

‣ Tal impõe limites à precisão que é possível conseguir...

Mestrado em Engenharia Informática Sistemas Distribuídos

Sistemas Síncronos

Como obter Ttrans

?

‣ Não é possível saber...

‣ Num sistema síncrono, os limites para

Ttrans

são conhecidos ou passíveis de avaliação...

min ≤ Ttrans ≤ max → incerteza u = (max - min)

Cj(t) ← ti + (max + min) / 2

garante-se que o desvio é no máximo u / 2

pi pj

Ci(t) = ti Cj(t) ← ti + Ttrans ????

(11)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

Sistemas Síncronos

Generalizando, prova-se que a sincronização de N relógios num sistema distribuído tem como limite óptimo para o desvio que é possível conseguir de:

u (1 - 1 / N), N = 1, 2, 3, ...

‣ Conclusão: O erro (precisão) é dominado pelo desempenho dos canais de comunicação utilizados.

Mestrado em Engenharia Informática Sistemas Distribuídos

Sistemas Assíncronos

Na prática, a maioria dos sistemas são assíncronos, não sendo conhecidos os limites superiores de grandezas como o tempo máximo de transmissão de mensagens...

Ttrans = min + x , x > 0

‣ A sincronização de relógios físicos em condições assíncronas apenas pode convergir com garantias probabilísticas;

(12)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

Sincronização: Algoritmo de Cristian

Assume que Tround é pequeno face ao erro desejado e que a rede é

simétrica:

ts + min ≤ Ci(t) ≤ ts + Tround - min

desvio = (Tround - 2 min)

precisão + ( Tround / 2 - min)

É possível melhorar a precisão, repetindo o processo e escolhendo o menor Tround

‣ Em situações de congestão, tal pode agravar o problema...

Time Server pi S(tUTC) = ts Ci(t) ← ts + Tround/ 2 m(ts) T round t

Mestrado em Engenharia Informática Sistemas Distribuídos

Sincronização Interna: Algoritmo de Berkeley

Intenção: Sincronizar os relógios de vários computadores sem acesso a

uma fonte UTC externa, tipicamente ligados numa rede local ou intranet. ‣ Um computador actua como master. Se falhar, outro toma o seu lugar. ‣ Periodicamente, o master recebe o valor dos relógios dos outros

computadores

‣ O master cálcula a média e difunde o ajuste que cada computador tem de fazer ao seu relógio:

‣ ti = m(ti) + Tround / 2

‣ Ajuste: dti = ti - média( t1, t2, t3, ...) ;

(13)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

Sincronização Interna: Algoritmo de Berkeley

Pontos Fortes do Algoritmo:

‣ O ajuste dos relógios com base na média de um número elevado de máquinas tende a reduzir a deriva;

‣ Ignorar valores muito distantes da média permite tolerar relógios avariados

‣ A actualização dos relógios pelo envio do ajuste a efectuar evita a incerteza introduzida pela propagação de mais uma mensagem.

Nota: Os relógios evoluem em conjunto, mas o tempo medido não tem qualquer relação com o exterior

Mestrado em Engenharia Informática Sistemas Distribuídos

NTP: Network Time Protocol

Protocolo previsto para redes WAN

‣ normalizado pela IETF, no RFC 1305 de 1992 (versão 3)

Permite a um conjunto de computadores na Internet (uma WAN) obterem o tempo UTC ‣ recorre a fontes primárias de tempo UTC (GPS, rádio, telefone, etc.)

Permite a sincronização mesmo na presença de grandes variações do RTT

‣ emprega técnicas estatísticas para filtrar respostas inadequadas de servidores pois memoriza a história dos mesmos

(14)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

NTP: Network Time Protocol

Existem servidores com receptores externos UTC

Os outros servidores organizam-se hierarquicamente em níveis (strata) e sincronizam-se com os níveis superiores

‣ topologia dinâmica, UDP

Tipos de Sincronização:

‣ Multicast: o servidor difunde o tempo em UDP multicast

‣ Chamada RPC: semelhante ao alg. Cristian

‣ Simétrico: entre servidores dos níveis superiores

3 3 3 3

1

2 2

fonte externa UTC

Mestrado em Engenharia Informática Sistemas Distribuídos

NTP : Protocolo Sincronização Simétrica

Cada mensagem leva os três últimos valores conhecidos. ‣ m’ contém os últimos valores de T1, T2 e T3.

Tempo para responder pode ser longo

Mesmo que uma mensagem se perca, os valores estão coerentes.

(15)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

NTP: Cálculo do Offset (desvio)

Objectivo: Estimar a diferença dos relógios (EO)

Seja tm1,tm2 o tempo de trânsito real das mensagens m1,m2 e O o offset real (desvio) T2 = T1 + O + tm1 ≣ tm1= T2 - T1 - O [tm1= 24 - 2 - O = 22 - O]

T4 = T3 - O + tm2 ≣ tm2= T4 - T3 + O [tm2= 10 - 27 + O = -17+O] Tempo de trânsito estimado de m1+m2:

di= tm1+tm2= T2-T1 - O + T4 - T3 + O = T2 - T1 + T4 -T3 [ di= 24 - 2 + 10 - 27 = 5] 24 25 26 21 22 23 27 28 29 30 Server A time 4 5 6 1 2 3 7 8 9 10 Server B time T1=2 T2=24 T3=27 T4=10 m1 m2

Mestrado em Engenharia Informática Sistemas Distribuídos

NTP: Cálculo do Offset (desvio)

(16)

ⓒ2009 - DI/FCT/UNL Sérgio Duarte

NTP: Procura de Precisão

Os servidores mantêm a história das interacções que tiveram com os outros servidores

‣ Sincronizam-se com vários outros servidores ‣ Filtram resultados, excluindo valores extremos

‣ Avaliam a qualidade da informação fornecida por um servidor com base na sua “distância” à raiz

‣ Mudam de configuração à procura de melhores pares

Na Internet, a precisão conseguida é da ordem de 10 ms.

Mestrado em Engenharia Informática Sistemas Distribuídos

O que estudar...

G. Coulouris, J. Dollimore and T. Kindberg, Distributed Systems - Concepts and Design, Addison-Wesley, 4th Edition, 2005

(17)

(c) 2011 - DI / FCT / UNL Sérgio Duarte

Relógios Lógicos

Relógios de Lamport Relógios Vectoriais

Mestrado em Engenharia Informática Sistemas Distribuídos

Case study

Como se implementar um Chat Room? ‣ Requisitos:

‣ N participantes

‣ As mensagens não se perdem... ‣ Ordenação????

(18)

(c) 2011 - DI / FCT / UNL Sérgio Duarte

Eventos

Entendem-se como eventos as acções individuais conduzidas por um processo à medida que executa...

‣ acções de comunicação ‣ transformações de estado

A sequência de eventos ocorridos num processo denota a sua história...

Mestrado em Engenharia Informática Sistemas Distribuídos

Eventos

Registar a história de um processo consiste, então, em enumerar (ordenadamente) os eventos que nele ocorrem...

‣ preservando a relação (temporal/causal) entre os eventos...

Num processo isolado pi, com um único processador, existe sempre uma ordenação total única (→i) entre eventos:

‣ e →ie’, se e só se e ocorre antes de e’, em pi

(19)

(c) 2011 - DI / FCT / UNL Sérgio Duarte

Tempo: Eventos e Relógios

Pode-se usar o valor do relógio para registar quando um evento ocorreu.

‣ Ao valor do relógio que fica associado ao evento chama-se estampilha temporal

‣ A relação →i pode então ser ser capturada e reproduzível de uma forma concreta através destas estampilhas

Será possível estender a ideia para um sistema distribuído? ‣ Sim, parcialmente, mas necessitamos de sincronizar os relógios...

Mestrado em Engenharia Informática Sistemas Distribuídos

Estampilhas: Relógios Sincronizados

É possível constatar que m0

deve ser anterior a m1 e m3

porque a estampilha temporal da sua emissão é inferior

(20)

(c) 2011 - DI / FCT / UNL Sérgio Duarte

Estampilhas : Relógios Não Sincronizados

Qual o evento que ocorreu antes? ‣ O envio de m1 ou m3?

O envio de m0 ou m3? O envio de m0 ou m1?

t=5

t=3

Relógios não sincronizados

t=4 m1 m2 m3 t=3 m0

Mestrado em Engenharia Informática Sistemas Distribuídos

Estampilhas : Limitações

As estampilhas temporais ordenam eventos correctamente desde que o tempo de propagação das mensagens seja duas vezes superior ao desvio dos relógios físicos em causa.

Alternativamente, os eventos a ter que ser espaçados no tempo em pelo menos duas vezes o desvio máximo dos relógios...

(21)

(c) 2011 - DI / FCT / UNL Sérgio Duarte

Relógios Físicos : Alternativas...

Não sendo possível sincronizar os relógios físicos de um sistema distribuído perfeitamente como fazer para ordenar eventos de forma coerente em todo o sistema?

‣ dar menos importância à qualidade física do tempo

‣ centrar o problema na questão da causalidade dos eventos

Mestrado em Engenharia Informática Sistemas Distribuídos

Relação “Happened Before” (Lamport 1978)

A relação aconteceu antes * (→) é uma ordem parcial que pretende respeitar a causalidade física entre os eventos de um sistema distribuído.

Definição:

HB1: se ∃ pi : eai eb então ea → eb

HB2: esend(m) → ereceive(m), para qualquer mensagem m HB3: se ea → eb e eb → ec, então ea → ec (transitividade)

(22)

(c) 2011 - DI / FCT / UNL Sérgio Duarte

Relação “Happened Before” : Exemplo

a → c → f d → e b → g c → d e → g a → c → d → e → g b a c d e g f a || b c || b d || b ...

Mestrado em Engenharia Informática Sistemas Distribuídos

Relação “Happened Before” : Considerações

A relação aconteceu antes apenas regista relações de causalidade que derivam exclusivamente das mensagens enviadas no próprio sistema.

A relação aconteceu antes estabelece potenciais relações de causalidade entre eventos.

‣ Se eaeb, então ea poderá ter causado eb, ou não.

(23)

(c) 2011 - DI / FCT / UNL Sérgio Duarte

Relógios Lógicos (Lamport 1978)

Um relógio lógico (de Lamport) é um contador monótono crescente usado para atribuir uma estampilha temporal a um evento.

Cada processo pi, mantém um relógio lógico Li actualizado da seguinte forma:

‣ LC1 :

‣ Se e é um evento executado em pi, faz-se:

Li := Li + 1 [ alternativamente, Li := Li + x , x > 0 ]

C(e) := Li, com C(e) a estampilha temporal atribuída ao evento e

‣ LC2 :

‣ Se e = esend(m), usa-se a regra anterior e envia-se (m,t), com t =C(send(m))

‣ Se e = ereceive(m,t), faz-se Li=max(Li, t) e, de seguida, aplica-se a regra LC1

Mestrado em Engenharia Informática Sistemas Distribuídos

Relógios Lógicos : Exemplo

(24)

(c) 2011 - DI / FCT / UNL Sérgio Duarte

Relógios Lógicos : Ordenação Total

Por vezes, é interessante ordenar totalmente os eventos que ocorrem num sistema distribuído

Tal é possível juntando às estampilhas de Lamport um qualquer identificador extra que torne os seus valores globalmente únicos

‣ O identificador do processo (guid), por exemplo.

‣ Dado um evento e, executado no processo pi ( i = 1, 2, 3, ..n) com estampilha temporal Le, a estampilha temporal global é:

(Le, i).

‣ A ordem global das estampilhas temporais é definida por: (La, i) < (Le2, j), sse La < Lb ∨ La = Lb e i < j

Mestrado em Engenharia Informática Sistemas Distribuídos

Relógios Lógicos

Dados dois eventos, ea e eb, tem-se ea → eb C(ea) < C(eb)

‣ Pode-se demonstrar por indução no comprimento da sequência de eventos que estabelecem ea → eb

(25)

(c) 2011 - DI / FCT / UNL Sérgio Duarte

Relógios Lógicos: Limitações

Os relógios lógicos não permitem decidir se dois eventos são concorrentes...

Mestrado em Engenharia Informática Sistemas Distribuídos

Relógios Lógicos: Limitações

Os relógios lógicos não permitem decidir se dois eventos são concorrentes...

(26)

(c) 2011 - DI / FCT / UNL Sérgio Duarte

Relógios Vectoriais

Um relógio vectorial num sistema com n processos é um vector de n inteiros, V[1..n].

‣ Cada processo pi mantém um relógio vectorial Vi, inicializado a zeros, que usa para atribuir uma estampilha temporal aos eventos locais e actualiza da seguinte forma:

‣ VC1 : Inicialmente, Vi[j] = 0, i, j = 1, 2, 3,..., n

‣ VC2 : Antes de etiquetar um evento e em pi, faz-se: Vi[i] := Vi[i]+1 ; C(e)=Vi

‣ VC3 : Se e = esend(m), aplica-se a regra anterior e envia-se (m, t[] ), com t[] = C(send(m))

‣ VC4 : Se e = ereceive(m,t) em pi, faz-se Vi[j] = max( Vi[j], t[j]) , j = 1, 2, ... n e, depois, aplica-se a regra

base b a c d e g f [1,0,0] [2,0,0] [3,0,0] [0,0,1] b a c d e g f [1,0,0] [2,0,0] [3,0,0] [0,0,1] [2,1,0] [2,2,0] [2,2,2]

Mestrado em Engenharia Informática Sistemas Distribuídos

Relógios Vectoriais : Ordenação

Dados dois relógios vectoriais Va e Vb, tem-se:

Va = Vb, sse Va[i] = Vb[i], ∀i Va ≤ Vb, sse Va[i] ≤ Vb[i], ∀i

Va < Vb, sse Va ≤ Vb ⋀ Va ≠ Vb Va[i] ≤ Vb[i], i ∧∃j, Va[j] < Vb[j]

Dados dois eventos, ea e eb, tem-se ea → eb C(ea) < C(eb)

‣ Intuitivamente, como um relógio vectorial resume os eventos vistos, se ea→eb então necessariamente o resumo dos eventos vistos aquando de eb tem de incluir todos os eventos vistos aquando de ea (incluindo ea).

Dados dois eventos, ea e eb, tem-se C(ea) < C(eb) ea → eb

(27)

(c) 2011 - DI / FCT / UNL Sérgio Duarte

Relógios Vectoriais: Concorrência

A comparação de relógios vectoriais permite inferir se dois eventos ea e eb são concorrentes (ea || eb).

A condição de concorrência é dada por:

ea || eb ¬ C(ea) ≤ C(eb) ∧ ¬ C(eb) ≤ C(ea)

‣ Intuitivamente, se ea e eb são concorrentes, então nem o resumo de ea pode incluir eb nem o resumo de eb pode incluir ea. Se cada resumo não inclui o outro evento é porque

nenhum evento aconteceu no passado do outro.

b a c d e g f [1,0,0] [2,0,0] [3,0,0] [0,0,1] [2,1,0] [2,2,0] [2,2,2] b || c

Mestrado em Engenharia Informática Sistemas Distribuídos

O que estudar...

G. Coulouris, J. Dollimore and T. Kindberg, Distributed Systems - Concepts and Design, Addison-Wesley, 4th Edition, 2005

Referências

Documentos relacionados

- Caixa de Alojamento dos Dispositivos de Proteção das Instalações de Uso Comum (elevadores, bombas, iluminação de escadarias, etc.): essa caixa deverá apresentar as

Em termos de movimentação de contêineres, segundo a ANTAQ (2020), entre o período de janeiro a julho, ambos os terminais movimentaram cerca 5% a mais de toneladas do que o

- Remover as pastilhas usadas e retornar todo o parafuso de regulagem em seguida montar uma pastilha nova do lado da roda, empurrando com a mão a pinça no sentido do cilindro de

4)  Operação na área externa somente com uma carcaça de proteção externa... Sincronização Cabo.. Grau de

formulário para doação de materiais (anexoI). O doador receberá uma cópia da Política de Desenvolvimento de Coleções. Os materiais recebidos como doações serão submetidos

• O desenvolvimento puberal normal acontece progressivamente ,num período de 3.2 +/ - 1.8 anos no sexo masculino (até que se atinja o volume testicular adulto) e de 2.4 + / - 1.1

As tendências e propostas de reformas para o ensino superior brasileiro são tratadas por Newton Lima Neto, professor e ex-reitor da Universidade Federal de São Carlos (UFSCar),

A oferta de ouro oficial pode dobrar com a aquisição de ouro privado, caso seja necessário, e quase não afetaria o suprimento total de ouro no mundo (Ouro oficial é apenas cerca