Sunteți pe pagina 1din 3

Algoritmo de Cristian

Ir a la navegación
Ir a la búsqueda

El ​algoritmo de Cristian​ (1989) es un método, dentro de la ​computación distribuida​, para la sincronización


de relojes. Cristian describe el método como probabilístico debido a que se consigue sincronización solo si
el tiempo de respuesta es suficientemente corto comparado con la precisión requerida.​1​​ Consiste en un
servidor conectado a una fuente de ​UTC​ y unos clientes que se sincronizan con dicho servidor.

Índice

1
Introducción

2
Sincronización interna en un sistema síncrono

3
Funcionamiento del algoritmo

4
Inconvenientes

5
Referencias

6
Bibliografía

Introducción​[​editar​]
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. Existen dos
tipos de sincronización de relojes físicos:

● Sincronización externa: consiste en sincronizar los relojes de los procesos ​C​i​ con una fuente
de tiempo externa fiable.
|S(t) – Ci​ ​(t)| < D​ ; siendo ​D​ un límite mayor que cero y ​S​ una fuente de tiempo UTC.

● Sincronización interna: si los relojes ​Ci​ ​ están sincronizados entre ellos con un conocido grado
de precisión y no necesariamente sincronizados con una fuente externa de tiempo.
|Ci​ (t)
​ - C​j​(t) | < D​ ; siendo ​D​ un límite mayor que cero.
Sincronización interna en un sistema síncrono​[​editar​]
En un sistema síncrono son conocidos:

● Los límites de deriva de los relojes.


● El máximo retardo de transmisión de mensajes.
● Tiempo para ejecutar cada paso de un proceso.
El proceso seguido para la sincronización entre dos procesos es el siguiente:

1. Un proceso envía el tiempo ​t​ de su reloj local a otro proceso en un mensaje ​m​.
2. ​
El proceso receptor puede actualizar su reloj con el tiempo ​t + TTRANS ​ al recibir el

mensaje, donde ​TTRANS ​ es el tiempo empleado en transmitir el mensaje ​m​entre ellos.


TTRANS​ es desconocido y no se puede determinar pues depende del tráfico de red .Pese a ello se puede

establecer un mínimo tiempo de transmisión, que se obtiene cuando no hay tráfico en la red ni otros
procesos, y un máximo estimado.

La incertidumbre en el tiempo de transmisión del mensaje se define como ​u =(max – min)​.

● Si el receptor coloca su reloj a ​t + min​ el sesgo del reloj puede ser como mucho ​u.​
● Si el receptor coloca su reloj a ​t + max​ el sesgo del reloj puede ser como mucho ​u​.
● Si el receptor coloca su reloj a ​t + (max + min)/2​ el sesgo es como mucho ​u/2.​

En general, para un sistema síncrono el error óptimo cuando se sincronizan N relojes es ​u( 1-1/N)​. La
mayoría de los sistemas distribuidos son asíncronos y no tienen definido un límite máximo para la
transmisión de mensajes por lo tanto:


TTRANS​ = min + x​ ; el valor de ​x​ es mayor o igual que cero y depende de cada caso en particular.

Funcionamiento del algoritmo​[​editar​]


1. Un proceso ​p​ hace una petición de tiempo al servidor en un mensaje ​m​r​.
2. El servidor responde con un mensaje ​mt​ ​ en el que incluye su tiempo ​T​UTC​.
3. El proceso que recibe el mensaje ​mt​ ​ actualiza su reloj con el tiempo ​T​UTC,​ pero hay que
considerar el error cometido pues se ha requerido un tiempo para la transmisión del
mensaje desde el servidor.
Se mide el tiempo que se tarda en recibir la respuesta desde que de envía el mensaje de petición, ​T​VIAJE​. El
tiempo estimado de propagación, en ausencia de otra información, será ​T​VIAJE​ /2​ por lo que el cliente
​ ​ + TVIAJE
sincroniza su reloj a ​TUTC ​ ​ .​ Esta estimación puede mejorarse si se conoce el tiempo mínimo de
/2
propagación del mensaje:

● El tiempo mínimo en el que el servidor escribió el mensaje es ​min​.


● ​
El tiempo máximo en el que el servidor escribió el mensaje es ​TVIAJE​ – min​.

​ ​ + min, C​UTC+
Por lo tanto el tiempo en el que el mensaje del servidor es recibido se sitúa en el rango ​[CUTC ​


TVIAJE​ –min ]​ cuya anchura es ​T​VIAJE​ – 2min​ así que la precisión es ​± T​VIAJE​/2 – min.​
Inconvenientes​[​editar​]
1. El problema que se presenta es la posibilidad de fallo debido a la existencia de un único
servidor. Cristian sugiere múltiples servidores de tiempo sincronizados que suministren el
tiempo. El cliente envía un mensaje de petición a todos los servidores y toma la primera
respues

S-ar putea să vă placă și