MC714 - Sistemas Distribuídos
Aula de Hoje Aula Passada Nomeação Aula de Hoje Introdução ao problema de sincronização Relógios Físicos Algoritmos de Sincronização Sincronização de Relógios em Redes sem Fio
Sincronização Comunicação é importante, mas não é tudo! Como os processos cooperam e sincronizam uns com os outros? Vários processos NÃO acessem simultaneamente um recurso compartilhado como uma impressora, mas cooperem para garantir um acesso temporário exclusivo Vários processos às vezes podem concordar com a ordenação dos eventos
Sincronização Sincronização em relação ao tempo Relógios Físicos e Lógicos Sincronização em relação ao compartilhamento de recursos Exclusão Mútua Sincronização em relação ao coordenador de um grupo de processos Algoritmos de Eleição de Lider
Sincronização de Relógios Em um sistema centralizado, o tempo não é ambíguo Se A pergunta a hora e logo depois B pergunta a hora, tempo A <= tempo B! Em um SD, conseguir acordo nos horários não é trivial! Implicações da falta de um horário global no programa make Quando cada máquina tem seu próprio relógio, um evento que ocorreu após outro evento pode receber um horário anterior
Sincronização de Relógios 1. Em Horário um que sistema o output.ocentralizado, foi criado 2144 o tempo não é ambíguo 2. Logo depois o output.c foi modificado, mas recebeu o horário 2143 Se A pergunta a hora e logo depois B pergunta a hora, tempo A <= tempo B! O relógio da máquina que roda o editor estava atrasado 3. Make não chamará o compilador 4. O programa binário executável resultante conterá uma mistura de arquivos-objetos do fonte antigo e dos fonte novos Em um SD, conseguir acordo nos horários não é trivial! Implicações da falta de um horário global no programa make 5. Provavelmente falhará... Quando cada máquina tem seu próprio relógio, um evento que ocorreu após outro evento pode receber um horário anterior
Sincronização de Relógios É possível sincronizar todos os relógios em um sistema distribuído?
Relógios Físicos Nos computadores, é possível programar um temporizador para gerar uma interrupção 60 vezes por segundo ou a qualquer outra frequência Cada interrupção é denominada ciclo de relógio A cada ciclo de relógio, o procedimento do serviço de interrupção soma uma unidade a hora armazenada na memória Com um único computador e um único relógio Não há problema se o relógio estiver um pouco defasado Todos os processos na máquina usam o mesmo relógio, internamente estão consistentes!
Relógios Físicos Com a introdução de múltiplas CPUs, cada uma com o seu relógio diferença nos valores dos horários! Clock skew diferença entre a leitura simultânea de dois relógios Programas que esperam que o horário associado com um arquivo, objeto, processo ou uma mensagem esteja correto e seja independente da máquina na qual foi gerado podem falhar!
Medição do tempo Século XVII: O tempo tem sido medido por meios astronômicos O segundo solar é definido como 1/86.400 de um dia solar
Medição do tempo Século XVII: O tempo tem sido medido por meios astronômicos O segundo solar é definido como 1/86.400 de um dia solar Na década de 1940 foi estabelecido que o período da rotação da terra não é constante
Medição do tempo Século XVII: O tempo tem sido medido por meios astronômicos O segundo solar é definido como 1/86.400 de um dia solar Na década de 1940 foi estabelecido que o período da rotação da terra não é constante Em 1948: invenção do relógio atômico Tornou-se possível medir o tempo com mais exatidão Hoje, 86.400 segundos TAI (tempo atômico internacional) equivalem 3ms a menos que um dia solar médio
Medição do tempo Século XVII: O tempo tem sido medido por meios astronômicos O segundo solar é definido como 1/86.400 de um dia solar Na década de 1940 foi estabelecido que o período da rotação da terra não é constante Em 1948: invenção do relógio atômico Tornou-se possível medir o tempo com mais exatidão Hoje, 86.400 segundos TAI (tempo atômico internacional) equivalem 3ms a menos que um dia solar médio Solução: hora coordenada universal adicionar um segundo à hora do relógio quando diferença > 800ms
Relógio Físicos - GPS GPS usa 29 satélites, cada um circulando em uma órbita a ~20,000Km de altura Cada satélite tem até quatro relógios atômicos que são calibrados periodicamente por estações espaciais na terra
Relógio Físicos - GPS GPS usa 29 satélites, cada um circulando em uma órbita a ~20,000Km de altura Um satélite transmite sua posição em broadcast e anexa marcas de tempo a cada msg, informando a hora local
Relógio Físicos - GPS GPS usa 29 satélites, cada um circulando em uma órbita a ~20,000Km de altura Essa transmissão broadcast permite que todo receptor na Terra calcule com uma certa precisão sua própria posição (usando três satélites)
Relógio Físicos - GPS Ao se calcular a posição/tempo, usando GPS, dois fatos importantes real devem ser considerados: Leva um certo tempo para que os dados sobre a posição de um satélite cheguem ao receptor De modo gral, o relógio do receptor não está em sincronia com o de um satélite De modo geral, calcular uma posição exata não é trivial! No caso do tempo, receptores GPS têm um erro declarado de 20 a 35 nanossegundos.
Sincronização de Relógios Se uma máquina tiver um receptor WWV, meta é manter todas as outras máquinas sincronizadas com ela WWV é o prefixo de uma estação de rádio de ondas curtas operada por National Institute of Standard Time para fornecer a hora coordenada universal (UTC) A WWV transmite um pulso curto no início de cada segundo UTC Se nenhuma máquina tiver receptores WWV, cada uma monitora seu próprio horário, e o objetivo é manter todas as máquinas o mais junto possível
Sincronização de Relógios Vários algoritmos foram propostos para manter um SD sincronizado Todos os algoritmos têm o mesmo modelo Cada máquina deve ter um temporizador que provoca uma interrupção H vezes por segundo. Quando o temporizador esgota o tempo fixado, o manipulador de interrupção soma 1 a um relógio de software que monitora o número de ciclos do relógio Relógios mantém número de tics que ocorreram desde um instante pré-determinado
Sincronização de Relógios 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 Em outras palavras, seria perfeito que C'p(t) = dc/dt = 1 C p (t) é a frequência do relógio de p C p (t) 1 é a defasagem do relógio de p Magnitude da diferença entre relógio de p e o relógio perfeito C p (t) t é o deslocamento em relação a uma hora especifica
Sincronização de Relógios Como fazer a sincronização periódica entre relógios?
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 Sincronização de relógios em redes sem Fio Tempo exato não importa!! Relógios Lógicos Algoritmo de Lamport e Relógios vetoriais
Algoritmo I Cristian (1989) Consulta a servidores de tempo equipados com um receptor WWV ou um relógio de alta precisão Utilizável em sistemas assíncronos onde os tempos de RTT são menores que a precisão desejada Problema: Atrasos de mensagens farão com que a hora fornecida esteja desatualizada Solução: Achar boas estimativas para os atrasos entre as máquinas (delay)
Algoritmo I Cristian (1989) Obtenção da hora corrente por meio de um servidor de tempo 1. Computador A consulta a hora no computador B (requisição) 2. Computador B inclui na resposta o valor do seu relógio T3 e T2 3. Computador A registra a hora da chegada da resposta T4 4. Supondo atraso aproximadamente igual em ambas as direções: A pode estimar seu deslocamento em relação a B como
Algoritmo I Cristian (1989) Se o relógio de A estiver adiantado (θ < 0), significa que A deve atrasar o seu relógio Alteração deve ser feita gradativamente Se cada interrupção somaria 10 ms a hora, para atrasar, a rotina de interrupção soma apenas 9 ms, até que a correção tenha sido feita O mesmo mecanismo pode ser usado caso o relógio de A esteja atrasado (soma 11ms a cada interrupção)
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 Sincronização de relógios em redes sem Fio Tempo exato não importa!! Relógios Lógicos Algoritmo de Lamport e Relógios vetoriais
Algoritmo II Berkeley Algoritmo usado para a sincronização interna de um grupo de computadores Servidor de tempo é ativo (master) pergunta a hora das máquinas (slaves) de tempos em tempos 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 aos slaves o AJUSTE a ser feito no relógio Caso o master falhe, um novo computador master é eleito
Algoritmo II Berkeley Adequado para um sistema sem um receptor WWV Relógio do daemon ajustado manualmente de tempos em tempos
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 Sincronização de relógios em redes sem Fio Tempo exato não importa!! Relógios Lógicos Algoritmo de Lamport e Relógios vetoriais
Sincronização em redes sem fio Uma importante vantagem dos SDs mais tradicionais Servidores de tempo com facilidade e eficiência Disseminação de informações relativamente simples Essas premissas deixam de ser validas em redes sem fio, em particular, redes de sensores sem fio Restrição de recursos Roteamento de múltiplos saltos (caro) Restrições energéticas otimizar os algoritmos Resultaram no projeto de algoritmos de sincronização de relógios muito diferentes para as redes sem fio
Redes de Sensores sem Fio Tipicamente possuem um grande número de nós sensores 31
Redes de Sensores sem Fio Hardware de baixo custo e com capacidades limitadas - Processamento, Comunicação e Energia 32
Redes de Sensores sem Fio Aplicação onde o uso de fios não seja possível ou viável - Estrutura de prédios, interior de máquinas, florestas, vulcões, campo de batalha, rios e etc. 33
Redes de Sensores sem Fio Posição dos nós sensores não precisa ser necessariamente prédeterminada 34
Redes de Sensores sem Fio Contém um ou mais Estações Base (Sink) - Maiores capacidades de hardware e comunicação Sink node: (satellite, cellular) 35
Redes de Sensores sem Fio Esses nós sensores auto organizam-se em uma rede sem fio 36
Redes de Sensores sem Fio Tipicamente, uma árvore é criada para entregar os dados coletados no ambiente monitorado para o nó central Sink node: (satellite, cellular) 37
Aplicações de RSSFs Aplicações ambientais: 38
Aplicações de RSSFs Aplicações ambientais: - temperatura, pressão e umidade. Resolução maior do que imagens de satélite. 39
Aplicações de RSSFs Aplicações ambientais: - Queimadas 40
Aplicações de RSSFs Aplicações ambientais: - monitoramento de áreas, detecção de invasão 41
Aplicações de RSSFs Aplicações ambientais: - monitoramento de flora e fauna - combinado com os dados ambientais (o comportamento) 42
Aplicações de RSSFs Aplicações ambientais: Monitoração de Rios Urbanos 43
Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 44
Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 45
Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 46
Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 47
Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 48
Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 49
Aplicações de RSSFs Outras aplicações - Militar - Situações de Emergência - Medicina - Trânsito - Plantações - Infraestruturas - Exploração espacial 50
Teste 05 Leia os três artigos e descreva as vantagens e desvantagens de cada solução Flooding Time Syncronization Protocol -- 2004 Time Syncronization based on Slow-Flooding in WSNs -- 2014 An Energy Efficient joint Localization and Synchronization Solution for WSNs using Unmanned Aerial Vehicle 2015