TIME, CLOCK’S and EVENTS Lamport 1978 por João Paulo Ribeiro Mário Luís Guimarães Introdução > O conceito do TEMPO é fundamental no nosso modo de viver. > É derivado dum conceito mais básico relativo à ordem em que os acontecimentos ocorrem. > Num Sistema Distribuído tem-se: - Vários processos separados espacialmente; - Comunicam por troca de mensagens; - Mensagens são eventos; - Mensagens podem gerar outros eventos. Novembro 1998 Sistemas Operativos Distribuidos 2 Introdução (cont.) > Num SD examina-se a ordem de ocorrência dos eventos. > Definição de ORDEM PARCIAL. > Algoritmo distribuído para ordenação lógica dos eventos. > ORDEM TOTAL dos eventos. > Problemática da ordenação total - solução: - RELÓGIOS FÍSICOS e algoritmo de sincronização. Novembro 1998 Sistemas Operativos Distribuidos 3 Relação de Ordem Parcial > Relação ACONTECE-ANTES (HAPPENS-BEFORE ): - Relação a b : a acontece-antes de b - Verifica as seguintes condições: - Se a e b são eventos dum mesmo processo e a ocorre antes de b, então a b é verdadeiro; - Se a é o envio duma mensagem por um processo e b é a recepção da mesma mensagem por outro processo, então a b é verdadeira; Novembro 1998 Sistemas Operativos Distribuidos 4 Propriedades da relação Ordem Parcial > TRANSITIVIDADE: - Se a b e b c, então a c > CONCORRÊNCIA DE EVENTOS: - Se os eventos a e b acontecem em processos que não se comunicam, então a b e b a não são verdade; - Eventos a e b são ditos concorrentes. > A relação “ACONTECE-ANTES” implementa a única ordem parcial de eventos. Novembro 1998 Sistemas Operativos Distribuidos 5 Exemplo: eventos entre P, Q e R Processo P P4 Processo Q Q7 Processo R R4 Q6 P3 Q5 R3 Q4 P2 Q3 R2 Q2 P1 Novembro 1998 Q1 Sistemas Operativos Distribuidos R1 6 Da Ordem Parcial à Ordem Total > “RELÓGIOS” LÓGICOS: - Define-se Ci como relógio lógico do processo Pi - Ci(a) é a leitura de Ci quando ocorre a em Pi - Define-se C(a) = Ci(a) se a for evento de Pi > Condição do Relógio Lógico C(evento): - Se a b então C(a) < C(b) > C(evento) é sempre incrementado entre eventos a e b : a b Novembro 1998 Sistemas Operativos Distribuidos 7 Resultados da Condição de Relógio > C1: Se a e b ocorrem em Pi e a b, então Ci(a) < Ci(b) > C2: Se a e b ocorrem em Pi e b é a sua recepção em Pj, então Ci(a) < Cj(b) > R1: Cada processo Pi incrementa Ci entre dois eventos consecutivos; > R2.a: Evento a é envio da msg. m por Pi; m contém Tm = Ci(a) R2.b: Quando da recepção de m , Pj altera Cj para Cj > Tm > FICA VERIFICADA A CONDIÇÃO DE RELÓGIO < Novembro 1998 Sistemas Operativos Distribuidos 8 Exemplo: relógios lógicos de Lamport PROCESSO PROCESSO PROCESSO 0 1 2 0 0 0 6 8 10 12 16 20 18 24 30 24 32 40 30 40 50 36 48 60 A B C 42 61 70 48 69 80 70 77 90 76 85 100 D Novembro 1998 Sistemas Operativos Distribuidos 9 Ordem Total • Com o algoritmo anterior obtem-se ordem total entre eventos, a => b, sse: Ci(a) < Cj(b) ou Ci(a) = Cj(b) e Pi Pj (precedência entre processos) • No entanto, ordem total ainda não é solução: Exemplo: Maria envia msga da máquina A; Maria telefona a Manuel para este enviar msgb de B; Apesar de msga telef. msgb, o sistema pode ordenar em primeiro lugar msgb e só depois msga (depende de C(evento)), pois telef. é exterior ao sistema. Novembro 1998 Sistemas Operativos Distribuidos 10 Solução para o problema •Soluções: Maria e Manuel estampilham manualmente as mensagens; Sistema de relógios que verifique sempre a “Condição Relógio” anterior: Se msga msgb então C(a) < C(b) • Vamos optar pela segunda solução ! Novembro 1998 Sistemas Operativos Distribuidos 11 Relógios Físicos • Define-se Ci(t) como o valor do relógio físico de Pi no instante real t; • Propriedades: dCi t Exactidão (P1): dt 1 k (k 10-6 rel. de cristais), é a medida do desvio dos relógios físicos em relação a t; Precisão (P2): i, j : Ci t C j t é a medida máxima do afastamento entre os relógios do sistema. • É necessário algoritmo distribuído para garantir: – Condição de Relógio (a b então C(a) < C(b)); – Precisão (P2). Novembro 1998 Sistemas Operativos Distribuidos 12 Algoritmo de sincronização • é a duração mínima no envio de uma msg entre dois processos Pi e Pj, e é a variação máxima dessa duração • cada relógio Ci avança ao ritmo de P1 • quando é recebida msga com estamp. Ta=Ci(ta), no instante tb em Pj, Cj(tb) = máx(Cj(tb), Ta + ) • admitindo um grafo ligando os vários processos, o diâmetro d desse grafo é o número mínimo de arcos ligando quaisquer dois processos. • então, se com período » + fôr enviada msg para todos os arcos, Cond. Rel. e P2 são satisfeitas com d.(2k + ) Novembro 1998 Sistemas Operativos Distribuidos 13 Conclusões • Importância de ordenação de eventos num sistema distribuído; • Ordenação “happened-before” define ordem parcial única entre eventos; • Ordem total depende de C(evento), ou seja, dos relógios lógicos; • Ordem total pode resultar em ordenação incoerente com os eventos observados; • Relógios físicos resolvem o problema anterior; • Algoritmo para realização e sincronização dos relógios físicos; Novembro 1998 Sistemas Operativos Distribuidos 14 Processo P P4 Processo Q Q7 Processo R R4 Q6 P3 Q5 R3 Q4 P2 Q3 R2 Q2 P1 Novembro 1998 Q1 Sistemas Operativos Distribuidos R1 15