SlideShare una empresa de Scribd logo
1 de 30
SISTEMAS
DISTRIBUÍDOS
TEMPO, RELÓGIO E
SINCRONIZAÇÃO DE TEMPO
ARTHUR EMANUEL DE OLIVEIRA
CAROSIA
1
ROTEIRO
Introdução
Relógios, eventos e estados de processo
Sincronização de Tempo em Sistemas Distribuídos
2
ROTEIRO
Introdução
Relógios, eventos e estados de processo
Sincronização de Tempo em Sistemas Distribuídos
3
INTRODUÇÃO
• Em sistemas centralizados o tempo não é ambíguo
• Núcleo do SO informa tempo aos processos
• P1 solicita hora
• P2 solicita hora depois de P1
• tempo(P2) >= tempo(P1)
• Em SDs, cada máquina tem sua própria percepção do
tempo
• P1 no host1, P2 no host2 se comunicam em ambiente com
potencial diferença de tempo
• Não há noção de tempo global
4
INTRODUÇÃO
• Porque sincronizar os relógios em um sistema distribuído?
• Monitorar sistemas distribuídos à medida em que a sua
execução se desenrola;
• Saber o momento exato em que eventos ocorrem,
• ex.: para auditoria em transações bancárias.
• Sincronização externa:
• sincronizar os processos com uma fonte de tempo externa de
referência.
• Sincronização interna:
• relógios de diferentes computadores são sincronizados com
grau de precisão conhecido.
5
ROTEIRO
Introdução
Relógios, eventos e estados de processo
Sincronização de Tempo em Sistemas Distribuídos
6
RELÓGIOS FÍSICOS
Temporizador
•Cristal de quartzo lapidado e usinado com precisão
• Oscilam a frequências bem-definidas sob pressão
• Associados ao cristal:
• Contador
• Registrador de retenção
• Uma oscilação = uma unidade de contagem
• Contador = 0
• gera uma interrupção e o contador é recarregado pelo
registrador de retenção
• A interrupção é denominada clock do relógio
7
TEMPO EM SISTEMAS
DISTRIBUÍDOS
• CPU’s múltiplas, cada uma com seu próprio relógio
• Frequência de cada oscilador cristal é normalmente estável,
no entanto:
• Impossível garantir que todos os cristais funcionem na
mesma frequência
• Cristais, funcionando a taxas ligeiramente diferentes
• Relógios fora de sincronia
• Problema da defasagem do relógio
8
PROBLEMAS DE
TEMPORIZAÇÃO
• Como sincronizar os relógios com o mundo real?
• Como sincronizar os relógios um com o outro em um
sistema distribuído?
9
MEDIÇÃO DE TEMPO
• Invenção dos relógios: séc. XVII
• Tempo medido por meios astronômicos
• Todo dia o Sol nasce no leste e se põe no oeste
• Zênite é o ponto mais alto no céu alcançado pelo Sol
• Passagem do Sol pelo zênite chama-se: trânsito solar
• Trânsito solar ocorre aproximadamente ao meio-dia
• Intervalo de dois trânsitos solares é um dia solar
• Segundo solar= 1/86400 avos de um dia solar
10
MEDIÇÃO DE TEMPO
11
MEDIÇÃO DE TEMPO
• O relógio atômico
• Surgido em 1948
• Mede o tempo com mais exatidão, independente dos
movimentos da Terra
• Baseado nas transições do átomo de Césio 133
• Um segundo = “9.192.631.770 ciclos de radiação
correspondente a transição entre dois níveis de energia do
átomo de césio-133, no estado fundamental”
• 1 Segundo atômico = 1 segundo solar médio do ano de
medição
• Usado para gerar o Tempo Atômico Internacional (TAI)
12
MEDIÇÃO DE TEMPO
• Resumo
• Medição do tempo baseado em segundos TAI (Tempo
Atômico Internacional) constantes
• Em fase com o movimento aparente do Sol
• Hora Coordenada Universal (UTC)
• UTC substitui o GMT (hora astronômica)
• National Institute of Standard, em Colorado/USA
• Time opera estações de ondas de rádio WWV para informar o
tempo UTC
13
ROTEIRO
Introdução
Relógios, eventos e estados de processo
Sincronização de Tempo em Sistemas Distribuídos
14
SINCRONIZAÇÃO DE
TEMPO EM SISTEMAS
DISTRIBUÍDOS
• Se uma máquina tem um receptor WWV,
• Deve-se manter as demais sincronizadas com o tempo real
• Se não possui receptor WWV,
• Deve-se manter o tempo o mais próximo possível.
15
SINCRONIZAÇÃO EM
SISTEMAS DISTRIBUÍDOS
• Problemas
• Processos localizados em sistemas computacionais
diferentes
• Atrasos decorrente do tempo de rede
• Há casos com diferencial de fuso horário
16
SINCRONIZAÇÃO EM
SISTEMAS DISTRIBUÍDOS
• Há um relógio que define o tempo comumente aceitado e
pré-acordado
• “C”é o valor do relógio
• “p”é uma dada máquina
• “t”é hora UTC
• tempo na máquina p é Cp(t)
• Ideal
• R’p(t) = dC/dt = 1
17
SINCRONIZAÇÃO EM
SISTEMAS DISTRIBUÍDOS
• Temporizadores
• Temporizadores reais não interrompem exatamente H vezes
por segundo
• Teoricamente, um temporizador H=60 deve gerar 216.000
ciclos por hora
• O erro relativo de modernos chips estão em 10-5
18
SINCRONIZAÇÃO EM
SISTEMAS DISTRIBUÍDOS
Relação entre a hora do relógio e a hora UTC quando as
taxas de ciclos de relógios são diferentes
19
SINCRONIZAÇÃO EM
SISTEMAS DISTRIBUÍDOS
• Algoritmos de sincronização de tempo
• Algoritmo de Cristian
• Algoritmo de Berkeley
• Algoritmo de Lamport
20
ALGORITMO DE
CRISTIAN
• Idéia geral
• Clientes consultam um servidor de tempo com hora exata
(WWV)
• Hora fornecida enfrenta problema de atraso de atualização
(demora para receber de volta a resposta)
•Solução
• Estimar atrasos
21
ALGORITMO DE
CRISTIAN
22
ALGORITMO DE
BERKELEY
• Um daemon de tempo pergunta para todas as outras máquinas
os valores marcados por seus relógios.
• As máquinas respondem.
• O daemon de tempo informa a todas as máquinas como devem
ajustar seus relógios.
23
RELÓGIOS FÍSICOS
• Para muitas finalidades é suficiente que todas as máquinas
concordem em uma hora.
• Só para algumas finalidades é necessário que a hora acordada
seja idêntica ao tempo real.
24
RELÓGIOS LÓGICOS
DE LAMPORT
• Mecanismos para identificação de relações causais e
cronológicas em sistemas distribuídos
• Cada processo mantém um relógio lógico, que não
necessariamente precisa ter relação com um relógio físico.
• Os processos atualizam seus relógios lógicos e transmitem
valores de seus relógios lógicos em mensagens.
• Princípio de Lamport (1978)
• Processos do sistema não precisam concordar na hora atual,
mas sim na ordem em que os eventos ocorrem
• Relógios do sistema não precisam estar sincronizados se os
processos não interagem
• Relógios são sincronizados para frente, nunca para trás
25
RELÓGIOS LÓGICOS
DE LAMPORT
• Para sincronizar relógios lógicos Lamport definiu:
• Relação “acontece antes”
• Notação: a →b é lida como “a acontece antes de b”
• A relação é transitiva:
• se a →b
• b →c,
• então a →c
• Se a →b, então C(a) < C(b)
• Se dois processos diferentes x e y não trocam mensagens
• x →y e y →x não são verdadeiros
26
RELÓGIOS LÓGICOS
DE LAMPORT
Relógio lógico de Lamport em sistemas distribuídos.
27
RELÓGIOS LÓGICOS
DE LAMPORT
Cada processo Pi mantém um contador Ci
• Antes de executar um evento Pi executa Ci = Ci + 1.
• Quando um processo Pi envia uma mensagem m para Pj, ele ajusta
a marca de tempo de m, ts (m) para igual a Ci após ter executado a
etapa anterior.
• Ao receber a mensagem m, o processos Pj ajusta seu próprio
contador local para Cj = max{Cj, ts (m)}, e depois disto executa a
primeira etapa e entrega a mensagem à aplicação
28
RELÓGIOS LÓGICOS
DE LAMPORT
Três processos, cada um com seu próprio relógio.
Os relógios funcionam a taxas diferentes.
29
SISTEMAS
DISTRIBUÍDOS
TEMPO, RELÓGIO E
SINCRONIZAÇÃO DE TEMPO
ARTHUR EMANUEL DE OLIVEIRA
CAROSIA
30

Más contenido relacionado

La actualidad más candente

Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processos
Faculdade Mater Christi
 

La actualidad más candente (20)

Simplex, Half-Duplex e Full-Duplex
Simplex, Half-Duplex e Full-DuplexSimplex, Half-Duplex e Full-Duplex
Simplex, Half-Duplex e Full-Duplex
 
Introdução a Sistemas Distribuídos
Introdução a Sistemas DistribuídosIntrodução a Sistemas Distribuídos
Introdução a Sistemas Distribuídos
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
Entrada e saida cap 05 (iii unidade)
Entrada e saida  cap 05 (iii unidade)Entrada e saida  cap 05 (iii unidade)
Entrada e saida cap 05 (iii unidade)
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Barramento
BarramentoBarramento
Barramento
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Capítulo 23 comunicação entre processos
Capítulo 23   comunicação entre processosCapítulo 23   comunicação entre processos
Capítulo 23 comunicação entre processos
 
Aula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a FalhasAula de Sistemas Distribuídos - Tolerância a Falhas
Aula de Sistemas Distribuídos - Tolerância a Falhas
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
 
Topologia em redes
Topologia em redesTopologia em redes
Topologia em redes
 
Tipos de Sistemas Operacionais
Tipos de Sistemas OperacionaisTipos de Sistemas Operacionais
Tipos de Sistemas Operacionais
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Topologia de Redes
Topologia de RedesTopologia de Redes
Topologia de Redes
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
Conceitos de sistemas operacionais
Conceitos de sistemas operacionaisConceitos de sistemas operacionais
Conceitos de sistemas operacionais
 
Modelo de documento para levantamento de requisitos de software
Modelo de documento para levantamento de requisitos de softwareModelo de documento para levantamento de requisitos de software
Modelo de documento para levantamento de requisitos de software
 
Hardware
HardwareHardware
Hardware
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
 

Destacado

Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Adriano Teixeira de Souza
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
robsons75
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
Adriano Teixeira de Souza
 

Destacado (20)

Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região CríticaSistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBA
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 
Sistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00
 
Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de Dados
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas Distribuídos
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 

Similar a Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo (8)

Ntp 1-cp2011
Ntp 1-cp2011Ntp 1-cp2011
Ntp 1-cp2011
 
Arquitetura de Computadores
Arquitetura de ComputadoresArquitetura de Computadores
Arquitetura de Computadores
 
Relógios Lógicos
Relógios LógicosRelógios Lógicos
Relógios Lógicos
 
Relógios lógicos
Relógios lógicosRelógios lógicos
Relógios lógicos
 
Clock
ClockClock
Clock
 
Fl os relógios
Fl   os relógiosFl   os relógios
Fl os relógios
 
SincronizacaoDist.pdf
SincronizacaoDist.pdfSincronizacaoDist.pdf
SincronizacaoDist.pdf
 
Flip Flops Parte 3
Flip Flops Parte 3Flip Flops Parte 3
Flip Flops Parte 3
 

Más de Arthur Emanuel

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Arthur Emanuel
 

Más de Arthur Emanuel (20)

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - Exercícios
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com Facebook
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - Exercício
 
CSS 3
CSS 3CSS 3
CSS 3
 
CSS
CSSCSS
CSS
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
 
HTML - Introducao
HTML - Introducao HTML - Introducao
HTML - Introducao
 
Android - Google Maps
Android - Google MapsAndroid - Google Maps
Android - Google Maps
 
Android - Bluetooth
Android - BluetoothAndroid - Bluetooth
Android - Bluetooth
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPS
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo Webservices
 

Último

Último (9)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo

  • 1. SISTEMAS DISTRIBUÍDOS TEMPO, RELÓGIO E SINCRONIZAÇÃO DE TEMPO ARTHUR EMANUEL DE OLIVEIRA CAROSIA 1
  • 2. ROTEIRO Introdução Relógios, eventos e estados de processo Sincronização de Tempo em Sistemas Distribuídos 2
  • 3. ROTEIRO Introdução Relógios, eventos e estados de processo Sincronização de Tempo em Sistemas Distribuídos 3
  • 4. INTRODUÇÃO • Em sistemas centralizados o tempo não é ambíguo • Núcleo do SO informa tempo aos processos • P1 solicita hora • P2 solicita hora depois de P1 • tempo(P2) >= tempo(P1) • Em SDs, cada máquina tem sua própria percepção do tempo • P1 no host1, P2 no host2 se comunicam em ambiente com potencial diferença de tempo • Não há noção de tempo global 4
  • 5. INTRODUÇÃO • Porque sincronizar os relógios em um sistema distribuído? • Monitorar sistemas distribuídos à medida em que a sua execução se desenrola; • Saber o momento exato em que eventos ocorrem, • ex.: para auditoria em transações bancárias. • Sincronização externa: • sincronizar os processos com uma fonte de tempo externa de referência. • Sincronização interna: • relógios de diferentes computadores são sincronizados com grau de precisão conhecido. 5
  • 6. ROTEIRO Introdução Relógios, eventos e estados de processo Sincronização de Tempo em Sistemas Distribuídos 6
  • 7. RELÓGIOS FÍSICOS Temporizador •Cristal de quartzo lapidado e usinado com precisão • Oscilam a frequências bem-definidas sob pressão • Associados ao cristal: • Contador • Registrador de retenção • Uma oscilação = uma unidade de contagem • Contador = 0 • gera uma interrupção e o contador é recarregado pelo registrador de retenção • A interrupção é denominada clock do relógio 7
  • 8. TEMPO EM SISTEMAS DISTRIBUÍDOS • CPU’s múltiplas, cada uma com seu próprio relógio • Frequência de cada oscilador cristal é normalmente estável, no entanto: • Impossível garantir que todos os cristais funcionem na mesma frequência • Cristais, funcionando a taxas ligeiramente diferentes • Relógios fora de sincronia • Problema da defasagem do relógio 8
  • 9. PROBLEMAS DE TEMPORIZAÇÃO • Como sincronizar os relógios com o mundo real? • Como sincronizar os relógios um com o outro em um sistema distribuído? 9
  • 10. MEDIÇÃO DE TEMPO • Invenção dos relógios: séc. XVII • Tempo medido por meios astronômicos • Todo dia o Sol nasce no leste e se põe no oeste • Zênite é o ponto mais alto no céu alcançado pelo Sol • Passagem do Sol pelo zênite chama-se: trânsito solar • Trânsito solar ocorre aproximadamente ao meio-dia • Intervalo de dois trânsitos solares é um dia solar • Segundo solar= 1/86400 avos de um dia solar 10
  • 12. MEDIÇÃO DE TEMPO • O relógio atômico • Surgido em 1948 • Mede o tempo com mais exatidão, independente dos movimentos da Terra • Baseado nas transições do átomo de Césio 133 • Um segundo = “9.192.631.770 ciclos de radiação correspondente a transição entre dois níveis de energia do átomo de césio-133, no estado fundamental” • 1 Segundo atômico = 1 segundo solar médio do ano de medição • Usado para gerar o Tempo Atômico Internacional (TAI) 12
  • 13. MEDIÇÃO DE TEMPO • Resumo • Medição do tempo baseado em segundos TAI (Tempo Atômico Internacional) constantes • Em fase com o movimento aparente do Sol • Hora Coordenada Universal (UTC) • UTC substitui o GMT (hora astronômica) • National Institute of Standard, em Colorado/USA • Time opera estações de ondas de rádio WWV para informar o tempo UTC 13
  • 14. ROTEIRO Introdução Relógios, eventos e estados de processo Sincronização de Tempo em Sistemas Distribuídos 14
  • 15. SINCRONIZAÇÃO DE TEMPO EM SISTEMAS DISTRIBUÍDOS • Se uma máquina tem um receptor WWV, • Deve-se manter as demais sincronizadas com o tempo real • Se não possui receptor WWV, • Deve-se manter o tempo o mais próximo possível. 15
  • 16. SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS • Problemas • Processos localizados em sistemas computacionais diferentes • Atrasos decorrente do tempo de rede • Há casos com diferencial de fuso horário 16
  • 17. SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS • Há um relógio que define o tempo comumente aceitado e pré-acordado • “C”é o valor do relógio • “p”é uma dada máquina • “t”é hora UTC • tempo na máquina p é Cp(t) • Ideal • R’p(t) = dC/dt = 1 17
  • 18. SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS • Temporizadores • Temporizadores reais não interrompem exatamente H vezes por segundo • Teoricamente, um temporizador H=60 deve gerar 216.000 ciclos por hora • O erro relativo de modernos chips estão em 10-5 18
  • 19. SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS Relação entre a hora do relógio e a hora UTC quando as taxas de ciclos de relógios são diferentes 19
  • 20. SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS • Algoritmos de sincronização de tempo • Algoritmo de Cristian • Algoritmo de Berkeley • Algoritmo de Lamport 20
  • 21. ALGORITMO DE CRISTIAN • Idéia geral • Clientes consultam um servidor de tempo com hora exata (WWV) • Hora fornecida enfrenta problema de atraso de atualização (demora para receber de volta a resposta) •Solução • Estimar atrasos 21
  • 23. ALGORITMO DE BERKELEY • Um daemon de tempo pergunta para todas as outras máquinas os valores marcados por seus relógios. • As máquinas respondem. • O daemon de tempo informa a todas as máquinas como devem ajustar seus relógios. 23
  • 24. RELÓGIOS FÍSICOS • Para muitas finalidades é suficiente que todas as máquinas concordem em uma hora. • Só para algumas finalidades é necessário que a hora acordada seja idêntica ao tempo real. 24
  • 25. RELÓGIOS LÓGICOS DE LAMPORT • Mecanismos para identificação de relações causais e cronológicas em sistemas distribuídos • Cada processo mantém um relógio lógico, que não necessariamente precisa ter relação com um relógio físico. • Os processos atualizam seus relógios lógicos e transmitem valores de seus relógios lógicos em mensagens. • Princípio de Lamport (1978) • Processos do sistema não precisam concordar na hora atual, mas sim na ordem em que os eventos ocorrem • Relógios do sistema não precisam estar sincronizados se os processos não interagem • Relógios são sincronizados para frente, nunca para trás 25
  • 26. RELÓGIOS LÓGICOS DE LAMPORT • Para sincronizar relógios lógicos Lamport definiu: • Relação “acontece antes” • Notação: a →b é lida como “a acontece antes de b” • A relação é transitiva: • se a →b • b →c, • então a →c • Se a →b, então C(a) < C(b) • Se dois processos diferentes x e y não trocam mensagens • x →y e y →x não são verdadeiros 26
  • 27. RELÓGIOS LÓGICOS DE LAMPORT Relógio lógico de Lamport em sistemas distribuídos. 27
  • 28. RELÓGIOS LÓGICOS DE LAMPORT Cada processo Pi mantém um contador Ci • Antes de executar um evento Pi executa Ci = Ci + 1. • Quando um processo Pi envia uma mensagem m para Pj, ele ajusta a marca de tempo de m, ts (m) para igual a Ci após ter executado a etapa anterior. • Ao receber a mensagem m, o processos Pj ajusta seu próprio contador local para Cj = max{Cj, ts (m)}, e depois disto executa a primeira etapa e entrega a mensagem à aplicação 28
  • 29. RELÓGIOS LÓGICOS DE LAMPORT Três processos, cada um com seu próprio relógio. Os relógios funcionam a taxas diferentes. 29
  • 30. SISTEMAS DISTRIBUÍDOS TEMPO, RELÓGIO E SINCRONIZAÇÃO DE TEMPO ARTHUR EMANUEL DE OLIVEIRA CAROSIA 30