Sincronización de relojes en un sistema distribuido

La sincronización del reloj es un método para sincronizar los valores del reloj de los nodos en un sistema distribuido con el uso de un reloj de referencia externo o un valor de reloj interno. Durante la sincronización, muchos factores afectan a una red y estos deben tenerse en cuenta antes de corregir el valor real del reloj. La sincronización de relojes en un sistema distribuido consiste en garantizar que los procesos se ejecuten de forma cronológica y a la misma vez respetar el orden de los eventos dentro del sistema.

El envió de mensajes entre los sistemas distribuidos es una parte fundamental para su funcionamiento. La sincronización de relojes ya sean físicos o lógicos aseguran que los procesos se realicen de manera secuencial y ordenada.

RelojesEditar

Existen 2 tipos de relojes: los físicos y los lógicos. Los primeros están relacionados con el tiempo real mientras que en los segundos lo importante es el orden de los eventos.

Cada computadora consta de un cristal de cuarzo que oscila a una frecuencia predecible. Hay un registro de contador que realiza un seguimiento de la oscilación y disminuye en uno por cada oscilación. Cuando llega a cero, se genera una interrupción y el contador se recarga desde el registro de retención. El valor del registro de retención se decide en función de la frecuencia de oscilación y el número de interrupciones puede ser controlado. El valor del registro de retención se elige para que sea de 60 tics (interrupciones de reloj) por segundo.

Puede haber diferencias en la oscilación del cristal, lo que hace que el reloj funcione a diferentes velocidades, este efecto se conoce como sesgo de reloj. Esta diferencia en el periodo de oscilación puede ser pequeña, pero la diferencia se acumula a lo largo de muchas oscilaciones, por lo que el reloj de la computadora se desvía del reloj en tiempo real.

Tipos de sincronizaciónEditar

Dentro de los relojes físicos encontramos 2 tipos de sincronización: la interna y la externa. En la sincronización interna cada nodo comparte su valor de tiempo de reloj físico con otros nodos y establece su nuevo valor de reloj en consecuencia. A diferencia de la sincronización interna, en la sincronización externa los relojes se sincronizan con una fuente de tiempo externa fiable.

ReferenciasEditar

Romero, F., & Tinetti, F. (2009). Sincroniaci´on de relojes en ambientes Distribuidos

Singh, J. & Eswaran, A. (2018). Operating System

Canini, M. (2018). Time Synchronization and Logical Clocks

Watson, R. (2016). Distributed systems