Algoritmo de cristian

Algoritmo de Christian
Información sobre la plantilla
Concepto:Método, dentro de la computación distribuida, para la sincronización de relojes físicos con sincronización externa.

El algoritmo de Christian es un método, dentro de la computación distribuida, para la sincronización de relojes físicos con sincronización externa. Este algoritmo asume que hay una máquina maestra llamada servidor de tiempo, que de alguna manera se sincroniza con un reloj atómico a través de un receptor UTC y tiene una marca de tiempo para el sistema. Otras máquinas del sistema se sincronizan con el servidor horario.

Cada cierto tiempo, las máquinas envían mensajes de red al servidor de tiempo para verificar cuál es la hora actual, el servidor de tiempo devuelve la hora actual y las máquinas usan la hora para reiniciar su reloj.

Funcionamiento

Este algoritmo está basado en el uso del tiempo coordinado universal (UTC), el cual es recibido por un equipo dentro del sistema distribuido. Este equipo, denominado receptor de UTC, recibe a su vez solicitudes periódicas del tiempo del resto de máquinas del sistema a cada uno de los cuales les envía una respuesta en el menor plazo posible informando el tiempo UTC solicitado, con lo cual todas las máquinas del sistema actualicen su hora y se mantenga así sincronizado todo el sistema. Si la hora local de la máquina que solicita la hora es posterior al tiempo UTC debe ralentizar la velocidad del reloj hasta ajustarse a la hora. Si su hora es anterior a la hora recibida, directamente actualiza su reloj, o bien lo acelera hasta igualarlo a la hora UTC.

El receptor de UTC recibe el tiempo a través de diversos medios disponibles, entre los cuales se encuentran las ondas de radio, Internet, entre otros. Este algoritmo funciona bien con redes de baja latencia donde el tiempo de ida y vuelta es corto en comparación con la precisión, mientras que los sistemas o aplicaciones distribuidos propensos a la redundancia no van de la mano con este algoritmo.

Cada nodo envía periódicamente un mensaje de solicitud ”time =?” Al servidor de tiempo para obtener la hora exacta. El servidor de tiempo responde con ”time = t”. Si el nodo cliente envía un mensaje en el tiempo t0 y obtener una respuesta en el tiempo t1, luego el tiempo de propagación del mensaje de servidor al nodo cliente es (t1-t0)/2. El nodo cliente recibe una respuesta y ajusta su hora de reloj en t + (t1-t0) / 2.

Consideraciones

  • El tiempo del receptor UTC no puede ser menor que el tiempo de la máquina que le solicitó el tiempo.
  • El servidor de UTC debe procesar las solicitudes de tiempo con el concepto de interrupciones, lo cual incide en el tiempo de atención.
  • El intervalo de transmisión de la solicitud y su respuesta debe ser tomado en cuenta para la sincronización.
  • El tiempo de propagación se suma al tiempo del servidor para sincronizar al emisor cuando éste recibe la respuesta.

Problemas

El algoritmo de Christian presenta los siguientes inconvenientes:

  • La capacidad de cada nodo para leer el valor del reloj de otro nodo. Esto puede generar errores debido al retraso en la comunicación de mensajes entre nodos. La demora se puede calcular calculando el tiempo necesario para preparar, transmitir y recibir un mensaje vacío en ausencia de errores de transmisión y carga del sistema.
  • El tiempo nunca debe correr hacia atrás ya que puede llevar a la repetición de eventos o transacciones creando desorden en el sistema. El tiempo que corre hacia atrás es solo una percepción, no en realidad es un retroceso.
  • Hay un solo servidor horario que puede fallar y, por lo tanto, la sincronización temporalmente no está disponible.
  • Puede haber un servidor de tiempo defectuoso que responda con tiempo falso o un impostor servidor de tiempo que respondió con tiempo incorrecto.

Fuentes

[1] Romero, F., & Tinetti, F. (2009). Sincronización de relojes en ambientes Distribuidos.
[2] Singh, J. & Eswaran, A. (2018). Operating System.
[3] Canini, M. (2018). Time Synchronization and Logical Clocks.
[4] Watson, R. (2016). Distributed systems.