1 / 9

Sincronización de Relojes

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.

rana-dillon
Download Presentation

Sincronización de Relojes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 3 p2 1 5 p3

  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 • 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) (2,1,0) p2 (1,0,0) (2,2,2) p3

More Related