SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Tiempo, causalidad
y
estado global
Sistemas Distribuidos
Alberto Lafuente, Mikel Larrea
Dpto. ATC, UPV/EHU
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 2
Tiempo, causalidad y estado
global
1 Introducción
2 Tiempo físico
2.1 Sincronización externa
2.2 Sincronización interna
2.3 Compensación de desviaciones
2.4 Ejemplos
3 Tiempo lógico y orden de eventos
3.1 Modelo de eventos
3.2 Relojes lógicos de Lamport
3.3 Vectores de tiempos
4 Estado global y consistencia
4.1 Modelo del sistema
4.2 Determinación de estados globales consistentes
4.3 Algoritmo de Chandy y Lamport
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 3
1 Introducción
• En un sistema distribuido el estado global se
encuentra distribuido entre los nodos
– reloj estándar en cada nodo
– comunicación entre nodos: retardos
– cada nodo posee una visión subjetiva del estado global
• Ejemplos:
– en el instante t1 se manda un mensaje desde el nodo A
al nodo B, que lo recibe en el instante t2, con t2 < t1
– establecer con precisión absoluta el montante de los
depósitos en todas las cuentas bancarias de todos los
bancos del mundo en un instante de tiempo dado
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 4
1 Introducción
• Propuesta de solución: un único reloj preciso + red
dedicada para transmitir la señal sin retardos
– no es práctico (coste), o es inviable (Internet)
• Solución: tiempo distribuido
– cada nodo posee su propio reloj (tiempo físico local)
– los relojes son imprecisos: necesario ajustarlos
periódicamente a un tiempo físico de referencia
• Por otra parte, la gestión consistente del estado
global requiere al menos ordenar los eventos
producidos por los nodos (causalidad)
– tiempo lógico
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 5
Clock Synchronization
• When each machine has its own clock, an event
that occurred after another event may
nevertheless be assigned an earlier time.
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 6
2 Tiempo físico
• Los relojes de los computadores son de cuarzo
• La frecuencia de oscilación varía con la temperatura
• deriva: ~10-6 (90ms en un día, 1s cada 11,6 días)
• Relojes atómicos: gran precisión, muy caros
• deriva: ~10-13 (9ns en un día, 1s cada 300000 años)
• precio: $50.000 - $100.000 !!!
• Tipos de sincronización:
• conocer el instante preciso en que se produce un evento en un
nodo: sincronización externa
• medir el intervalo entre dos eventos producidos en nodos
diferentes (por ejemplo, envío y recepción de un mensaje),
usando los relojes locales de cada nodo: sincronización interna
• la interna no implica la externa, pero al revés sí
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 7
Relojes atómicos
NIST-7 (1993)
Deriva: 5 x 10-15
NIST-F1 (2005)
Deriva: 5 x 10-16
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 8
2 Tiempo físico
• Definiciones:
– Segundo solar o astronómico: 1/86.400 del periodo de
rotación de la Tierra (mean solar second)
• pese a ser perfectamente válido para las situaciones de la vida
cotidiana, la Tierra no gira a velocidad constante (va perdiendo
lentamente velocidad), por lo que no sirve como referencia
– Segundo atómico (IAT, 1967): 9.192.631.770 periodos
de transición en un átomo de Cesio-133. Los relojes
atómicos miden este tiempo
• deriva de 3*10-8 con el segundo solar (~1 s al año)
– Tiempo universal coordinado (UTC): medido en
segundos atómicos, sincronizado con tiempo
astronómico (diferencia > 900 ms ⇒ inserción de 1 s)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 9
2 Tiempo físico
• Definiciones:
– Tiempo físico de referencia: normalmente UTC
– Resolución: periodo entre dos actualizaciones del
registro del tiempo local
• debe ser menor que el intervalo de tiempo mínimo entre dos
eventos producidos consecutivamente en el nodo
– Desviación (offset, skew, θ): diferencia entre el tiempo
local y el tiempo físico de referencia en un instante
– Deriva (drift, δ): desviación por unidad de tiempo (lo
que adelanta o atrasa el reloj)
– Precisión (accuracy): desviación máxima que se puede
garantizar en el ajuste de un reloj
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 10
Clock Synchronization Algorithms
• The relation between clock time and UTC when clocks tick at different rates.
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 11
2.1 Sincronización externa
• Sincronización: procedimiento por el que se ajusta
el valor de un reloj a un tiempo físico de
referencia con una precisión preestablecida
• Referencias de tiempo UTC se difunden
periódicamente por radio
• velocidad de propagación: ~3*108 m/s (1.000 km: ~3 ms)
• velocidad variable: pérdida de precisión
• Precisión de receptores comerciales:
• Estaciones terrestres: 0,1 - 10 ms
• Satélites geoestacionarios (35.786 km): 0,5 ms
• Satélites GPS (20.200 km): 1 µs
• Usos: servicio horario preciso, contabilidad…
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 12
2.2 Sincronización interna
• Para muchas aplicaciones es más importante
mantener bien sincronizados entre sí los relojes
locales que conseguir una gran precisión en la
sincronización externa
– permite ordenar eventos (causalidad)
• Propuesta de solución: receptor UTC en cada nodo
– no es práctico (coste)
• Solución: algoritmos de sincronización interna
– centralizados: basados en un servidor específico
– distribuidos: estadísticos
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 13
2.2.1 Algoritmos centralizados
• Principio:
– utiliza un servidor de tiempos que proporciona
referencias fiables (por ejemplo, un servidor que se
sincroniza periódicamente con UTC)
– el cliente envía una petición al servidor (mreq)
– el servidor contesta enviando la referencia de tiempo en
otro mensaje (mt)
– retardo de los mensajes: min + d
• min es el tiempo mínimo de transmisión. Es constante y se
puede determinar a partir de las características de la red
• d es variable y depende de la carga del sistema y de la red
• Ejemplo: algoritmo de Cristian (1989)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 14
2.2.1 Algoritmos centralizados
t(mt): tiempo devuelto por el servidor en el mensaje mt
D: tiempo desde que se envía mreq y se recibe mt
min: tiempo mínimo de transmisión de un mensaje
Suposición: el servidor asigna la referencia t(mt) en la mitad del intervalo
D-2*min (instante t en el cliente). Así se logra la mejor precisión
Desviación: θ = t - t(mt) = t1 - D/2 - t(mt)
Precisión = D/2 – min
mreq
S
C
mt
D
min min
ds+dr
D – 2min
t1
t
Algoritmo
de Cristian
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 15
2.2.1 Algoritmos centralizados
• Ejemplo del algoritmo de Cristian (3 peticiones):
Pet. D (ms) t1 (hh:mm:ss.ms) t(mt) (hh:mm:ss.ms)
(1) 22 10:54:22.236 10:54:23.674
(2) 26 10:54:24.000 10:54:25.450
(3) 20 10:54:26.946 10:54:28.342
• ¿Qué petición debería usar el cliente? Calcula la precisión y
desviación obtenidas
• Conociendo que el tiempo mínimo de transmisión es de 7 ms,
¿cambia en algo la respuesta anterior?
• ¿Qué se necesitaría para obtener una precisión de 2 ms?
Precisión = 10 ms Desviación = 1406 ms
Siendo min = 7 ms, una petición con D ≤ 18 ms
Precisión = 3 ms
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 16
2.2.1 Algoritmos centralizados
20
t
20
t
20
t
20
t
(10:54:28.342)
(10:54:28.342) (10:54:28.342)
(10:54:28.342)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 17
2.2.1 Algoritmos centralizados
20
7 7
6
t
20
7 7
6
t
20
7 7
6
t
20
7 7
6
t
(10:54:28.342)
(10:54:28.342)
(10:54:28.342)
(10:54:28.342)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 18
2.2.2 Algoritmos distribuidos
• Principio estadístico de los algoritmos distribuidos:
– las diferentes desviaciones de los tiempos locales tienden a
cancelarse entre ellas en torno a un tiempo medio que se puede
tomar como referencia fiables para la sincronización interna
• Ejemplo: algoritmo de Berkeley (1989)
• el coordinador solicita los tiempos a los demás nodos
• el coordinador calcula un tiempo medio a partir de las medidas
obtenidas, excluyendo las respuestas espurias y las que no llegan en
plazo
• el coordinador envía a cada nodo su desviación con respecto a la
media, para que realice el ajuste
• si el coordinador falla, se elige un nuevo coordinador
T = Σ(t(mi) - Di/2) / N
θi = t(mi) - Di/2 - T
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 19
The Berkeley Algorithm
a) The time daemon asks all the other machines for their clock values
b) The machines answer
c) The time daemon tells everyone how to adjust their clock
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 20
2.2.2 Algoritmos distribuidos
• Ejemplo del algoritmo de Berkeley:
Nodo D (ms) t (hh:mm:ss.ms)
N1 (coord.) 0 10:54:23.118
N2 22 10:54:22.236
N3 26 10:54:24.000
N4 190 10:41:46.179
N5 20 10:54:26.946
• Calcula el tiempo medio para la sincronización y la desviación
a enviar a cada nodo
• Usando el método de Cristian, calcula la precisión en el ajuste
de cada nodo al sincronizarse (min no se conoce)
Tiempo medio = 10:54:24.067
Excluido!
Desviaciones
-948 ms
-1842 ms
-79 ms
-757983 ms
+2870 ms
D/2
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 21
2.2.2 Algoritmos distribuidos
190
22
20
26
N1
N2
N3
N4
N5
(
1
0
:
5
4
:
2
6
.
9
4
6
)
(10:41:46.179)
(
1
0
:
5
4
:
2
4
.
0
0
0
)
(10:54:22.236)
(10:54:23.118)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 22
2.3 Compensación de desviaciones
• Propiedad fundamental: monotonicidad creciente
Desviación negativa Desviación positiva
tiempo real
tiempo de
referencia
tiempo local con
desviación negativa
compensación
(a)
tiempo real
tiempo de
referencia
tiempo local con
desviación positiva
intervalo de compensación
(b)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 23
2.4 Ejemplos
• Distributed Time Server (DTS)
– algoritmo distribuido
– servidores (time servers): UTC
– clientes (time clerks)
Time server 4
Time server 1
Time server 3
Time server 2
Time server 5
Tiempo acordado
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 24
2.4 Ejemplos
• Network Time Protocol (NTP)
– estándar en Internet
– proporciona sincronización redundante con UTC
– Estructurado en capas (strata) de servidores de tiempo
• servidores primarios (strata 1): referencias UTC fiables
• servidores de nivel 2 (strata 2): sincronizados con primarios
• ...
– Modos de operación:
• red local con soporte adecuado: modo multicast
• mayor precisión: modo de llamada a procedimiento
• mejor sincronización interna: modo simétrico
– La red de servidores se puede reconfigurar
1
2
3
2
3 3
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 25
2.4 Ejemplos
• Network Time Protocol (NTP): modo simétrico
m
Servidor B
T2
Servidor A
T3
T4
T1
m’
T2 = T1 + t + θ
T4 = T3 + t’ – θ
di = t + t’ = T2 – T1 + T4 - T3 = (T4 – T1) – (T3 – T2)
θ = θi + (t’ – t) / 2, non θi = (T2 – T1 + T3 – T4) / 2
θi – (di / 2) ≤ θ ≤ θi + (di / 2)
θi estimación de la desviación; (di / 2) precisión
Hipótesis: A retrasado respecto a B (θ)
t, t’ ≥ 0 son los retardos de los mensajes m y m’
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 26
2.4 Ejemplos
• Network Time Protocol (NTP): ejercicio
• ¿Estimación de la desviación?
• ¿Precisión?
m
Servidor B
16:34:23.480
Servidor A
16:34:25.700
16:34:15.725
16:34:13.430
m’
t + t’ = 0.075, θi = 10.013
θ = 10.013 ± 0.038 (9.975 .. 10.051)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 27
3 Tiempo lógico y orden de
eventos
• A veces la precisión obtenida al sincronizar los
relojes no nos permite usar el tiempo físico para
ordenar los eventos de los diferentes nodos de un
sistema distribuido
– siempre es posible ordenar los eventos de un mismo
nodo (si se respeta la monotonicidad del reloj)
– en cambio, relaciones de causalidad entre eventos de
nodos diferentes pueden verse distorsionadas
• Muchas aplicaciones requieren únicamente
ordenar los eventos (y no tanto conocer el instante
exacto en que ocurrieron)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 28
3.1 Modelo de eventos
• Modelo de sistema: conjunto de procesos que
comunican únicamente mediante paso de mensajes
enviar (pi, mensaje)
recibir (pj, mensaje)
pi y pj son el emisor y el receptor del mensaje
• Simplificación: un proceso por nodo/máquina
• Cada proceso genera una secuencia de eventos.
Identificamos tres tipos de eventos:
• Envío de un mensaje (al ejecutar enviar)
• Recepción de un mensaje (al ejecutar recibir)
• Eventos locales/internos (resto de eventos, sin comunicación)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 29
3.1 Modelo de eventos
• Para ordenar los eventos de un mismo proceso
bastaría con asociar a cada evento x el tiempo
local T(x) (si la resolución es suficiente)
• Se dice que existe una relación de causalidad entre
dos eventos del sistema (x → y, “x ha sucedido
antes que y”, “x happened before y”) si:
1. x e y son eventos del mismo proceso y T(x)<T(y)
2. x e y son los eventos enviar(m) y recibir(m) del mismo
mensaje m
3. Existe otro evento z tal que x → z y z → y (cierre
transitivo de la relación)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 30
3.1 Modelo de eventos
• Si entre dos eventos no hay relación de causalidad,
se dice que son concurrentes: x || y
a → b b → c a → c a → f a || e e || d
P1
P3
P2
a b
c d
e f
m1
m2
enviar(m1)
recibir(m1)
enviar(m2)
recibir(m2)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 31
3.2 Relojes lógicos de Lamport
• Propuesto en 1978, para indicar relaciones de
causalidad. Cada proceso Pi tiene su reloj lógico
local Ci, para asociar marcas de tiempo a sus
eventos (un simple contador asíncrono basta)
• Algoritmo:
• Inicialmente, Ci = 0, ∀i
• Antes de un evento local o envío de mensaje en pi: Ci = Ci + 1
• Cuando pj envía un mensaje m a pi, pj incluye el valor de su
reloj lógico en el mensaje, Cm. Al recibir dicho mensaje, pi
actualiza su reloj local de la siguiente manera:
(1) Ci = max(Ci, Cm), (2) Ci = Ci + 1
– Problema: Ci(x) < Cj(y) no implica x → y
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 32
3.2 Relojes lógicos de Lamport
a → b b → c a → c a → f a || e e || d
P1
P3
P2
a b
c d
e f
m1
m2
enviar(m1)
recibir(m1)
enviar(m2)
recibir(m2)
1
0 2
0 3 4
0 1 5
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 33
3.3 Vectores de tiempos
Garantizan: Vi(x) < Vj(y) ⇔ x → y
– V: vector de N componentes (N=número de procesos)
– Vi[i]: reloj lógico (local) del proceso Pi
– Vi[j]: último valor que el proceso Pi conoce del reloj
del proceso Pj
• Algoritmo:
• Inicialmente, Vi[j] = 0, ∀i, j
• Evento local o envío de mensaje en pi: Vi[i] = Vi[i] + 1
• Cuando pj envía un mensaje m a pi, pj incluye el valor de su
vector de tiempos, Vm. Al recibir dicho mensaje, pi actualiza su
vector de tiempos de la siguiente manera:
(1) ∀k: Vi[k] = max(Vi[k], Vm[k]), (2) Vi[i] = Vi[i] + 1
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 34
3.3 Vectores de tiempos
• Definición:
V1 < V2 ⇔ ∀i V1[i] ≤ V2[i] and ∃j V1[j] < V2[j]
• Existirá relación de causalidad entre dos eventos
(x, y) si y sólo si
V(x) < V(y) o V(y) < V(x)
• Si no, los eventos son concurrentes
• Los vectores de tiempos permiten determinar
relaciones de causalidad con total precisión:
Vi(x) < Vj(y) ⇔ x → y
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 35
3.3 Vectores de tiempos
a → b b → c a → c a → f a || e e || d
P1
P3
P2
a b
c d
e f
m1
m2
enviar(m1)
recibir(m1)
enviar(m2)
recibir(m2)
[1 0 0]
[0 0 0] [2 0 0]
[0 0 0] [2 1 0] [2 2 0]
[0 0 0] [0 0 1] [2 2 2]
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 36
4 Estado global y consistencia
• Modelo de sistema:
– N procesos Pi (i = 1, 2, ..., N)
– historia(Pi) = hi = < ei
0, ei
1, ei
2, ... >
– prefijo de historia hi
k = < ei
0, ei
1, ..., ei
k >
– si
k: estado del proceso Pi tras el evento ei
k
– si
0: estado inicial del proceso Pi
• Estado global del sistema: S = (s1, s2, ..., sN)
– Algunos estados globales pueden ser “inconsistentes”
• Corte: unión de prefijos de historia de los procesos
– C = h1
c1 ∪ h2
c2 ∪ ... ∪ hN
cN = (c1, c2, ..., cN)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 37
4 Estado global y consistencia
• Frontera de un corte: unión de los últimos eventos
(c1, c2, ..., cN) ⇒ (e1
c1, e2
c2, ..., eN
cN)
• A cada corte le corresponde un estado global
(c1, c2, ..., cN) ⇒ (s1
c1, s2
c2, ..., sN
cN)
• Un corte C es consistente si para todo par de
eventos (e, e’) se cumple lo siguiente:
(e ∈ C) ∧ (e’ → e) ⇒ e’ ∈ C
– Si no, el corte C es inconsistente
• A cada corte consistente le corresponde un estado
global consistente
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 38
4 Estado global y consistencia
• Corte consistente: si el evento de recepción de un
mensaje está “dentro” del corte, entonces el evento
de envío de dicho mensaje también debe estar
P1
P2
a c
d
b
e
P1
P2
a c
d
b
e
(a) (b)
inconsistente
d ∈ C, b → d, b ∉ C
consistente
C C’
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 39
4 Estado global y consistencia
• Para saber si un corte es consistente, nos podemos
basar en los vectores de tiempos:
∀i, j: Vi[i](ei
ci) ≥ Vj[i](ej
cj)
• Puesto que cada proceso posee una visión parcial
del sistema, para construir un corte consistente (y
obtener de paso su estado global asociado) los
procesos deben ejecutar un algoritmo distribuido
– Ejemplo: algoritmo de Chandy y Lamport (1985)
• Utilidad: detección de interbloqueos,
establecimiento de puntos de recuperación de un
sistema, finalización distribuida
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 40
4 Estado global y consistencia
• Algoritmo snapshot de Chandy y Lamport:
1. process p1 (the initiator of the snapshot) saves its state s1 and
broadcasts the message SNAPSHOT to P (the set of processes).
2. Let process pi receive the SNAPSHOT message the first time
from some process pj (pj can be different from p1). At that time,
pi saves its state si and forwards the SNAPSHOT message to P.
The state of the channel cji is set to empty, and pi starts logging
the messages received on the channels cki (for all k ≠ j).
3. When pi receives SNAPSHOT from pk, then the computation of
the state of the channel cki is complete. As soon as pi has
received SNAPSHOT from all the processes in P, the
computation of the snapshot is terminated.
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 41
4 Estado global y consistencia
p1
p2
p3
i11
i31
i12
r11
r21
i21
i: petición (invocation)
r: respuesta (reply)
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 42
4 Estado global y consistencia
p1
p2
p3
i11
i31
i12
r11
r21
i21
i: petición (invocation)
r: respuesta (reply)
e11 e12 e13 e14 e15 e16
e23
e21
e31 e32 e33 e35
e34 e36
1 2 4 5 6 7
6
1
e22
5
1 2 3 5
4 7
0
0
0
[100] [210] [313] [413] [513] [613]
[000]
[010] [124] [434]
[000]
[001] [102][103][104] [105] [516]
[000]
Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 43
4 Estado global y consistencia
p1
p2
p3
i11
i31
i12
r11
r21
i21
i: petición (invocation)
r: respuesta (reply)
C2=(5,2,5)
C1=(3,2,6)
[313]
[124]
[516]
[513]
[105]
c12={r21}
c13={i12}
c21={Ø}
c23={Ø}
c31={Ø}
c32={Ø}

Más contenido relacionado

Similar a Tiempo, causalidad y estado global Alberto Lafuente Transparencias

Similar a Tiempo, causalidad y estado global Alberto Lafuente Transparencias (20)

Tiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente TeorìaTiempo, causalidad y estado global Alberto Lafuente Teorìa
Tiempo, causalidad y estado global Alberto Lafuente Teorìa
 
Sincronización en Redes Telefónicas Públicas Conmutadas
Sincronización en Redes Telefónicas Públicas ConmutadasSincronización en Redes Telefónicas Públicas Conmutadas
Sincronización en Redes Telefónicas Públicas Conmutadas
 
IV Unidad Sistemas Operativos 2 Cliente-Servidor
IV Unidad Sistemas Operativos 2 Cliente-Servidor IV Unidad Sistemas Operativos 2 Cliente-Servidor
IV Unidad Sistemas Operativos 2 Cliente-Servidor
 
sistemas distribuidos2.pptx
sistemas distribuidos2.pptxsistemas distribuidos2.pptx
sistemas distribuidos2.pptx
 
Unidad III
Unidad IIIUnidad III
Unidad III
 
Sistema GPS.ppt
Sistema GPS.pptSistema GPS.ppt
Sistema GPS.ppt
 
Sistema GPS.ppt
Sistema GPS.pptSistema GPS.ppt
Sistema GPS.ppt
 
Sistema gps
Sistema gpsSistema gps
Sistema gps
 
Sistema GPS.ppt
Sistema GPS.pptSistema GPS.ppt
Sistema GPS.ppt
 
Sistema gps
Sistema gpsSistema gps
Sistema gps
 
Conceptos
ConceptosConceptos
Conceptos
 
Matemáticas y espacio
Matemáticas y espacioMatemáticas y espacio
Matemáticas y espacio
 
Routing And Wavelength Assignment - Computer Networks
Routing And Wavelength Assignment - Computer NetworksRouting And Wavelength Assignment - Computer Networks
Routing And Wavelength Assignment - Computer Networks
 
Redes de transporte
Redes de transporteRedes de transporte
Redes de transporte
 
Control digital
Control digitalControl digital
Control digital
 
Clase modelo istp
Clase modelo istpClase modelo istp
Clase modelo istp
 
Ciclicos.pdf
Ciclicos.pdfCiclicos.pdf
Ciclicos.pdf
 
Diseño de Filtros Analógicos
Diseño de Filtros AnalógicosDiseño de Filtros Analógicos
Diseño de Filtros Analógicos
 
Arquitectura proyecto final
Arquitectura proyecto finalArquitectura proyecto final
Arquitectura proyecto final
 
Solemne 2 (con pauta)
Solemne 2 (con pauta)Solemne 2 (con pauta)
Solemne 2 (con pauta)
 

Más de Rene Guaman-Quinche (20)

interfaces.pdf
interfaces.pdfinterfaces.pdf
interfaces.pdf
 
Paradigma Programación Orientada a Objetos
Paradigma Programación Orientada a ObjetosParadigma Programación Orientada a Objetos
Paradigma Programación Orientada a Objetos
 
Fundamentos ingeniería de requisitos.pdf
Fundamentos ingeniería de requisitos.pdfFundamentos ingeniería de requisitos.pdf
Fundamentos ingeniería de requisitos.pdf
 
replicacion heterogenea.pdf
replicacion heterogenea.pdfreplicacion heterogenea.pdf
replicacion heterogenea.pdf
 
Elicitación de requerimientos
Elicitación de requerimientosElicitación de requerimientos
Elicitación de requerimientos
 
Arquitectura sw varios niveles.pdf
Arquitectura sw varios niveles.pdfArquitectura sw varios niveles.pdf
Arquitectura sw varios niveles.pdf
 
Hilos con Posix
Hilos con PosixHilos con Posix
Hilos con Posix
 
Introducción a los sistemas distribuidos
Introducción a los sistemas distribuidosIntroducción a los sistemas distribuidos
Introducción a los sistemas distribuidos
 
Diagramas componentes
Diagramas componentesDiagramas componentes
Diagramas componentes
 
Diagramas de secuencia
Diagramas de secuenciaDiagramas de secuencia
Diagramas de secuencia
 
C4model - Arquitectura de Software
C4model - Arquitectura de SoftwareC4model - Arquitectura de Software
C4model - Arquitectura de Software
 
Sistema de Archivos Distribuidos
Sistema de Archivos DistribuidosSistema de Archivos Distribuidos
Sistema de Archivos Distribuidos
 
RPC
RPCRPC
RPC
 
Unidad 2 diseño orientado a objetos
Unidad 2 diseño orientado a objetosUnidad 2 diseño orientado a objetos
Unidad 2 diseño orientado a objetos
 
Ciclo de vida software
Ciclo de vida softwareCiclo de vida software
Ciclo de vida software
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socket
 
Modelo paso de mensajes
Modelo paso de mensajesModelo paso de mensajes
Modelo paso de mensajes
 
RMI
RMIRMI
RMI
 
Requisitos no Funcionales
Requisitos no FuncionalesRequisitos no Funcionales
Requisitos no Funcionales
 
Requisitos funcionales
Requisitos funcionalesRequisitos funcionales
Requisitos funcionales
 

Último

Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 

Último (7)

Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 

Tiempo, causalidad y estado global Alberto Lafuente Transparencias

  • 1. Tiempo, causalidad y estado global Sistemas Distribuidos Alberto Lafuente, Mikel Larrea Dpto. ATC, UPV/EHU
  • 2. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 2 Tiempo, causalidad y estado global 1 Introducción 2 Tiempo físico 2.1 Sincronización externa 2.2 Sincronización interna 2.3 Compensación de desviaciones 2.4 Ejemplos 3 Tiempo lógico y orden de eventos 3.1 Modelo de eventos 3.2 Relojes lógicos de Lamport 3.3 Vectores de tiempos 4 Estado global y consistencia 4.1 Modelo del sistema 4.2 Determinación de estados globales consistentes 4.3 Algoritmo de Chandy y Lamport
  • 3. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 3 1 Introducción • En un sistema distribuido el estado global se encuentra distribuido entre los nodos – reloj estándar en cada nodo – comunicación entre nodos: retardos – cada nodo posee una visión subjetiva del estado global • Ejemplos: – en el instante t1 se manda un mensaje desde el nodo A al nodo B, que lo recibe en el instante t2, con t2 < t1 – establecer con precisión absoluta el montante de los depósitos en todas las cuentas bancarias de todos los bancos del mundo en un instante de tiempo dado
  • 4. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 4 1 Introducción • Propuesta de solución: un único reloj preciso + red dedicada para transmitir la señal sin retardos – no es práctico (coste), o es inviable (Internet) • Solución: tiempo distribuido – cada nodo posee su propio reloj (tiempo físico local) – los relojes son imprecisos: necesario ajustarlos periódicamente a un tiempo físico de referencia • Por otra parte, la gestión consistente del estado global requiere al menos ordenar los eventos producidos por los nodos (causalidad) – tiempo lógico
  • 5. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 5 Clock Synchronization • When each machine has its own clock, an event that occurred after another event may nevertheless be assigned an earlier time.
  • 6. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 6 2 Tiempo físico • Los relojes de los computadores son de cuarzo • La frecuencia de oscilación varía con la temperatura • deriva: ~10-6 (90ms en un día, 1s cada 11,6 días) • Relojes atómicos: gran precisión, muy caros • deriva: ~10-13 (9ns en un día, 1s cada 300000 años) • precio: $50.000 - $100.000 !!! • Tipos de sincronización: • conocer el instante preciso en que se produce un evento en un nodo: sincronización externa • medir el intervalo entre dos eventos producidos en nodos diferentes (por ejemplo, envío y recepción de un mensaje), usando los relojes locales de cada nodo: sincronización interna • la interna no implica la externa, pero al revés sí
  • 7. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 7 Relojes atómicos NIST-7 (1993) Deriva: 5 x 10-15 NIST-F1 (2005) Deriva: 5 x 10-16
  • 8. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 8 2 Tiempo físico • Definiciones: – Segundo solar o astronómico: 1/86.400 del periodo de rotación de la Tierra (mean solar second) • pese a ser perfectamente válido para las situaciones de la vida cotidiana, la Tierra no gira a velocidad constante (va perdiendo lentamente velocidad), por lo que no sirve como referencia – Segundo atómico (IAT, 1967): 9.192.631.770 periodos de transición en un átomo de Cesio-133. Los relojes atómicos miden este tiempo • deriva de 3*10-8 con el segundo solar (~1 s al año) – Tiempo universal coordinado (UTC): medido en segundos atómicos, sincronizado con tiempo astronómico (diferencia > 900 ms ⇒ inserción de 1 s)
  • 9. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 9 2 Tiempo físico • Definiciones: – Tiempo físico de referencia: normalmente UTC – Resolución: periodo entre dos actualizaciones del registro del tiempo local • debe ser menor que el intervalo de tiempo mínimo entre dos eventos producidos consecutivamente en el nodo – Desviación (offset, skew, θ): diferencia entre el tiempo local y el tiempo físico de referencia en un instante – Deriva (drift, δ): desviación por unidad de tiempo (lo que adelanta o atrasa el reloj) – Precisión (accuracy): desviación máxima que se puede garantizar en el ajuste de un reloj
  • 10. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 10 Clock Synchronization Algorithms • The relation between clock time and UTC when clocks tick at different rates.
  • 11. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 11 2.1 Sincronización externa • Sincronización: procedimiento por el que se ajusta el valor de un reloj a un tiempo físico de referencia con una precisión preestablecida • Referencias de tiempo UTC se difunden periódicamente por radio • velocidad de propagación: ~3*108 m/s (1.000 km: ~3 ms) • velocidad variable: pérdida de precisión • Precisión de receptores comerciales: • Estaciones terrestres: 0,1 - 10 ms • Satélites geoestacionarios (35.786 km): 0,5 ms • Satélites GPS (20.200 km): 1 µs • Usos: servicio horario preciso, contabilidad…
  • 12. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 12 2.2 Sincronización interna • Para muchas aplicaciones es más importante mantener bien sincronizados entre sí los relojes locales que conseguir una gran precisión en la sincronización externa – permite ordenar eventos (causalidad) • Propuesta de solución: receptor UTC en cada nodo – no es práctico (coste) • Solución: algoritmos de sincronización interna – centralizados: basados en un servidor específico – distribuidos: estadísticos
  • 13. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 13 2.2.1 Algoritmos centralizados • Principio: – utiliza un servidor de tiempos que proporciona referencias fiables (por ejemplo, un servidor que se sincroniza periódicamente con UTC) – el cliente envía una petición al servidor (mreq) – el servidor contesta enviando la referencia de tiempo en otro mensaje (mt) – retardo de los mensajes: min + d • min es el tiempo mínimo de transmisión. Es constante y se puede determinar a partir de las características de la red • d es variable y depende de la carga del sistema y de la red • Ejemplo: algoritmo de Cristian (1989)
  • 14. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 14 2.2.1 Algoritmos centralizados t(mt): tiempo devuelto por el servidor en el mensaje mt D: tiempo desde que se envía mreq y se recibe mt min: tiempo mínimo de transmisión de un mensaje Suposición: el servidor asigna la referencia t(mt) en la mitad del intervalo D-2*min (instante t en el cliente). Así se logra la mejor precisión Desviación: θ = t - t(mt) = t1 - D/2 - t(mt) Precisión = D/2 – min mreq S C mt D min min ds+dr D – 2min t1 t Algoritmo de Cristian
  • 15. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 15 2.2.1 Algoritmos centralizados • Ejemplo del algoritmo de Cristian (3 peticiones): Pet. D (ms) t1 (hh:mm:ss.ms) t(mt) (hh:mm:ss.ms) (1) 22 10:54:22.236 10:54:23.674 (2) 26 10:54:24.000 10:54:25.450 (3) 20 10:54:26.946 10:54:28.342 • ¿Qué petición debería usar el cliente? Calcula la precisión y desviación obtenidas • Conociendo que el tiempo mínimo de transmisión es de 7 ms, ¿cambia en algo la respuesta anterior? • ¿Qué se necesitaría para obtener una precisión de 2 ms? Precisión = 10 ms Desviación = 1406 ms Siendo min = 7 ms, una petición con D ≤ 18 ms Precisión = 3 ms
  • 16. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 16 2.2.1 Algoritmos centralizados 20 t 20 t 20 t 20 t (10:54:28.342) (10:54:28.342) (10:54:28.342) (10:54:28.342)
  • 17. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 17 2.2.1 Algoritmos centralizados 20 7 7 6 t 20 7 7 6 t 20 7 7 6 t 20 7 7 6 t (10:54:28.342) (10:54:28.342) (10:54:28.342) (10:54:28.342)
  • 18. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 18 2.2.2 Algoritmos distribuidos • Principio estadístico de los algoritmos distribuidos: – las diferentes desviaciones de los tiempos locales tienden a cancelarse entre ellas en torno a un tiempo medio que se puede tomar como referencia fiables para la sincronización interna • Ejemplo: algoritmo de Berkeley (1989) • el coordinador solicita los tiempos a los demás nodos • el coordinador calcula un tiempo medio a partir de las medidas obtenidas, excluyendo las respuestas espurias y las que no llegan en plazo • el coordinador envía a cada nodo su desviación con respecto a la media, para que realice el ajuste • si el coordinador falla, se elige un nuevo coordinador T = Σ(t(mi) - Di/2) / N θi = t(mi) - Di/2 - T
  • 19. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 19 The Berkeley Algorithm a) The time daemon asks all the other machines for their clock values b) The machines answer c) The time daemon tells everyone how to adjust their clock
  • 20. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 20 2.2.2 Algoritmos distribuidos • Ejemplo del algoritmo de Berkeley: Nodo D (ms) t (hh:mm:ss.ms) N1 (coord.) 0 10:54:23.118 N2 22 10:54:22.236 N3 26 10:54:24.000 N4 190 10:41:46.179 N5 20 10:54:26.946 • Calcula el tiempo medio para la sincronización y la desviación a enviar a cada nodo • Usando el método de Cristian, calcula la precisión en el ajuste de cada nodo al sincronizarse (min no se conoce) Tiempo medio = 10:54:24.067 Excluido! Desviaciones -948 ms -1842 ms -79 ms -757983 ms +2870 ms D/2
  • 21. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 21 2.2.2 Algoritmos distribuidos 190 22 20 26 N1 N2 N3 N4 N5 ( 1 0 : 5 4 : 2 6 . 9 4 6 ) (10:41:46.179) ( 1 0 : 5 4 : 2 4 . 0 0 0 ) (10:54:22.236) (10:54:23.118)
  • 22. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 22 2.3 Compensación de desviaciones • Propiedad fundamental: monotonicidad creciente Desviación negativa Desviación positiva tiempo real tiempo de referencia tiempo local con desviación negativa compensación (a) tiempo real tiempo de referencia tiempo local con desviación positiva intervalo de compensación (b)
  • 23. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 23 2.4 Ejemplos • Distributed Time Server (DTS) – algoritmo distribuido – servidores (time servers): UTC – clientes (time clerks) Time server 4 Time server 1 Time server 3 Time server 2 Time server 5 Tiempo acordado
  • 24. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 24 2.4 Ejemplos • Network Time Protocol (NTP) – estándar en Internet – proporciona sincronización redundante con UTC – Estructurado en capas (strata) de servidores de tiempo • servidores primarios (strata 1): referencias UTC fiables • servidores de nivel 2 (strata 2): sincronizados con primarios • ... – Modos de operación: • red local con soporte adecuado: modo multicast • mayor precisión: modo de llamada a procedimiento • mejor sincronización interna: modo simétrico – La red de servidores se puede reconfigurar 1 2 3 2 3 3
  • 25. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 25 2.4 Ejemplos • Network Time Protocol (NTP): modo simétrico m Servidor B T2 Servidor A T3 T4 T1 m’ T2 = T1 + t + θ T4 = T3 + t’ – θ di = t + t’ = T2 – T1 + T4 - T3 = (T4 – T1) – (T3 – T2) θ = θi + (t’ – t) / 2, non θi = (T2 – T1 + T3 – T4) / 2 θi – (di / 2) ≤ θ ≤ θi + (di / 2) θi estimación de la desviación; (di / 2) precisión Hipótesis: A retrasado respecto a B (θ) t, t’ ≥ 0 son los retardos de los mensajes m y m’
  • 26. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 26 2.4 Ejemplos • Network Time Protocol (NTP): ejercicio • ¿Estimación de la desviación? • ¿Precisión? m Servidor B 16:34:23.480 Servidor A 16:34:25.700 16:34:15.725 16:34:13.430 m’ t + t’ = 0.075, θi = 10.013 θ = 10.013 ± 0.038 (9.975 .. 10.051)
  • 27. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 27 3 Tiempo lógico y orden de eventos • A veces la precisión obtenida al sincronizar los relojes no nos permite usar el tiempo físico para ordenar los eventos de los diferentes nodos de un sistema distribuido – siempre es posible ordenar los eventos de un mismo nodo (si se respeta la monotonicidad del reloj) – en cambio, relaciones de causalidad entre eventos de nodos diferentes pueden verse distorsionadas • Muchas aplicaciones requieren únicamente ordenar los eventos (y no tanto conocer el instante exacto en que ocurrieron)
  • 28. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 28 3.1 Modelo de eventos • Modelo de sistema: conjunto de procesos que comunican únicamente mediante paso de mensajes enviar (pi, mensaje) recibir (pj, mensaje) pi y pj son el emisor y el receptor del mensaje • Simplificación: un proceso por nodo/máquina • Cada proceso genera una secuencia de eventos. Identificamos tres tipos de eventos: • Envío de un mensaje (al ejecutar enviar) • Recepción de un mensaje (al ejecutar recibir) • Eventos locales/internos (resto de eventos, sin comunicación)
  • 29. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 29 3.1 Modelo de eventos • Para ordenar los eventos de un mismo proceso bastaría con asociar a cada evento x el tiempo local T(x) (si la resolución es suficiente) • Se dice que existe una relación de causalidad entre dos eventos del sistema (x → y, “x ha sucedido antes que y”, “x happened before y”) si: 1. x e y son eventos del mismo proceso y T(x)<T(y) 2. x e y son los eventos enviar(m) y recibir(m) del mismo mensaje m 3. Existe otro evento z tal que x → z y z → y (cierre transitivo de la relación)
  • 30. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 30 3.1 Modelo de eventos • Si entre dos eventos no hay relación de causalidad, se dice que son concurrentes: x || y a → b b → c a → c a → f a || e e || d P1 P3 P2 a b c d e f m1 m2 enviar(m1) recibir(m1) enviar(m2) recibir(m2)
  • 31. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 31 3.2 Relojes lógicos de Lamport • Propuesto en 1978, para indicar relaciones de causalidad. Cada proceso Pi tiene su reloj lógico local Ci, para asociar marcas de tiempo a sus eventos (un simple contador asíncrono basta) • Algoritmo: • Inicialmente, Ci = 0, ∀i • Antes de un evento local o envío de mensaje en pi: Ci = Ci + 1 • Cuando pj envía un mensaje m a pi, pj incluye el valor de su reloj lógico en el mensaje, Cm. Al recibir dicho mensaje, pi actualiza su reloj local de la siguiente manera: (1) Ci = max(Ci, Cm), (2) Ci = Ci + 1 – Problema: Ci(x) < Cj(y) no implica x → y
  • 32. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 32 3.2 Relojes lógicos de Lamport a → b b → c a → c a → f a || e e || d P1 P3 P2 a b c d e f m1 m2 enviar(m1) recibir(m1) enviar(m2) recibir(m2) 1 0 2 0 3 4 0 1 5
  • 33. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 33 3.3 Vectores de tiempos Garantizan: Vi(x) < Vj(y) ⇔ x → y – V: vector de N componentes (N=número de procesos) – Vi[i]: reloj lógico (local) del proceso Pi – Vi[j]: último valor que el proceso Pi conoce del reloj del proceso Pj • Algoritmo: • Inicialmente, Vi[j] = 0, ∀i, j • Evento local o envío de mensaje en pi: Vi[i] = Vi[i] + 1 • Cuando pj envía un mensaje m a pi, pj incluye el valor de su vector de tiempos, Vm. Al recibir dicho mensaje, pi actualiza su vector de tiempos de la siguiente manera: (1) ∀k: Vi[k] = max(Vi[k], Vm[k]), (2) Vi[i] = Vi[i] + 1
  • 34. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 34 3.3 Vectores de tiempos • Definición: V1 < V2 ⇔ ∀i V1[i] ≤ V2[i] and ∃j V1[j] < V2[j] • Existirá relación de causalidad entre dos eventos (x, y) si y sólo si V(x) < V(y) o V(y) < V(x) • Si no, los eventos son concurrentes • Los vectores de tiempos permiten determinar relaciones de causalidad con total precisión: Vi(x) < Vj(y) ⇔ x → y
  • 35. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 35 3.3 Vectores de tiempos a → b b → c a → c a → f a || e e || d P1 P3 P2 a b c d e f m1 m2 enviar(m1) recibir(m1) enviar(m2) recibir(m2) [1 0 0] [0 0 0] [2 0 0] [0 0 0] [2 1 0] [2 2 0] [0 0 0] [0 0 1] [2 2 2]
  • 36. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 36 4 Estado global y consistencia • Modelo de sistema: – N procesos Pi (i = 1, 2, ..., N) – historia(Pi) = hi = < ei 0, ei 1, ei 2, ... > – prefijo de historia hi k = < ei 0, ei 1, ..., ei k > – si k: estado del proceso Pi tras el evento ei k – si 0: estado inicial del proceso Pi • Estado global del sistema: S = (s1, s2, ..., sN) – Algunos estados globales pueden ser “inconsistentes” • Corte: unión de prefijos de historia de los procesos – C = h1 c1 ∪ h2 c2 ∪ ... ∪ hN cN = (c1, c2, ..., cN)
  • 37. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 37 4 Estado global y consistencia • Frontera de un corte: unión de los últimos eventos (c1, c2, ..., cN) ⇒ (e1 c1, e2 c2, ..., eN cN) • A cada corte le corresponde un estado global (c1, c2, ..., cN) ⇒ (s1 c1, s2 c2, ..., sN cN) • Un corte C es consistente si para todo par de eventos (e, e’) se cumple lo siguiente: (e ∈ C) ∧ (e’ → e) ⇒ e’ ∈ C – Si no, el corte C es inconsistente • A cada corte consistente le corresponde un estado global consistente
  • 38. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 38 4 Estado global y consistencia • Corte consistente: si el evento de recepción de un mensaje está “dentro” del corte, entonces el evento de envío de dicho mensaje también debe estar P1 P2 a c d b e P1 P2 a c d b e (a) (b) inconsistente d ∈ C, b → d, b ∉ C consistente C C’
  • 39. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 39 4 Estado global y consistencia • Para saber si un corte es consistente, nos podemos basar en los vectores de tiempos: ∀i, j: Vi[i](ei ci) ≥ Vj[i](ej cj) • Puesto que cada proceso posee una visión parcial del sistema, para construir un corte consistente (y obtener de paso su estado global asociado) los procesos deben ejecutar un algoritmo distribuido – Ejemplo: algoritmo de Chandy y Lamport (1985) • Utilidad: detección de interbloqueos, establecimiento de puntos de recuperación de un sistema, finalización distribuida
  • 40. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 40 4 Estado global y consistencia • Algoritmo snapshot de Chandy y Lamport: 1. process p1 (the initiator of the snapshot) saves its state s1 and broadcasts the message SNAPSHOT to P (the set of processes). 2. Let process pi receive the SNAPSHOT message the first time from some process pj (pj can be different from p1). At that time, pi saves its state si and forwards the SNAPSHOT message to P. The state of the channel cji is set to empty, and pi starts logging the messages received on the channels cki (for all k ≠ j). 3. When pi receives SNAPSHOT from pk, then the computation of the state of the channel cki is complete. As soon as pi has received SNAPSHOT from all the processes in P, the computation of the snapshot is terminated.
  • 41. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 41 4 Estado global y consistencia p1 p2 p3 i11 i31 i12 r11 r21 i21 i: petición (invocation) r: respuesta (reply)
  • 42. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 42 4 Estado global y consistencia p1 p2 p3 i11 i31 i12 r11 r21 i21 i: petición (invocation) r: respuesta (reply) e11 e12 e13 e14 e15 e16 e23 e21 e31 e32 e33 e35 e34 e36 1 2 4 5 6 7 6 1 e22 5 1 2 3 5 4 7 0 0 0 [100] [210] [313] [413] [513] [613] [000] [010] [124] [434] [000] [001] [102][103][104] [105] [516] [000]
  • 43. Tiempo, causalidad y estado global - Alberto Lafuente, Mikel Larrea, UPV/EHU 43 4 Estado global y consistencia p1 p2 p3 i11 i31 i12 r11 r21 i21 i: petición (invocation) r: respuesta (reply) C2=(5,2,5) C1=(3,2,6) [313] [124] [516] [513] [105] c12={r21} c13={i12} c21={Ø} c23={Ø} c31={Ø} c32={Ø}