Sistemas digitais
Sincronização
Em sistemas distribuídos a sincronização se dá através de algoritmos distribuídos, que possuem as seguintes características:
1− A informação relevante está espalhada em múltiplas máquinas
2− Processos tomam decisões baseadas somente nas informações locais
3− Um único ponto de falha no sistema deve ser evitado
4− Não existe um relógio em comum ou outro tipo preciso de tempo global
Relógios lógicos
Toda máquina possui o seu próprio timer que é produzido a partir do cristal de quartzo, quando processos fazem uso do relógio de apenas uma maquina temos: * Arquitetura: um cristal, um contador e um registro de controle; * Oscilação base a partir de um cristal ordinário sob tensão; * Cada oscilação (pico de onda) decrementa um contador; * Quando contador = 0 gera interrupção e contador ajustado para valor de um registrador de controle; * Cada interrupção corresponde a um tick; * Valor do registrador de controle define frequência do tick.
Num Sistema Distribuído: * Cristais não são idênticos; * Vários relógios derivam um do outro (skew - distorção); * Cada relógio deriva em relação ao tempo ideal (drift rate).
Através disso, podemos verificar que num sistema distribuído os relógios não são idênticos e os processos se perdem durante a execução causando falhas no sistema distribuído.
Algoritmo de Lamport:
Objetiva a sincronização de clocks lógicos.
A sincronização acontece da seguinte maneira:
Os processos executam em máquinas diferentes, cada uma com seu clock. Cada mensagem leva o valor do clock do transmissor, se a mensagem traz um tempo superior ao do receptor, este adianta seu clock em uma unidade maior