La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sincronización de Relojes

Presentaciones similares


Presentación del tema: "Sincronización de Relojes"— Transcripción de la presentación:

1 Sincronización de Relojes
Es importante para sincronizar eventos en sistemas distribuidos (transacciones) Consistencia en datos replicados El reloj de un sistema se peude representar por Ci(t) = a*Hi(t) + b en que Hi(t) es una medida de tiempo dada por un hardware

2 El método de sincronización de Christian
Se basa en la observación que en un período corto de tiempo, los mensajes de ida en internet se demoran casi lo mismo que los de vuelta mr mt cliente Servidor de tiempo

3 El método de sincronización de Christian
Si se llama T(mr) al tiempo en que fue mandado el mensaje y T(mt) al del recibido, y que t es el tiempo que se recibió en mt, se puede estimar que el timestamp se debe poner en t + (T(mt)-T(mr))/2 Esto se puede comparar con lo siguiente si se conoce el tiempo mínimo que puede tardar una viaje en redondo en la red T(rd) min min T(mr) t T(mt)

4 Tiempos lógicos Se trata de lograr sincronización interna, es decir relativa entre los procesos Se basan en dos principios: Si dos eventos ocurrieron en un mismo proceso pi (i = 1..N) entonces el proceso pi puede determinar con exactitud cual ocurrió antes y cual despues Cuando un mensaje es enviado entre procesos entonces el evento de mandarlo ocurrió necesariamente antes que el de recibirlo

5 Algoritmo de Lamport Un reloj lógico es un contador monotónicamente creciente, cuyo valor absoluto no es importante Cada proceso pi tiene su propio reloj lógico Li que usa para ponerle el timestamp a los eventos Llamemos el timestamp del evento e en pi Li(e) y llamamos L(e) si no nos importa qué proceso le dio el valor

6 Algoritmo de Lamport Cada proceso pi incrementa en uno su reloj Li cada vez que ocurre un evento Cuando un proceso manda un evento, le incluye el valor t = Li en el mensaje (m,t) Cuando un proceso pj recibe un mensaje ajusta su reloj con el valor Lj = max(Lj, t) y luego suma 1 para reflejar el evento de recibo de mensaje Con esto se puede ordenar relativamente bien las cadenas de eventos 1 2 p1 4 p2 3 p3 1 5

7 Ordenamiento total lógico
Se puede dar que pares distintos de eventos tengan el mismo timestamp si fueron generados en procesos distintos. Esto se puede corregir incluyendo la identificación del proceso en el timestamp Si e1 ocurrió en el proceso pi en el instante Ti (lógico) y e2 ocurrió en pj en el instante Tj entonces los timestamps serán (Ti,i) y (Tj,j) respectivamente Se define (Ti,i) < (Tj,j) si Ti < Tj o i < j Esto no tiene ningún significado físico

8 Relojes Vector Un reloj vector para un sistema de N procesos es un arreglo (o vector) de N enteros. Cada proceso pi guarda un vector propio Vi con valores Vi[j], j= 1,2,3...N Cada vez que el proceso pi produce un evento actualiza Vi[i]++ Cada vez que manda un mensaje envía un “timestamp” que consiste en todo el vector Vi Cuando un proceso j recibe un mensaje de pi actualiza su vector Vj[k] = max(Vi[k],Vj[k]) para k= 1...N

9 Relojes Vector Problema: el tráfico es proporcional a N
Se puede definir un orden entre los vectores de la siguiente forma: V = V’ ssi V[j] = V’[j] para j = 1...N V <= V’ ssi V[j] <= V’[j] para j = 1...N V < V’ ssi V[j] <= V’[j] y hay al menos un k para el cual V[k] < V’[k] Problema: el tráfico es proporcional a N (1,0,0) (2,0,0) p1 (2,2,0) p2 (2,1,0) p3 (1,0,0) (2,2,2)


Descargar ppt "Sincronización de Relojes"

Presentaciones similares


Anuncios Google