Sistemas Distribuídos: Conceitos e Projeto

Documentos relacionados
Sistemas Distribuídos

Sistemas Distribuídos. Capítulo 6 - Aula 10

Sincronização de Relógios e Relógios Lógicos. Histórico da comunicação. Tempo Global. Mecanismos de ordenação total

Sistemas Distribuídos

Sincronização de relógios

Sincronização em Sistemas Distribuídos

Tempos e Estados Globais. ECO036 - Sistemas Paralelos e Distribuídos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Modelos Fundamentais de um SD. Modelo de Interação ou Sincronismo

Roteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua

Sistemas Distribuídos Aula 13

Sincronização. Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Modelos Fundamentais de um SD. Modelo de Interação ou Sincronismo

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sincronização em Sistemas Distribuídos

Sistemas Distribuídos Sincronização de Relógios. Edeyson Andrade Gomes

Sincronização e Concorrência

Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol.

Sincronização em Sistemas Distribuídos

Sistemas Distribuídos Aula 10

SINCRONIZAÇÃO ATRAVÉS DO CLOCK

Sincronização de Relógios

Sistemas Distribuídos Capítulo 6 - Aula 10

PADI. Tempo em Sistemas Distribuídos PJPF, LAV INESC-ID/IST

Sistemas Distribuídos Capítulo 8 - Aula 15

Sistemas Distribuídos

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado

Ordenação. Relógios lógicos

Introdução Sincronização Interna Sincronização Externa. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Sistemas Distribuídos: Conceitos e Projeto Resiliência de Processos

Sincronização em Sistemas Distribuídos

Introdução Tempo Lógico Relógios Lógicos de Lamport Relógios Lógicos Vetoriais. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Sistemas Distribuídos

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos Aula 16

Sistemas Distribuídos Estados globais. Vinícius Fernandes Soares Mota

Modelos Fundamentais. Introdução. Interação. Falhas. Segurança. Prof. Adriano Fiorese

Sistemas Distribuídos Aula 15

Sistemas Distribuídos Capítulo 8 - Aula 14

Sistemas Distribuídos e Redes de Sensores. abril de 2013

Função da camada de sessão

Ordenação. Sistemas Distribuídos e Tolerância a Falhas. Universidade da Beira Interior 07/08

Relógios Lógicos. Sumário. November 27, Relação Happened-Before. Relógios de Lamport. Relógios Vectoriais

Configurar configurações de tempo no WAP125 e no WAP581

TP308 Introdução às Redes de Telecomunicações

Sincronização. Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol

Sistemas Distribuídos. Aleardo Manacero Jr.

Sistemas Distribuídos

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos Capítulo 8 - Aula 13

Sincronização em SDs I. Bruno M. Carvalho Sala: 3B2 Horário: 35T34

O Tempo Real. Fundamentos dos Sistemas de Tempo Real. Rômulo Silva de Oliveira ebook Kindle, 2018

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

MC714 - Sistemas Distribuídos. Leandro Villas

Sistemas Distribuídos e Tolerância a Falhas. Tempo e Relógios. Baseado no trabalho de: Ana Sofia Cunha m1892 Christian Lopes a15132 UBI, 2008

Prof. Marcelo Cunha Parte 6

Comunicação orientada a mensagens

OMNET++ APLICADO À ROBÓTICA COOPERATIVA

Algoritmos Distribuídos. AD Algoritmos Básicos 1

SISTEMAS DISTRIBUÍDOS

Sistema de Posicionamento por Satélite (GPS)

SISTEMAS DISTRIBUÍDOS

Redes de Computadores

Tempo e sincronização

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

FUNDAMENTOS DE REDES DE COMPUTADORES TP1

FUNDAMENTOS DE REDES DE COMPUTADORES TP2

Nível de Rede. Modelo de Referência OSI GCAR

Redes de Computadores

Redes de Computadores

Sistema de Navegação Global por Satélite

Arquitetura de sistemas distribuídos

Open Shortest Path First (OSPF)

Modelo de Camadas. Redes de Computadores

Sistemas Distribuídos

(Broadcast - um emissor envia a mensagem para todos os nós do sistema) Multicast um emissor, um grupo de processos como receptores

4. Rede de Computador. Redes de computadores e suas infraestruturas

Data and Computer Network Endereçamento IP

Sistemas Distribuídos

Faculdade de Informática - PUCRS. Sistemas Distribuídos 2. Faculdade de Informática - PUCRS. Sistemas Distribuídos 4. Faculdade de Informática - PUCRS

Vamos fazer um pequeno experimento

Tolerância a Falhas com Máquinas de Estado

Sistemas Distribuídos Grupos

2) Em relação aos algoritmos de sincronização de relógios:

Redes de Computadores. Prof. MSc André Y. Kusumoto

Um Algoritmo Probabilista de Recuperação de Erros para Difusão Fiável

O que é o NTP e como utilizar o NTP.br

GSCT. Gerenciador de Sistemas de Carimbo do Tempo

Material baseado nos slides de: Marcos José Santana Regina Helena Carlucci Santana

Nível de Rede. Funções do nível de rede GCAR

Redes de Computadores

Comunicação de Grupo: Disfusão Confiável e Atômica

Organização e Arquitetura de Computadores I

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 2: MODELO OSI. Professor: LUIZ LEÃO

Transcrição:

Sistemas Distribuídos: Conceitos e Projeto Relógios Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.deinf.ufma.br 11 de junho de 2013 Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 1 / 39

Agenda 1 Sincronização de Relógios Físicos 2 Relógios Lógicos Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 2 / 39

Sincronização de Relógios Físicos Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 3 / 39

Serviços de Tempo Em sistemas centralizados, a representação do tempo é incrementada de forma uniforme e monotônica; Ou seja, não existe ambiguidade com relação a eventos relacionados ao tempo; Em ambientes distribuídos, cada máquina possui sua própria percepção do tempo; Sem um consenso global é difícil coordenar atividades como coleta de lixo ou validação do tempo de expiração de uma mensagem recebida. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 4 / 39

Relógios Físicos Algumas aplicações, como aplicações de tempo real, requerem que os relógios de máquinas distribuídas permaneçam sincronizados; Problemas: Como sincronizar os relógios com a hora correta do mundo real? Como sincronizar os relógios entre si? Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 5 / 39

Precisão do Relógio Cada máquina possui um temporizador que gera H interrupções por segundo (tics). Estes tics são utilizados para manter um relógio de software. Chamemos este relógio de C; Quanto o tempo for t, idealmente teríamos Cp(t) = t para todo p, onde Cp(t) é o tempo na máquina p; Infelizmente cada fabricante define uma constante definida como razão de erro tal que: 1 ρ dc/dt 1+ρ Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 6 / 39

Medindo o Tempo Desde a invenção dos relógios mecânicos no século XVII, o tempo é medido astronomicamente; Transição do sol: evento do sol atingir o ponto mais alto; Dia solar: intervalo entre duas transições do sol; Segundo solar: 1/86.400 de um dia solar. Em 1940 foi estabelecido que o período de rotação da Terra não é constante e vem diminuindo progressivamente; Acredita-se que a 300 milhões de anos atrás um ano tinha aproximadamente 400 dias; Passou-se a medir o comprimento de um dia utilizando-se muitos dias, obtendo-se a média dos mesmos antes de dividir por 86.400. O resultado é o segundo solar médio. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 7 / 39

Medindo o Tempo Com a invenção do relógio atômico em 1948 passou-se a medir o tempo de forma mais precisa e independente da Terra; 1 segundo é o tempo que o átomo de cesium 133 leva para realizar 9.192.631.770 transações; Periodicamente 50 laboratórios enviam ao BIH (Bureau International de l Heure) em Paris quantos ticks seus relógios atômicos realizaram; A média chama-se TAI (International Atomic Time): quantidade de ticks do cesium 133 desde 1 de Jan de 1958 dividido por 9.192.631.770. Como o dia solar está ficando mais longo, hoje 86.400 segundos TAI são 3 msec menor que um dia solar médio; Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 8 / 39

Medindo o Tempo Isso no futuro poderia causar o descompasso do tempo médio com o observado na natureza. Este problema já ocorreu no passado: Em 1582 o papa Gregório XIII decretou que 10 dias do calendário deveriam ser omitidos; Levou 170 anos para que países protestantes adotassem o calendário Gregoriano. Solução: o BIH introduz segundos sempre que a diferença entre o TAI e o tempo solar excede 800 msec; Este tempo é chamado UTC: Universal Coordinated Time. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 9 / 39

Fontes UTC NIST (National Institute of Standards and Technology) disponibiliza diversos métodos de acesso com precisão próxima a 1 milisegundo: Através de linhas telefônicas utilizando-se modem; Através de uma estação de rádio de ondas curtas: conhecidos a velocidade de propagação do sinal e a distância do cliente a estação, o tempo de propagação pode ser calculado e o atraso compensado. Utilização do serviço disponibilizado pelo GPS (Global Positioning System); Satélites GPS utilizam órbitas baixas não geoestacionárias (sua distância com relação a Terra varia) o que dificulta o cálculo do atraso de comunicação; Satélites geoestacionários podem ser utilizados mas o tempo de propagação do sinal é alto (aproximadamente 125 milisegundos); TVs a cabo também transmitem informações de tempo. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 10 / 39

Arquitetura de um Serviço de Tempo Distribuído Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 11 / 39

O Problema da Sincronização de Relógios Físicos Em um ambiente distribuído, cada nó possui seu próprio relógio e existe um tempo não negligenciável de comunicação; É teoricamente impossível obtermos um tempo global físico; Devemos, então, buscar uma aproximação do mesmo. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 12 / 39

Algoritmo Centralizado (Cristian 1989) Define-se um nó com receptor UTC denominado servidor de tempo (TS); Periodicamente cada nó envia uma msg a TS solicitando o tempo atual; TS responde com seu tempo corrente. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 13 / 39

Algoritmo Centralizado: 1 o Problema O tempo informado pode ser maior ou menor que o tempo local; Não se pode atualizar o relógio local abruptamente; Se o tempo informado for menor, uma mudança abrupta poderia contradizer eventos anteriores; Se for maior, poderia confundir processos esperando por um time-out. Este problema é menos sério que o anterior. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 14 / 39

Algoritmo Centralizado: 2 o Problema O tráfego da requisição e da resposta leva um determinado tempo; Seja T 0 o tempo de envio da requisição e T 1 o tempo de recebimento da resposta; O tempo de propagação da mensagem poderia ser estimado como: (T 1 T 0 )/2; Cristian sugere realizar uma série de medições e descartar aquelas que excedam um dado valor por terem sido vítimas de congestionamentos na rede. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 15 / 39

Algoritmo de Berkley Um time daemon periodicamente consulta todos os nós perguntado por sua hora local; Após coletar as respostas, ele computa a média destes tempos e envia uma mensagem a todos contendo esta média; Ao receber a msg, cada nó atualiza seu relógio local; Este método é aplicável quando não se tem um servidor UTC. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 16 / 39

Algoritmo Distribuído Cada nó periodicamente realiza um broadcast de seu tempo local e inicia um temporizador esperando mensagens dos outros nós; Tendo expirado o tempo, cada nó calcula a nova hora de acordo com uma das seguintes abordagens: Média das mensagens recebidas; Exclui as mensagens cujo valor esteja fora de um dado limite e calcula a média das msgs restantes; Descarta m valores mais altos e baixos e calcula a média das msgs restantes. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 17 / 39

Algoritmo Distribuído Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 18 / 39

Múltiplas Fontes UTC Se for necessário uma sincronização muito precisa com o UTC, pode-se equipar o sistema distribuído com múltiplas fontes UTC; Os nós contendo o tempo UTC devem se sincronizar entre si; Cada TS pode realizar o broadcast de uma faixa de tempo UTC ± IC (por ex.:, precisamente a cada minuto UTC); O intervalo de confiança IC é obtido estatisticamente; Cada TS ao receber as mensagens calcula seu novo tempo. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 19 / 39

Network Time Protocol (NTP) Largamente adotado pela Internet; Escalável através de uma organização hierárquica; No topo da estrutura estão os servidores primários que estão diretamente conectados com fontes UTC; Cada nível da hierarquia é denominado um stratum; Quanto menor o stratum de um participante, mais preciso é o seu tempo devido a sua proximidade com uma fonte primária. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 20 / 39

Arquitetura NTP Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 21 / 39

Informações NTP NTP disponibiliza aos clientes as seguintes informações relativas ao servidor primário: Clock offset: diferença entre os dois relógios. Ou seja, o quanto que o cliente deve ajustar seu relógio para permanecer sincronizado com o servidor primário; Round-trip delay entre o cliente e o servidor primário; Dispersion: reflete o erro máximo para o relógio local do cliente em relação ao relógio do servidor primário. Quanto maior o fator de dispersão, menos confiável é o tempo no cliente. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 22 / 39

Características NTP A precisão da sincronização é obtida através de técnicas estatísticas que requerem muitas comparações de informação de tempo; Tolerância a falhas é obtida através de servidores redundantes e caminhos redundantes entre eles; Segurança é obtida utilizando-se autenticação e verificação de endereço de retorno; Criptografia também pode ser utilizada; No entanto, a camada de segurança no entanto gera um delay que aumenta a imprecisão. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 23 / 39

Modos de Sincronização NTP 1 Multicast: o servidor de tempo periodicamente realiza um broadcast de seu tempo corrente. Utilizado em LANs; 2 Cliente/Servidor: o servidor aguarda requisições dos participantes no sistema; 3 Simétrico: consiste de um par de servidores trocando informações de tempo. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 24 / 39

Relógios Lógicos Relógios Lógicos Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 25 / 39

Relógios Lógicos Relógios Lógicos Em geral, podemos utilizar a sincronização de relógios físicos para determinar se um evento ocorreu antes de outro a não ser que eles tenham ocorrido muito próximos uns aos outros; Se a imprecisão no sincronismo UTC é alto ou intervalos UTC de eventos se sobrepõem, não é possível determinar a ordem de ocorrência dos eventos. Para muitas aplicações, os eventos não necessitam ser escalonados ou sincronizados em relação a um relógio real; Muitas vezes, o importante é apenas a ordem da execução de eventos; Algoritmos que permitem a sincronização de eventos desta forma são chamados de relógios lógicos. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 26 / 39

Relógios Lógicos Exemplo: Make Se o arquivo fonte input.c possui tempo 2151 e o objeto correspondente input.o 2150, make sabe que input.c foi alterado desde a criação de input.o e, portanto, deve ser recompilado; O que aconteceria em um sistema distribuído sem sincronismo de tempo? Output.c foi modificado após a criação de output.o; No entanto, seu tempo (2143) é menor. Make não o recompilaria; Perceba que o que importa para o make não é o tempo absoluto dos eventos e sim seu tempo relativo (sua ordem). Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 27 / 39

Relógios Lógicos Algoritmo de Lamport Em 1978 Lamport desenvolveu um algoritmo baseado nas observações: Se dois processos não interagem não é necessário sincronizar seus relógios já que a ausência de sincronismo não será observada; O importante não é que os processos estejam de acordo com uma hora global e sim na ordem de ocorrência dos eventos. Cada processo P i mantêm um relógio lógico C i que é sempre incrementado positivamente na ocorrência de eventos; Em um mesmo processo, se um evento a ocorre antes de b, serão atribuídos tempos tais que C(a) < C(b); Processos interagem através de operações send e receive, que são consideradas eventos; Um par send e receive de P i a P j deve possuir a propriedade C i (send) < C j (receive) já que uma mensagem não pode ser recebida antes de ser enviada. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 28 / 39

Relógios Lógicos Relação Aconteceu-Antes O relógio lógico é baseado na relação denominada aconteceu-antes; A expressão a b é lida a aconteceu antes de b e significa que todos os processos acordam que o evento a ocorreu antes do evento b; Esta relação é baseada nas regras: 1 Se a b dentro de um mesmo processo, então C(a) < C(b) 2 Se a é o evento de envio de uma mensagem de P i e b é o evento do recebimento da mensagem em P j, então Ci(a) < Cj(b) Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 29 / 39

Relógios Lógicos Implementação das Regras do Algoritmo de Lamport A regra 1 pode ser facilmente implementada já que ocorre dentro do mesmo processo; A regra 2 pode ser implementada se o processo emissor enviar na mensagem seu tempo lógico e o processo receptor atualizar seu relógio lógico tal que C j (b) = max(ts a +d,c j (b)), onde TS a é o tempo do evento de envio e d é um número positivo. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 30 / 39

Relógios Lógicos Implementação das Regras do Algoritmo de Lamport Figura: Exemplo: à esquerda o algoritmo de Lamport não foi utilizado. Na figura à direita o algoritmo de Lamport corrige os tempos lógicos dos processos. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 31 / 39

Relógios Lógicos Propriedades da Relação Aconteceu-Antes É transitiva: Se a b e b c, então a c; Define a causalidade entre dois eventos; Dois eventos, a e b, são ditos disjuntos ou concorrentes caso nem a b nem b a; Relógios lógicos de eventos concorrentes não estão relacionados um ao outro. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 32 / 39

Relógios Lógicos Exemplos de Causalidade Figura: Possuem relação de causalidade: [(a,e,c),(a,e,h)]. Eventos concorrentes: [(b,e),(f,h)] Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 33 / 39

Relógios Lógicos Ordenação Parcial de Eventos Usando as duas regras descritas anteriormente todos os eventos que possuam uma relação causal estarão ordenados por seus relógios lógicos; Isto resulta em um grafo de eventos apenas parcial; Dado dois eventos disjuntos a e b, C i (a) < C j (b) não implica que a b; Além disto é possível que C i (a) = C j (b). Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 34 / 39

Relógios Lógicos Ordenação Total de Eventos Uma ordenação total de eventos pode ser obtida caso a seguinte regra adicional seja empregada: Para todos os eventos a e b, C(a) C(b) Esta regra pode ser implementada concatenando-se ao valor do relógio lógico o número identificador do processo. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 35 / 39

Relógios Lógicos Vetor de Relógios Lógicos Mesmo com a ordenação total, não é possível responder se um evento a ocorreu antes de um evento b caso C i (a) < C j (b) já que eles podem ser concorrentes; Neste método, cada processo P i mantêm um vetor de relógios lógicos associado a cada evento; O vetor lógico associado ao evento a no processador i é denotado por: VC i (a) = [TS 1,TS 2,...,C i (a),...,ts n ] onde: n é a quantidade de processos cooperantes C i (a) é o tempo do relógio lógico do evento a em P i e é também representado por TS i TS k (para todo k = 1...n, exceto i) é a melhor estimativa do tempo do relógio lógico em P k. Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 36 / 39

Relógios Lógicos Implementação Todos os vetores de relógios são inicializados com zero no início da execução do processo; O relógio lógico dentro de um processo é incrementado da mesma forma da regra 1 utilizada em relógios simples; A regra 2 é modificada da seguinte forma: Seja a o evento de envio de uma mensagem m de P i para P j e b o evento de recebimento da mesma em P j P j atualiza seu vetor VC j (b) tal que TS k (b) = max(ts k (a),ts k (b)) Ou seja, P j atualiza as entradas do vetor para todo k = 1...n com o maior valor entre TS a e TS b além de incrementar seu relógio lógico Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 37 / 39

Relógios Lógicos Consequências É óbvio que se um evento a em P i aconteceu antes do evento b em P j então VC i (a) < VC j (b), o que significa que TS k (a) TS k (b) para todo k e também TS j (a) < TS j (b) já que existe um caminho causal entre o evento a e o evento b; Para eventos disjuntos, não é possível ter VC i (a) < VC j (b) a não ser que a b, já que o processo P i, que contêm o evento a, certamente possui o valor mais atual de seu próprio tempo que qualquer estimativa de outro processo. Ou seja, C i (a) é maior ou igual a TS i em outros vetores; De forma similar, VC j (b) < VC i (a) somente ocorrerá caso b a. Portanto, podemos concluir que é possível dizer se dois eventos possuem relação causal comparando o valor de seus vetores de relógios lógicos: Se VC i (a) < VC j (b) Então a b Senão a e b são concorrentes Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 38 / 39

Relógios Lógicos Vetor de Relógios Lógicos: Exemplo Eventos (a, e, c) possuem relação causal e satisfazem VC 1 (a) < VC 2 (e) < VC 3 (h) Eventos disjuntos (b, f) jamais podem satisfazer VC 1 (b) < VC 2 (f) ou VC 2 (f) < VC 1 (b) Francisco Silva (UFMA/LSD) SD: Conceitos e Projeto 11 de junho de 2013 39 / 39