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
Professor: Luiz José Hoffmann Filho

2 Sincronização - Relógios Físicos
Capítulo 6

3 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

4 Relógios Físicos Seja C o valor do relógio 'ideal' (hora UTC)
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 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

5 Relógios Físicos Como fazer a sincronização periódica entre 
se um relógio está adiantado ou atrasado) Como fazer a sincronização periódica entre relógios?

6 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

7 Algoritmo I – 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 máquinas na estimativa do atraso entre as

8 Algoritmo I – Cristian (2)
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

9 Algoritmo I – Cristian (3)
Como estimar o one way delay (atraso em uma direção)? – RTT/2 – Protocolo Network Time Protocol (NTP) • Computadores são dividos

10 Algoritmo II – Berkeley (I)
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

11 Algoritmo II – Berkeley (II)

12 Algumas Considerações
Algoritmos de Cristian e Berkeley são algoritmos centralizados Algoritmos descentralizados também existem, como o Network Time Protocol (NTP) – Organizado em uma estrutura hierárquica → estratos (Evitar dependências cíclicas) – Um computador somente atualiza a sua hora, caso esteja em um estrato de nível inferior ao daquele que está trocando informações no momento

13 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

14 Agenda Relógios Lógicos Relógios de Lamport Relógios Vetoriais

15 Algumas definições... Um sistema distribuído pode ser visto como uma
Um sistema distribuído pode ser visto como uma coleção P de N processos pi, i = 1,2,… N  Cada processo pi possui um estado consistente si  Processos se comunicam através de mensagens  Ações de um processo: enviar e receber mensagens, mudar o próprio status  Evento: ocorrência de uma ação associada ao processo  Eventos dentro de um processo pi podem ser totalmente ordenados pela relação “acontece antes” (“happened before”) → , ou seja, a → b, se e somente se a ocorre antes de b em pi

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

17 Relógios Lógicos (Lamport,1978)(I) → c dado m1 a→ b ( p1) c→d (p2)
d→ f dado m2 b 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 p1 a b m1 p2 Physical time c d m2 p3 e

18 Relógios Lógicos (Lamport,1978) (II)
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ógico lógico, Ci que pode ser usado para aplicar timestamps lógicos aos eventos 1) Ci é incrementado de 1 antes de cada evento no processo pi 2) Quando um processo pi envia mensagem m, o tempo t = Ci é anexado a mensagem 3) Quando pi recebe (m,t), o relógio é atualizado para Ci:= max(Cj, t) antes de aplicar 1)

19 Relógios Lógicos (Lamport,1978) (III)
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 imediatamente após o evento, por exemplo, 1 para a, 2 para b. 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 C(a)<C (b ) MAS C(a)<C (b ) NÃO implica em a → b 1 2 p1 a b m1 C(b) > C(e) mas b || e 3 c 4 d Physical time p2 m2 1 5 e p3

20 Relógios Lógicos (Lamport,1978)
(IV)

21 Relógios Vetoriais (Mattern, Figdge,1988) (I)
• Relógios vetoriais - 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

22 Relógios Vetoriais (Mattern, Figdge,1988) (II) Como Funciona
Vetor de relógios VCi no processo pi é um vetor de N inteiros 1) Inicialmente CVi[j] = 0 for i, j = 1, 2, …N 2)antes de cada evento, pi executa CVi[i] := CVi[i] +1 3) pi envia t = CVi em cada mensagem transmitida 4) 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)

23 (Mattern,Figdge,1988) (III)
Relógios Vetoriais (Mattern,Figdge,1988) (III) 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 (1,0,0) a (2,0,0) b p1 m1 (2,1,0) c (2,2,0) d Physical time p2 m2 (0,0,1) e (2,2,2) f p3

24 Algumas considerações...
Algoritmos de Cristian e Berkeley sincroniza 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  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 Exclusão Mútua Problema: Conjunto de processos, em um
sistema distribuido, que necessitam garantir acesso exclusivo a um recurso Soluções básicas: • Servidor Centralizado. • Completamente distribuído, sem topologia específica • Completamente distribuído, com uma topologia lógica em anel

26 Eclusão Mútua – Servidor
Centralizado

27 Exclusão Mútua – Algoritmo Distribuído (Ricart e Agrawala )
Como funciona? a) Processo necessita acessar uma região ”crítica”: – Envia uma mensagem a todos os outros processos: nome do recurso, número do processo, tempo corrente – Todas as mensagens devem ser confirmadas

28 Exclusão Mútua – Algoritmo Distribuído (Ricart e Agrawala )
Como funciona? b) Processo recebe uma requisição: – Ação depende do estado no qual se encontra o processo ao receber a requisição • Se o processo não está acessando o recurso e nem pretende fazê-lo, envia uma OK • Se estiver na região critica, requisição é enviada a uma fila • Se não está acessando o recurso, mas pretende fazê-lo, comparação entre os tempos de geração dos pedidos. O menor ganha o acesso.

29 Exclusão Mútua – Algoritmo
Distribuído (Ricart e Agrawala )

30 Exclusão Mútua – Algoritmo Token Ring(I)
Como funciona? Organiza os processos em um anel lógico e um token circula entre os processos que fazem parte do sistema distribuído. O processos que está com o token é permitido utilizar o recurso 'crítico', caso queira usá-lo.

31 Exclusão Mútua – Algoritmo
Token Ring(II)

32 Algoritmos de Eleição Muitos SDs precisam que um processo aja como
Muitos SDs precisam que um processo aja como coordenador ou outro papel especial Em geral, não importa qual processo assume responsabilidade Veremos algoritmos para eleger coordenador Em geral, tentam localizar processo com maior ID Assume-se que todos os processos conhecem os IDs dos demais processos  Não se sabe se estão disponíveis/indisponívies Meta: quando eleição começa, termina com todos concordando com quem é o novo coordenador

33 Algoritmo do Valentão (Bully)
Quando processo nota que cooordenador não está mais respondendo requisições, inicia eleição Processo P convoca uma eleição: 1. 2. 3. P envia msg de eleição para todos os processos com IDs maiores Se ninguém responde, P vence eleição e torna-se coordenador Se algum processo com ID maior responde, ele desiste. Quando processo recebe msg de eleição de membros com ID mais baixa Envia OK para remetente para indicar que está vivo e assume processo

34 Algoritmo do Valentão (Bully)
Eventualmente todos os processos desistem menos um: novo coordenador Se processo que estava indisponível volta, inicia eleição Se for processo com maior ID, vence e toma coordenação Maior “cara da cidade” sempre vence: algoritmo do valentão

35 Algoritmo do Valentão

36 Algoritmo em anel • Uso de um anel, mas sem token
• Processos fisicamente ou logicamente ordenados  Conhecem sucessor • Processo verifica que coordenador não funciona  Envia msg de eleição para sucessor  Msg contém seu ID  Se sucessor indisponível, manda para assim sucessivamente próximo, e  A cada passo, processo que recebe msg adiciona seu ID e repassa para sucessor

37 Algoritmo em anel Eventualmente msg volta para quem começou eleição
Eventualmente msg volta para quem começou eleição Reconhece porque msg de eleição contém seu ID Neste ponto muda msg para coordenador e a circula novamente para informar a todos Novo coordenador: processo com maior ID Nova configuração do anel 1. 2. Quando msg coordenador volta para processo que iniciou eleição, é removida e todos voltam a trabalhar

38 Algoritmo em anel


Carregar ppt "Sistemas Distribuídos"

Apresentações semelhantes


Anúncios Google