Sincronización de relojes
Un sistema distribuido debe permitir el apropiado uso de los recursos, debe encargarse
de un buen desempeño y de la consistencia de los datos, además de mantener seguras
todas estas operaciones
Algoritmo de Cristian
Algoritmo de Berkeley
Estos son los mecanismos que se basan en la existencia de una unidad de sincronización
centralizada, la cual debe tener un nombre único conocido para todos los procesos que
requieren ser sincronizados.
Algoritmo de Lamport.
Fue el primer algoritmo propuesto para lograr la exclusión mutua en redes cuyos nodos
se comuniquen solamente mediante mensajes y que no compartan memoria. Fue
propuesto por Lamport en 1978. El objetivo de la propuesta de Lamport es obtener un
algoritmo que cumpla con las siguientes condiciones:
• Un proceso que posee a un recurso, debe liberarlo antes de que sea otorgado a
otro proceso.
• Se deben entregar los derechos sobre un recurso en el orden en que se hicieron
todas las solicitudes de uso del recurso.
• El proceso Pi desea entrar a una SC, envía el mensaje Tm :Pi solicitud de recurso,
al resto de los nodos y pone al mensaje en la cola de peticiones. Tm representa la
marca de tiempo del mensaje.
• Cuando el proceso Pj recibe el mensaje Tm :Pi solicitud de recurso, lo coloca en
su cola de peticiones y envía un mensaje de conocimiento al proceso Pi, con su
respectiva marca de tiempo.
• El proceso Pi obtiene el recurso cuando se cumplen las siguientes condiciones
que son probadas localmente por Pi:
o Existe un mensaje Tm:Pi solicitud de recurso en la cola de peticiones.
o El proceso Pi ha recibido un mensaje de todos los procesos con una
marca de tiempo mayor a Tm.
• Para liberar el recurso, el proceso Pi quita cualquier mensaje Tm:Pi solicitud de
recurso de su cola de peticiones y envía un mensaje Pi libera recurso con marca
de tiempo al resto de los proceso.
• Cuando el proceso Pj recibe un mensaje Pi libera recurso, quita cualquier
mensaje Tm:Pi solicitud de recurso de su cola de peticiones.
RELOJ FÍSICO
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.
• Los valores de tiempo asignados a los eventos no tienen porqué ser cercanos a
los tiempos reales en los que ocurren.
• En ciertos sistemas es importante la hora real del reloj:
o Se precisan relojes físicos externos (más de uno).
o Se deben sincronizar:
Con los relojes del mundo real.
Entre sí.
Desde antiguo el tiempo se ha medido astronómicamente.
Se considera el día solar al intervalo entre dos tránsitos consecutivos del sol, donde el
tránsito del sol es el evento en que el sol alcanza su punto aparentemente más alto en el
cielo.
Los físicos definieron al segundo como el tiempo que tarda el átomo de cesio 133 para
hacer 9.192.631.770 transiciones:
• Se tomó este número para que el segundo atómico coincida con el segundo solar
promedio de 1958. :
Para conocer en que hora del día ocurren los sucesos en los procesos de nuestro
sistema distribuido Q, es necesario sincronizar los relojes de los procesos C i con una
fuente de tiempo externa autorizada. Esto es la SINCRONIZACIÓN EXTERNA. Y si
los relojes están sincronizados con otro con un grado de precisión conocido, entonces
podemos medir el intervalo entre dos eventos que ocurren en diferentes computadores
llamando a sus relojes locales, incluso aunque ellos no estén necesariamente
sincronizados con una fuente externa de tiempo. Esto es SINCRONIZACION
INTERNA. Definimos estos dos modos de sincronización mas detalladamente, sobre un
intervalo de tiempo real I:
Sincronización Externa: para una sincronización dada D>0, y para una fuente S de
tiempo UTC, Si (t) – Ci (t)<D, para i = 1, 2, ...., N y para todos los tiempos reales t
en I. Otra forma de decir esto es que los relojes Ci son precisos con el límite D.
Sincronización Interna: para una sincronización dada D>0, Ci(t) – Cj(t)<D, para
i = 1,2,....N y para todos los tiempos reales t en I.
Los relojes lógicos son aquellos por los cuales están ordenados los sucesos de
una forma única. Para poder usar en general el tiempo físico se debe sincronizar
perfectamente bien los relojes a lo largo de un sistema distribuido para poder así
obtener el orden de cualquier par arbitrario de sucesos que ocurran en el, pero es poco
probable que esto ocurra por que no se puede sincronizar perfectamente los relojes a lo
los sistemas distribuidos, para controlar el orden de algunos sucesos que ocurren en
mensaje, acto seguido telefonea a Gómez, quien ordena a su proceso que envíe otro
mensaje, luego el envío del primer mensaje claramente sucedió antes que el segundo.
Desafortunadamente, como no se ha enviado mensajes de red entre los procesos que los
Otro punto a señalar es que aun produciéndose la relación sucedió antes entre
podría recibir un mensaje y consecuentemente enviar otro mensaje, pero no que él emite
cada cinco minutos en cualquier caso y no tiene ninguna relación específica con el
orden, uno para el que todos los pares de sucesos distintos están ordenados, teniendo en
cuenta los identificadores de los procesos en los que ocurren los sucesos.
relojes de Lamport, del hecho que no podemos deducir que un reloj vectorial para un
Cada proceso mantiene su propio reloj vectorial Vi, que utiliza para colocar
marcas de tiempo en los sucesos locales. Como las marcas de tiempo de Lamport, cada
proceso adhiere el vector de marcas de tiempo en los mensajes que envía al resto, y hay