A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Sistemas Distribuídos

Apresentações semelhantes


Apresentação em tema: "Sistemas Distribuídos"— Transcrição da apresentação:

1 Sistemas Distribuídos
Jorge Surian Sistemas Distribuídos: Sincronização

2 Relógios Físicos Hora atômica Internacional (International Atomic Time) é baseada em relógios muito precisos (taxa de variação de ). 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. 2

3 Relógios Físicos Seja C o valor do relógio 'ideal' (hora UTC).
Seja Cp o valor do relógio no computador p. Se t é o tempo no relógio em sincronia com a hora UTC, então temos o tempo em p dado por Cp(t). Idealmente para todo p e para todo t, temos: Cp(t) = t → C'p(t) = dC/dt = 1. Clock skew (defasagem do relógio): denota a magnitude de diferença entre as frequências de dois relógios.

4 Relógios Físicos Seja x a taxa máxima de deriva (que especifica se um relógio está adiantado ou atrasado). Como fazer a sincronização periódica entre relógios?

5 Sincronização de Relógios
Se existe um 'servidor de tempo' (receptor WWC ou relógio de precisão) Algoritmo proposto por Cristian (1989) Se não existe uma fonte que disponibilize a hora coordenada universal (UCT) Algoritmo de Berkeley Tempo exato não importa!! Relógios Lógicos → Algoritmo de Lamport e Relógios vetoriais

6 Algoritmos... Relógio de Cristian (1989)
Possibilidade de consultar servidores de tempo equipados com um receptor WWV ou um relógio de alta precisão. Problema: Atrasos de mensagens farão com que a hora fornecida seja desatualizada! Variações na estimativa do atraso entre as máquinas.

7 Algoritmos... Relógio de Cristian (1989)
Computador A consulta a hora no computador B. Computador B inclui na resposta o valor do seu relógio → T3. Computador A atualiza o seu relógio com o valor do relógio em B adicionado ao retardo da mensagem entre B e A (One way delay). Estimativa para o one-way delay = RTT/2, caso atrasos em ambas direções sejam aproximados

8 Algoritmos... Relógio de Berkeley
Algoritmo usado para a sincronização interna de um grupo de computadores. 'Servidor de tempo' é ativo (master) e coleta os valores de relógios de outros (slaves). Master usa estimativas do RTT para estimar o valor dos relógios dos computadores dentro dos grupos. Hora atual é resultante de uma média . Master envia ao slaves o total de tempo em que os relógios devem adiantar/atrasar. Caso o master falhe, um novo computador master é eleito.

9 Algoritmos Relógio de Berkeley

10 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

11 Relógios Lógicos Relógios de Lamport, 1978.
Em vez da sincronização de relógios, ordenação dos eventos: Se dois eventos ocorrem no mesmo processo, então eles ocorrem na ordem observada pelo processo pi. Quando uma mensagem m é trocada entre dois processos, e a é o evento de envio e b o de recebimento, então a → b. Relação “acontece antes” é transitiva.

12 Relógios Lógicos Relógios de Lamport, 1978.
a b ( p1) c  d (p2) b  c dado m1 d  f dado m2 Mas, nem todos os eventos podem ser relacionados através da relação “acontece antes”  Consideremos a e e (processos diferentes, sem a existência de cadeias de mensagens entre os processos) Não estão relacionados através da relação  São definidos como processos concorrentes: a || e

13 Relógios Lógicos Relógios de Lamport, 1978.
a b ( p1) c  d (p2) b  c dado m1 d  f dado m2

14 Relógios Lógicos Relógio de Lamport, 1978.
Um relógio lógico é um contador monotonicamente crescente. Não precisa estar relacionado com o relógio físico. Como Funciona? Cada processo pi tem o seu relógio lógico Ci que pode ser usado para aplicar timestamps lógicos aos eventos. Ci é incrementado de 1 antes de cada evento no processo pi. Quando um processo pi envia mensagem m, o tempo t = Ci é anexado a mensagem. Quando pi recebe (m,t), o relógio é atualizado para Ci = max(Cj, t) antes de aplicar 1.

15 Relógios Lógicos Relógio de Lamport, 1978
Em cada um dos processos p1, p2, p3 o relógio lógico é inicializado com zero. Os valores dos relógios lógicos são aqueles que ocorrem imediatamente após o evento. Podemos imaginar a=1, b=2 e assim sucessivamente. Juntamente com m1, o valor 2 é enviado e o relógio em p2, após o evento c, recebe o max(0,2)+1 = 3. a  b implica em que C(a)<C (b ) mas C(a)<C (b ) não implica em a  b!!!

16 Relógios Lógicos Relógio de Lamport – Exemplo 1

17 Relógios Lógicos Relógio de Lamport – Exemplo 2

18 Relógios Lógicos Relógio de Lamport – Problema
C(a) < C(b): Não se pode inferir que a → b !!!!

19 Relógios Lógicos Relógios Vetoriais Criados por Mattern, Figdge,1988.
Implementados para evitar a limitação dos relógios de Lamport: C(a) < C(b) não implica a “acontece antes” de b. Vetores com marcas de tempo são usados para os eventos locais em cada processo. Seja VCi [I] o número de eventos ocorridos em pi até o instante de tempo em questão. Seja VCi [j], o número de eventos que ocorreram em pj, portanto pi sabe quantos eventos ocorreram em pj.

20 Relógios Lógicos Relógios Vetoriais Como funcionam?
Vetor de relógios CVi no processo pi é um vetor de N inteiros Inicialmente CVi[j] = 0 for i, j = 1, 2, …N Antes de cada evento, pi executa CVi[i] = CVi[i] +1 pi envia t = CVi em cada mensagem transmitida Quando pi recebe (m,t), o processo ajusta CVi[j] = max(CVi[j] , t[j]) j = 1, 2, …N (antes do próximo evento adiciona 1 ao seu próprio contador de eventos)

21 Relógios Lógicos Relógios Vetoriais Exemplificando...
p1: a(1,0,0); b (2,0,0) envia (2,0,0) juntamente com a mensagem m1. Em p2, no recebimento de m1, o vetor de relógios é modificado para max. ((0,0,0), (2,0,0)) = (2, 0, 0) adicionando 1 ao seu próprio relógio = (2,1,0) Neste caso, o evento c 'sabe' que ocorreram 2 eventos no processo p1 antes da ocorrência do evento c em p2 =,<=, max: devem ser realizadas entre pares de elementos

22 Relógios Lógicos Relógios Vetoriais
Eventos c e e são concorrentes, mas nem VC(e) <= VC(c) nem VC(c) <=VC(e) podem ser afirmados!!!!

23 Relógios... Algoritmos de Cristian e Berkeley sincronizam relógios físicos, apesar da defasagem entre relógios e retardos das mensagens Para ordenar eventos em computadores diferentes, sincronização dos relógios nem sempre pode ser feito. A relação “acontece antes” resulta em uma ordenação parcial dos eventos.

24 Relógios Relógios de Lamport são contadores que mudam de acordo com o relacionamento de “acontece antes” entre os eventos. Relógios vetoriais são uma melhora nos relógios de Lamport, onde dois eventos são ordenados pela relação “acontece antes” ou são concorrentes através da comparação dos vetores com marcas de tempo.

25 Fontes: Tanenbaum, Andrew S. e Steen, Marteen Van. Sistemas Distribuídos, São Paulo: Prentice Hall, 2008. Imagem do Relógio, trecho da obra “Persistência do Tempo”, de Salvador Dali. Copyright © Prof. Jorge Surian Todos direitos reservados. Reprodução ou divulgação total ou parcial deste documento é expressamente proíbido sem o consentimento formal, por escrito, do Professor Surian.


Carregar ppt "Sistemas Distribuídos"

Apresentações semelhantes


Anúncios Google