Escolar Documentos
Profissional Documentos
Cultura Documentos
DAD (2019/01)
Apresentação da disciplina
Introdução
Desafios e caracterı́sticas
Arquitetura
Comunicação
Nomeação
Controle de tempo e sincronismo
Transação e controle de concorrência
Segurança
Arquitetura Orientada a Serviços (SOA) e WebServices
Sistemas de arquivos distribuı́dos
Aplicações móveis
Seminários
Introdução
Relógios fı́sicos
UTC - Tempo Universal Coordenado
O problema do tempo
Sincronização de Tempo em Sistemas Distribuı́dos
Tempo em Sistemas Distribuı́dos
Relógios lógicos
NTP - Network Time Protocol
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
Ao iniciar o sistema, data e hora atuais são digitadas e
convertidas em ciclos 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.
Relógios fı́sicos
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!
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
Relógios fı́sicos
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!
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
Relógios fı́sicos
Exemplo I
Hora atômica Internacional (International Atomic Time) é baseada
em relógios muito precisos (taxa de variação de 10 × 10−13 )
Exemplo II
Hora Coordenada Internacional (Universal Coordinated Time –
UCT) é o padrão para medição do tempo
Relógios fı́sicos
Exemplo I
Hora atômica Internacional (International Atomic Time) é baseada
em relógios muito precisos (taxa de variação de 10 × 10−13 )
Exemplo II
Hora Coordenada Internacional (Universal Coordinated Time –
UCT) é o padrão para medição do tempo
O problema do tempo
Dificuldade de sincronizar os relógios de diferentes CPUs
Necessidades
Medir o tempo decorrido em determinadas situações
Identificar a hora correta de eventos em sistemas distribuı́dos
Verificar a autenticidade de uma requisição
Relógios lógicos
Se dois processos não interagem, não é necessário que estejam
sincronizados
Quando há comunicação, o que importa é que as pontas
concordem com a ordem com que os eventos ocorreram
Relação aconteceu-antes (→)
Significado: a → b = a aconteceu-antes de b
Transitividade: se a → b e b → c então a → c
Dois eventos (a, b) são concorrentes se não se pode inferir
que a → b ou b → a
Exemplo do comando make (UNIX)
Quando compilados, arquivos fontes (file.c) geram arquivos
objeto (file.o)
Somente os arquivos fontes cujo horário de alteração esteja
maior que o horário de alteração do arquivo objeto são
compilados
Relógios lógicos
Sincronização baseada em “tempo relativo”
Tempo relativo não possui nenhuma relação com o tempo real
O mais importante é que os processos do Sistema Distribuı́do
concordem com a ordem em que os eventos ocorrem
Algoritmo de Lamport
Relógios Vetoriais
Algoritmo de Lamport
Lamport definiu a seguinte relação: “acontece-antes”:
a → b (a acontece antes de b)
Significa que todos os processos concordam que primeiro o
evento a ocorreu e depois disto, o evento b ocorreu. Esta
relação pode ser observada em duas situações:
Se a e b são eventos no mesmo processo, e a ocorre antes de
b, então a → b é verdadeiro
Se a é o evento de uma mensagem sendo enviada por um
processo, e b é o evento da mensagem sendo recebida por
outro processo, então a → b é também verdadeiro
Algoritmo de Lamport
A relação “acontece-antes” é transitiva, logo:
se a → b e b → c, então a → c
Se dois eventos x e y, acontecem em diferentes processos que
não trocam mensagens, então x → y não é verdadeiro, nem y
→ x é verdadeiro.
Estes eventos são ditos concorrentes, o que significa que nada
pode ser dito sobre quando eles aconteceram
Algoritmo de Lamport
É necessário um modo de medição de tal forma que para todo
evento a, possa ser assumido que ele ocorreu em um tempo
C(a) no qual todos os processos concordem
Algoritmo de Lamport
Solução de Lamport:
Uma vez que a mensagem m foi enviada no tempo 60 (Figura
b), ela deve chegar no tempo 61 ou maior
Cada mensagem carrega o tempo de envio, de acordo com o
relógio do transmissor
Geanderson Esteves dos Santos Desenvolvimento de Aplicações Distribuı́das
Aspectos de SDs - Tempo e Sincronização - Sincronização
em SDs
Algoritmo de Lamport
Por usar inteiros simples como marcas de tempo, o algoritmo
de Lamport perde informações de vários ordenamentos válidos.
Após aplicar o algoritmo de Lamport, temos apenas uma de
várias ordenações possı́veis! Ou seja, temos um SD totalmente
ordenado
No entanto, em algumas situações, é necessário ter acesso a
todas as ordenações parciais possı́veis, que representam
“fotografias” consistentes do Sistema Distribuı́do, ou seja
estados globais.
Em recuperação a falhas, por exemplo, é necessário termos
acessos a estes estados globais.