Sd05 (si) relógios e sincronização

778 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
778
No SlideShare
0
A partir de incorporações
0
Número de incorporações
12
Ações
Compartilhamentos
0
Downloads
28
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Sd05 (si) relógios e sincronização

  1. 1. Sistemas Distribuídos IIParte 02Relógios e Sincronização
  2. 2. O Problema daSincronia de Tempo• Não há garantias de que dois ou mais processoscooperantes interpretem a contagem detempo igualmente– Cada processo pode estar em uma máquinadiferente, o que significa que cada um pode estarusando um relógio físico diferente– Não há como garantir que os dois relógios estãoexatamente sincronizados (na verdade, isso équase impossível)
  3. 3. O Problema daSincronia de Tempo• Que problemas isso pode gerar?– Não há como garantir a troca de mensagenssíncrona• A execução de eventos em determinada de sequênciapode ser comprometida– Não há como garantir a exclusão mútua• A alocação de recursos compartilhados pode falhar– O monitoramento de eventos se turna maiscomplexo• Não há como determinar quando exatamente umdeterminado evento ocorreu, o que podecomprometer a reação desejada
  4. 4. O Problema daSincronia de Tempo (cont.)• Como solucionar o problema?–Opção 1: Solução Centralizada• Funcionamento: Todos os processos envolvidosem determinada atividade usam como referênciauma única fonte de tempo (um relógio único, umprocesso,...)• Vantagem:– A garantia de que todos estão obtendo a informaçãode tempo no mesmo lugar, o que evita informaçõesinconsistentes
  5. 5. O Problema daSincronia de Tempo (cont.)• Como solucionar o problema?–Opção 1: Solução Centralizada• Problemas:– A fonte única de tempo também é um ponto único defalha, ou seja, diante de uma pane na fonte de tempotodos os processos são comprometidos– Dependendo da quantidade de processos envolvidos, afonte de tempo pode se sobrecarregar com aquantidade de mensagens de/para ela– As mensagens com informações de tempo podemsofrer atrasos imprevisíveis durante seu tráfego narede, comprometendo a exatidão
  6. 6. O Problema daSincronia de Tempo (cont.)• Como solucionar o problema? (cont.)– Opção 2: Solução Distribuída• Funcionamento:• Vários processos se encarregam de regular asinformações de tempo, comparando e fazendo ajustesentre si
  7. 7. O Problema daSincronia de Tempo (cont.)• Como solucionar o problema? (cont.)– Opção 2: Solução Distribuída• Vantagem:– Não há um ponto único de falha. A queda de um únicoprocesso não interfere na sincronização do tempo entre osdemais– Maior disponibilidade da informação de tempo, já que não háuma fonte única• Problemas:– Maior complexidade para implementar a solução– Quantidade variável de mensagens (nem sempre previsível)
  8. 8. O Problema daSincronia de Tempo (cont.)• Como solucionar o problema? (cont.)– A opção distribuída (opção 2) é a mais adequadapara ambientes distribuídos porque:• As informações relevantes ao processo estão dispersaspor várias máquinas• Cada processo deve tomar decisões baseado somenteem informações locais• A existência de um ponto único de falha deve serevitada sempre que for póssível• Não existe um relógio único para todas as máquinas
  9. 9. Relógios Lógicos• Em algumas tarefas distribuídas, o tempo realnão é importante.– O foco do controle de tempo é voltado para acorreta sequência de eventos que deve acontecer• A informação de tempo neste caso é usadacomo um contador de eventos, que determinao que deve acontecer a cada momento
  10. 10. Relógios Lógicos• A solução de Lamport– Em 1978, Leslie Lamport publicou uma proposta deordenação de eventos baseada em tempo, onde:– Não há tempo absoluto – toda a informação detempo é relativa entre os procesos que trocammensagens– Se dois processos não interagem entre si, não hánecessidade de sincronização de tempo entre eles– Na maioria das vezes é necessário que os processosconcordem com a informação de tempo entre eles,mas este tempo não precisa ser real
  11. 11. Algoritmo de Lamport• Funcionamento do algoritmo:• Cada processo cooperante tem seu próprio relógio lógico (independentedo tempo real), que serve como contador de eventos– Cada evento ocorrido incrementa uma unidade de tempo nocontador• Cada mensagem trocada entre dois processos cooperantes contém umainformação de tempo (relógio lógico) fornecida pelo emissor damensagem• O processo receptor compara a informação de tempo contida namensagem com seu próprio relógio lógico:– Se seu relógio lógico possuir um valor maior que o tempo contido namensagem, o relógio permanece com o mesmo valor– Se seu relógio lógico possuir um valor menor ou igual que o tempocontido na mensagem, o relógio é ajustado e passa a ter o valor damensagem mais um
  12. 12. Algoritmo de Lamport (exemplo)• Imagine três processos (P1, P2 e P3) localizados em máquinasdiferentes que iniciam algum tipo de interação sincronizada– Os 3 processos iniciam seus relógios lógicos, mas cadaclock físico oscila em frequencias diferentes• Suponha:– O clock lógico de P1 varia de 6 em 6 unidades– O clock lógico de P2 varia de 8 em 8 unidades– O clock lógico de P3 varia de 10 em 10 unidades• No primeiro instante, todos os relógios estão zerados• No segundo instante, os relógios lógicos já não estão iguais (P1=6,P2=8 e P3=10)• Esta variação aumenta conforma os instantes se passam(exemplo: no instante 5  P1=24, P2=32 e P3=40)
  13. 13. Algoritmo de Lamport (exemplo)– Cada mensagem trocada entre os processos precisa contero valor que o relógio físico de seu emissor para que oreceptor faça os ajustes necessários• No instante 2 a mensagem A é enviada de P1 para P2• No instante 4 a mensagem B é enviada de P2 para P3• No instante 7 a mensagem C é enviada de P3 para P2• No instante 9 a mensagem D é enviada de P2 para P1– Considere que cada mensagem enviada chega a seudestino no instante seguinte ao que foi enviada• As mensagens A e B chegam a seus destinos sem causar impacto,pois o relógio lógico de cada receptor contém um valor maior queaquele que consta em cada mensagem• As mensagens C e D obrigam seus receptores a efetuar um ajustenos relógios lógicos para garantir a correta sincronia dos eventos
  14. 14. Algoritmo de Lamport (exemplo)Instante Relógio P1 Relógio P2 Relógio P31 0 0 02 6 8 103 12 16 204 18 24 305 24 32 406 30 40 507 36 48 608 42 61 709 48 69 8010 70 77 9011 76 85 100Mensagem A (6)Mensagem B (24)Mensagem C (60)Mensagem D (69)Não necessitade ajusteno relógioNecessitade ajusteno relógio
  15. 15. Problema noAlgoritmo de Lamport• Considere:– R(e1) o valor do relógio lógico para o evento “e1”– R(e2) o valor do relógio lógico para o evento “e2”– A solução porposta por Lamport não garante que se R(e1) < R(e2)então o evento “e1” acontece antes que o evento “e2”• Exemplo:– Se compararmos os valores de relógio em cada mensgaem, temos:• Msg-A (1) < Msg-B(4) então Msg-A ocorreu antes de Msg-B (correto)• Msg-C (3) < Msg-B(4) então Msg-C ocorreu antes de Msg-B (incorreto)Processo P1 Processo P2 Processo P30 0 01 3 22 6 43 9 64 12 8Msg A (1)Msg B (4)Msg C (3)
  16. 16. Solução Vetorial (Mattern e Fidge)• Solução proposta por Mattern e Fidge:– O relógio lógico passa a ser um vetor contador de eventos– Se existem N processos cooperando, o vetor terá N posiçõesinteiras, onde cada posição corresponde a um contador deeventos– Cada processo terá um vetor para si– Cada mensagem enviada contém a versão atualizada do vetordo emissor• Esta solução é muito usada em:– Verificação de consistência de estados em SD– Controle de checkpoints– Recuperação de erros– Rollbacks
  17. 17. Solução Vetorial (Mattern e Fidge)• Funcionamento– Antes de cada evento em um processo, este incrementa mais 1 no valor desua posição no vetor– Sempre que uma mensagem é enviada, o processo inclui uma cópia de seuvetor na mensagem– No recebimento de uma mensagem, o processo atualiza o seu vetor a partirdo vetor da mensagem.• Ao receber uma mensagem, o processo faz uma operação de integração(merge) entre o vetor recebido e seu próprio vetor local, atualizando osdados deste último– Sua posição no vetor assume o valor máximo existente no vetor damensagem– O valor do contador correspondente ao emissor é incrementado emuma unidade caso seu valor local já não seja maior que o recebido;– Uma vez atualizado o vetor local, é possível determinar a ordem dos eventoscomparando-se o valor de cada posição dos vetores em cada evento
  18. 18. Solução Vetorial (Exemplo)
  19. 19. Solução Vetorial• Desvantagem da solução:– Ocupa-se mais espaço de armazenamento e carga útil damensagem• Uma solução derivada dos relógios vetoriais:– “Relógios de matriz”• Além de seu próprio vetor, cada processo mantém estimativas dotempo vetorial dos outros processos
  20. 20. Relógios Físicos• O algoritmo de Lamport e as demais soluções de relógioslógicos se preocupam apenas com a ordenação de eventos– Os instantes de tempo associados a cada evento não sãonecessariamente próximos do tempo em que os eventos realmenteaconteceram• Em alguns sistemas o conhecimento do instante de temporeal é muito importante (exemplo: sistemas de tempo real)– Para este tipo de sistema são necessários clocks físicos externos• Em certos casos, é desejável a existência de mais de um clockexterno, para garantir eficiência e redundância– Problemas:• Como sincronizá-los com o tempo real?• Como sincronizar esses clocks entre si?
  21. 21. Evolução da Marcação de Tempo• Primeiras soluções para marcação detempo– Relógios de sol, estações do ano, ...– Dia solar: intervalo decorrido entre duaspassagens consecutivas do Sol emdeterminado ponto do céu• Século XVII: primeiros relógiosmecânicos– Quanto maior a qualidade do processo defabricação, mais preciso o processo demarcação do tempo– Ainda era muito difícil garantir uma sincroniade tempo eficiente
  22. 22. Evolução da Marcação de Tempo• Década de 1940: Ajustes paracompensar imprecisões– Foram feitos ajustes artificiais na marcaçãooficial de tempo para compensar imprecisõesresultantes de fenômenos naturais queinfluenciam diretamente nas fontes detempo utilizadas• Descobriu-se que a rotação da terra nãoé constante, devido às marés e aatmosfera (desaceleram a rotação daTerra)• A duração do ano (em dias) diminuiu (osdias ficaram mais longos)• O turbulências no núcleo do planetainfluenciam no comprimento do dia
  23. 23. Evolução da Marcação de Tempo• Em 1948: invenção do relógioatômico– Contagem de segundos a partirdas transições de elétrons deum átomo de Césio 133• É uma medida mais precisae constante, que não sofreinfluências externas
  24. 24. Evolução da Marcação de Tempo• Atualmente:– TAI (Tempo Atômico Internacional)• Média de tempo dos relógios atômicos• É mais preciso, porém ainda é necessário ajustá-lo a contagem detempo solar adotada no dia-a-dia• Ajuste do TAI (Tempo Atômico Internacional)– UTC (Tempo Universal Coordenado)• É o TAI ajustado ao tempo solar• O ajuste é feito inserindo-se segundos “bissextos”• Vem gradativamente substituindo o uso do GMT• Acesso: NIST (rádio WWV) e GEOS (Satélite)
  25. 25. Evolução da Marcação de Tempo• Relógio Atômico Brasileiro (USP)
  26. 26. Evolução da Marcação de Tempo• NIST– National Institute of Standards and Technology
  27. 27. Evolução da Marcação de Tempo• GEOS
  28. 28. Algoritmo de Cristian• Funcionamento:• Usa um servidor de tempo, que é um computador equipado com receptorUTC• As demais máquinas enviam mensagens para o servidor de tempoperguntando pelo tempo corrente• O servidor de tempo responde o mais rápido possível, com umamensagem contendo o tempo UTC corrente• Cada máquina, ao obter a resposta, ajusta seu clock• O servidor de tempo é PASSIVO. O ajuste depende da inciativa das demaismáquinas• Problemas:• O tempo nunca pode andar para trás (os ajustes são sempre progressivos)• A consulta ao servidor de tempo gasta um tempo não-nulo (o retardopode vir a ser grande)
  29. 29. Algoritmo de Cristian (cont.)• Mais um problema:– É uma solução altamente centralizada• Para minimizar a centralização, pode-se adotar osseguintes caminhos:– Ter vários servidores com receptor UTC– As demais máquinas passam a solicitar a hora por meio de mensagensmulticast• Esta solução é um algorítmo probabilístico, ou seja:– Só se obtém uma sincronização aceitável se o tempo de ida e voltadas mensagens forem curtos o suficiente se comparados a precisãodesejada
  30. 30. Algoritmo de Cristian (cont.)• Solução para os ajustes sempre progressivos• A mudança no clock deve ser feita de forma gradativa esempre avançando o relógio• Se o ajuste é de 10 ms, basta adicionar 9 ms paraatrazar ou 11 ms para adiantar
  31. 31. Algoritmo de Cristian (cont.)• Solução para o retardo na mensagem• Tentar medir (estimativa) o tempo de transmissãoT0 .................. tempo de envio da requisiçãoT1 .................. recebimento da resposta(T1 - T0)/2 ....... tempo aproximado de propagação da mensagemI .................... tempo de tratamento da interrupção(T1 - T0 - I)/2 ... estimativa ainda mais precisa• Outra solução:– Realizar várias medidas e calcular a médias de tempo(descartando valores fora de um certo limite)
  32. 32. Algoritmo de Berkeley• Funcionamento• O servidor de tempo é uma entidade ATIVA, que consulta periodicamente cadauma das máquinas do sistema para saber o tempo corrente em cada uma delas• Baseado nas respostas obtidas:– Calcula o tempo médio e o ajuste que cada máquina terá quefazer– Informa às demais máquinas para adiantar ou atrasar seusclocks, tornando-se iguais ao tempo médio calculado– Não informa a hora corrente e sim o ajuste a ser feito– O cálculo que o servidor faz também leva em conta aexistência de respostas “absurdas” (muito fora da média dasdemais máquinas).– Estas repostas “absurdas” são descartadas do cáculo de ajustepara evitar um desvio indesejado dos resultados
  33. 33. Algoritmo de Berkeley• A precisão deste algoritmo também dependedo tempo máximo gasto pelas mensagens deida e volta• Indicado para:– Quando nenhuma das máquinas tem um receptorUTC– A necessidade de precisão no ambiente épequena
  34. 34. Algoritmo de Berkeley (cont.)• Problemas:– O ajuste do servidor de tempo deve ser feitoperiodicamente por um operador (de formamanual)– É uma solução altamente centralizada• Para contornar esta fragilidade, ao se perceber que oservidor de tempo falhou, elege-se outro servidor parao seu lugar• O problema agora passa a ser como determinar que oservidor de tempo falhou
  35. 35. Network Time Protocol• Os algorítmos de Cristian e Berkeley , emboraeficientes, se dedicam mais a redes pequenase intranets– Em ambientes com uma grande quantidade demáquinas, como a Internet, é quase impossívelgarantir o bom funcionamento destas duassoluções• Pela natureza assíncrona das operaçõesdesempenhadas na web• Pela ausência de garantia de entrega de mensagens emum tempo razoável
  36. 36. Network Time Protocol (cont.)• O NTP foi projetado como um serviço e protocolopara distribuir informações de tempo pela Internet• Objetivos:– Ser um serviço para clientes internet se sincronizarempelo UTC, superando atrasos e perdas de mensagens• Isso é feito por meio de técnicas estatísticas defiltragem da informação– Fornecer um serviço confiável que sobreviva a longasperdas de conectividade• Usando servidores e rotas redundantes para circulaçãodas mensagens
  37. 37. Network Time Protocol (cont.)• Características:– Permite sincronização razoavelmente frequentedos clientes• Para compensar falhas originadas naquantidade de clientes e servidores interagindo– Fornece proteção ao serviço de tempo contrainterferências acidentais ou intencionais• Autenticação, validação de mensagens
  38. 38. Network Time Protocol (cont.)• Funcionamento:– O NTP é formado por uma rede de servidores nainternet divididos pela seguinte hierarquia:• Servidores Primários– São máquinas conectadas diretamente a uma fonte de tempoUTC• Servidores Secundários– Servidores que se sincronizam com os servidores primários• Demais servidores– Organizados em uma estrutura de árvore– Cada “galho” se sincroniza com sua “raiz”– A “árvore” é composta de sub-redes de sincronização
  39. 39. Network Time Protocol (cont.)• Funcionamento:– Cada nível da árvore é chamado de “stratum”• Stratum 1: servidores primários (raiz)• Stratum 2: servidores secundários• Stratum 3: outros servidores• Stratum 4: mais servidores• e assim por diante...– Quanto mais alto o número do stratum, a tendência é quea precisão seja menor neste nível– É possível realizar alterações na hierarquia para superarindisponibilidade de serviço. Por exemplo:• “Promover” máquinas mapa um stratum mais alto• Deslocar “galhos” inteiros para se sincronizarem com outros servidores
  40. 40. Network Time Protocol (cont.)• Como a sincronia é feita?– As mensagens são transmitidas via protocolo UDP– A mensagem pode ser enviada de 3 modos:• Modo 1: Multicast– Ideal para redes locais de alta velocidade– Servidores de tempo enviam mensagem e as demaismáquinas ajustam seus relógios– Possui uma margem de erro grande, que resulta embaixa precisão
  41. 41. Network Time Protocol (cont.)• Modo 2: RPC– Usa a solução de Cristian para sincronizar– É mais preciso que a opção de multicast• Modo 3: Simétrico– Adotado em máquinas cujo stratum é baixo– É a opção mais precisa– Os servidores trocam mesagens de tempo entre si eas informações são armazenadas para uso posteriorvisando melhorar cada vez mais a sincronia

×