Las computadoras poseen un circuito para el registro del tiempo conocido como dispositivo reloj. Este es un cronómetro que consistente en un cristal de cuarzo de precisión sometido a una tensión eléctrica que oscila con una frecuencia bien definida que depende de la forma en que se corte el cristal, el tipo de cristal, la magnitud de la tensión.
- Registro contador.
- Registro mantenedor.
Cada oscilación del cristal decrementa en “1” al contador y cuando el contador llega a “0”, se genera una interrupción, y el contador se vuelve a cargar mediante el registro mantenedor. Se puede programar un cronómetro para que genere una interrupción “x” veces por segundo.
Cada interrupción se denomina marca de reloj.
Para una Computadora y un Reloj, no les interesan los pequeños desfasajes del reloj porque todos los procesos de la máquina usan el mismo reloj y tendrán consistencia interna, lo que importan sin los tiempos relativos.
Para varias computadoras con sus respectivos relojes es imposible garantizar que los cristales de computadoras distintas oscilen con la misma frecuencia. ya que hay una pérdida de sincronía en los relojes (de software), es decir que tendrán valores distintos al ser leidos. La diferencia entre los valores del tiempo se llama distorsión del reloj y podría generar fallas en los programas dependientes del tiempo.
Lamport demostró que la sincronización de relojes es posible y presentó un algoritmo para lograrlo. Este señaló que la sincronización de relojes no tiene que ser absoluta ya que si 2 procesos no interactúan no es necesario que sus relojes estén sincronizados. Este algiritmo se asigna un periodo de tiempo a cada evento.
Relojes Fisico
La idea es proveer de un único bloque de tiempo para el sistema. Los procesos pueden usar la marca física del tiempo provista o leída de un reloj central para expresar algún orden en el conjunto de acciones que inician. La principal ventaja de este mecanismo es la simplicidad, aunque existen varios inconvenientes: el correcto registro del tiempo depende en la posibilidad de recibir correctamente y en todo momento, el tiempo actual desplegado por el reloj físico; los errores de transmisión se convierten en un impedimento para el orden deseado, el grado de exactitud depende de las constantes puestas en el sistema.
El algoritmo de Lamport proporciona un orden de eventos sin ambigüedades pero los valores de tiempo asignados a los eventos no tienen porqué ser cercanos a los tiempos reales en los que ocurren.
En ciertos sistemas (ej.: sistemas de tiempo real ), es importante la hora real del reloj ya que se precisan relojes físicos externos (más de uno). Estos se deben sincronizar:
Con los relojes del mundo real. Entre sí, la medición del tiempo real con alta precisión no es sencilla. Estos son los relojes que podemos visualizar en esquina inferior de nuestra computadora.