Sincronización de Relojes

Anuncio
Sincronización de Relojes
Alvaro Ospina Sanjuan
[email protected]
Sincronización de relojes
>En un sistema centralizado el tiempo
no tiene ambigüedades
>Si dos procesos, A y B piden la hora
en el respectivo orden, la hora de A
siempre será menor que la hora de B
>En un S.D no ocurre lo mismo
– Se carece de reloj global
– No es importante si A nunca se
comunica con B
Sincronización de relojes
>Ej: El programa make
– Muy sensible a el tiempo
Sincronización de relojes
>Pude haber sincronización de relojes?
– Lamport demostró que si
>No se busca una sincronización de
tiempo absoluto, sino que el orden
de los eventos sea el mismo
– En make, lo que importa es orden que
fueron creados output.o y output.c, no la
hora de creación
Sincronización de relojes
>Tipos
– Lógicos: las máquinas tienen el mismo
valor de reloj aunque marquen una hora
distinta de la real
– Físicos: las máquinas tienen el mismo
valor de reloj y éste no debe desviarse
de la hora real más allá de cierta
magnitud
Sincronización de relojes
lógicos
> Lamport definió a->b y se lee “a ocurre
antes de b” que indica que todos los
procesos coinciden en que primero ocurre
a y después b
> Se cumple:
– Si a y b son dos eventos en el mismo proceso y
a ocurre antes que b, entonces a->b es
verdadero
– Si a es el evento del envío de un mensaje por
un proceso y b es el evento de la recepción del
mensaje por otro proceso, entonces a->b es
verdadero
Sincronización de relojes
lógicos
> de qué forma podemos sincronizar relojes
lógicos?
– Necesitamos una forma de asociar a cada
evento a un valor de tiempo C(a) en el que
todos los procesos estén de acuerdo
– Los valores de tiempo deben tener la
propiedad de que si a->b entonces
C(a)<C(b)
– El tiempo de reloj C siempre debe ir hacia
delante, nunca puede ser decreciente
Sincronización de relojes
lógicos
> Algorítmo de Lamport
– Cada mensaje acarrea el tiempo de envío, de
acuerdo con el reloj del emisor.
– Cuando un mensaje llega y el reloj del receptor
muestra un valor anterior al tiempo en que se
envió el mensaje, el receptor adelanta su reloj
para que tenga una unidad más que el tiempo
de envío.
– Entre dos eventos cualesquiera, el reloj debe
marcar al menos una vez.
– Dos eventos no deben ocurrir exactamente al
mismo tiempo.
Sincronización de relojes
lógicos
>Tres procesos cada uno con su
propio reloj
Con C y D no
se cumplen
las reglas
anteriores
Sincronización de relojes
lógicos
>Tres procesos cada uno con su
propio reloj
Solución
propuesta por
Lamport:
puesto que C
sale en
60 debe
llegar en 61 o
posterior
Sincronización de relojes
físicos
>Algoritmo de Cristian
– Algoritmo centralizado con un servidor
UTC(tiempo coordenado universal)
pasivo. Cada maquina solicita el tiempo
periódicamente. Se debe tener en
cuenta las interrupciones del servidor y
el tiempo de transmisión.
Sincronización de relojes
físicos
>Algoritmo de Cristian
– Supongamos un conjunto de máquinas.
Una de ellas tiene acceso a una fuente
fiable de la hora (servidor de tiempo)
T0
Tiempo
T1
Solicit
ud
I, Tiempo de
procesamiento de la
petición
Sincronización de relojes
físicos
>Algoritmo de Cristian
– Para la máquina emisora, una buena
estimación de la hora sería (T1-T0)/2
– Y si se conoce el valor de I: (T1-T0-I)/2
– Se hacen varias medidas y se toma la
media
Sincronización de relojes
físicos
> Algoritmo de Berkeley
– En el algoritmo de Cristian, el servidor de
tiempo es pasivo. En el UNIX de Berkeley se
emplean servidores de tiempo activos
– El servidor de tiempo realiza un muestreo
periódico de todas las máquinas para
preguntarles el tiempo
– Con base en estas respuestas, calcula el
tiempo promedio y le indica a las máquinas
que avancen o retrasen su reloj la cantidad
que sea necesaria
Sincronización de relojes
físicos
>Algoritmos con promedio:
– En este caso dividimos el tiempo en
intervalos de resincronización
– El i-ésimo intervalo comienza en T0+iR
y termina en T0+(i+1)R, donde T0 es un
momento ya acordado en el pasado y R
es una cte.
– Al comienzo de cada intervalo cada
máquina transmite el tiempo actual de
su reloj.
Sincronización de relojes
físicos
>Algoritmos con promedio:
– Puesto que los relojes de las diversas
máquinas no funcionan exactamente a
la misma velocidad, estas transmisiones
no ocurrirán en forma simultánea
– Tras transmitir su hora, una máquina
arranca un cronómetro local para reunir
las demás transmisiones que lleguen en
un cierto intervalo S
– A partir de ellas calcula un nuevo
tiempo, p.ej. con la media
Sincronización de relojes
físicos
>Algoritmos con varias fuentes
externas de tiempo
– Algoritmo descentralizado con varios
receptores UTC. Los relojes son
actualizados cada R unidades de tiempo
intersectando los tiempos emitidos por
los receptores UTC.
Descargar