Sei sulla pagina 1di 62

+

Sistemas Distribuidos
Tiempos y Estados Globales
Rodrigo Santamara
+ Tiempos y estados globales
Introduccin
Sincronizacin
Tiempo y relojes lgicos
Estados globales
Depuracin distribuida

2
+ 3

Introduccin

n El tiempo es importante en un SD por dos razones:


n Es una cantidad que puede medirse de manera precisa*
n Existen muchos algoritmos basados en sincronizacin de relojes
para solucionar problemas distribuidos

n Pero tambin presenta problemas


n No existe un tiempo absoluto de referencia
n Los relojes de distintos computadores no estn sincronizados
n Deriva de reloj
+ 4

Introduccin
Reloj hardware

n Cada computador tiene un reloj hardware, que consta de:


n Un cristal de cuarzo que oscila a una frecuencia bien definida*
n Segn el tipo y forma del cristal, y la tensin que soporta
n Un registro contador
n Un registro constante

n El registro contador se decrementa con cada oscilacin


n Cuando llega a cero, genera una interrupcin (tick de reloj), y
n El registro contador se reinicia al valor del registro constante

*Vdeo sobre el funcionamiento de un reloj de cuarzo: http://www.engineerguy.com/videos/video-quartz-watch.htm


+ 5

Introduccin
Reloj software

n Imita a un reloj normal a partir del reloj hardware

n Necesita:
n Una fecha y hora de origen
n P. ej. en UNIX: 00:00 del 1 de enero de 1970
n Nmero de ticks desde esa fecha
n Al arrancar pide la fecha y hora actual
n Calcula el n de ticks desde la fecha de origen
n Con cada tick, incrementa el n de ticks y recalcula la fecha
actual a partir de la fecha de origen

n Bsicamente, realiza un escalado (ticks segundos) y un


desplazamiento (desde la fecha de origen)
+ 6

Introduccin
Sesgo y deriva de reloj

tasa de
n Sesgo (skew) deriva de C1

n Diferencia entre las lecturas de dos


relojes en un determinado instante

n Deriva (drift)
n Tasa con la que el reloj se desva
respecto a la hora real
n Reloj normal: 10-6 s/s ~ 1s cada 12 sesgo entre C1 y C2
das en el instante t
n Reloj de precisin: 10-7 o 10-8 s/s ~
1s cada 4 meses o 3 aos
t
+ 7

Introduccin
Reloj atmico y TAI

n Reloj atmico: los relojes fsicos ms precisos*


n Tasas de deriva de 10-12 (hasta 10-16 en 2011)
n Se basan en la oscilacin entre estados de un tomo de Cs133

n Tiempo atmico internacional (TAI)


n Tiempo medio de oscilacin del Cs133 de 200 mediciones en 70
laboratorios distintos
n Desde su adopcin en 1972 se ha utilizado para determinar el
tiempo universal, aunque este se ha tenido que corregir con 34s

Por qu se ha modificado tanto si


tiene una tasa de deriva tan baja?

*La definicin de segundo en el SI se modific a la oscilacin del Cs133 en los aos 60


https://en.wikipedia.org/wiki/Ephemeris_time#Redefinition_of_the_second
+ 8

Introduccin
Reloj astronmico y UT1

n Reloj astronmico:
n Medicin a partir de la posicin relativa del Sol y la Tierra
n Es decir, posicin del Sol respecto a un punto en la Tierra
n Del S XV al XIX, slo haba tiempos locales
n A finales del XIX, se establecen zonas horarias, y un tiempo
universal estndar: GMT (Greenwich Meridian Time)

n Tiempo Universal (UT1)


n Basado en la medicin precisa de la rotacin de la Tierra
respecto al Sol, satlites GPS y otros astros
n OJO: la rotacin de la Tierra no es constante: est disminuyendo
+ 9

Introduccin
UT1

n Tiempo Universal Coordinado (UTC)


n Se emite regularmente desde estaciones de radios y satlites GPS
n Determinado a partir de TAI, pero sincronizado con UT1
n UTC = TAI - 34s (actualmente)
n UT1-1s < UTC< UT1+1s

n Segundos de salto: segundos aadidos a UTC para


sincronizarse con TAI
n Necesario debidos a eventos geolgicos y climticos que afectan al
movimiento de la Tierra (sobre todo el efecto de marea*)
n Aceleran UT1 respecto a TAI/UTC
n Se han aadido 37s desde 1972 hasta ahora**
* https://es.wikipedia.org/wiki/Aceleraci%C3%B3n_de_marea
** No es un asunto trivial, y ha habido intensos debates sobre la abolicin del segundo de salto
http://www.eldia.com.do/globales/2012/7/2/86807/Segundo-extra-causa-estragos-en-Internet
https://en.wikipedia.org/wiki/Leap_second#Proposal_to_abolish_leap_seconds
+ 10

Introduccin
Sincronizacin de relojes fsicos

n Sean Ci relojes de procesos


n Ci(t) tiempo del reloj Ci en el momento t

n Sincronizacin externa de lmite D


n |S(t) - Ci(t)| < D
n S fuente de tiempo UTC (u otro tiempo de referencia)

n Sincronizacin interna de lmite D


n |Ci(t) - Cj(t)| < D
n La diferencia entre dos relojes cualesquiera es menor que D

n Un sistema sincronizado externamente con lmite D, lo


estara internamente con lmite 2D
+ 11

Introduccin
Correccin de relojes

n Un reloj hardware H es correcto si su tasa de deriva cae


dentro de un lmite conocido p > 0
n Sean los tiempos reales t y t (t > t) y sus relojes hw H(t) y H(t)
n El error entre los tiempos hardware para un lmite p conocido:
n (1-p)(t-t) H(t)-H(t) (1+p )(t-t)

n Dos relojes correctos cumplen con la propiedad de monotona:


n Un reloj C siempre avanza

n Si t > t C(t) > C(t)


n Un reloj no necesita ser preciso para ser correcto
+ 12

Introduccin
Fallos de reloj

n Fallo de ruptura (crash)


n El reloj deja de contar ticks

n Fallo arbitrario
n Cualquier otro fallo relacionado con el reloj
n Ejemplo: efecto 2000
n Transicin de 31 de diciembre de 1999 al 1 de enero de 1990

n Ejemplo: reloj con batera baja


n Su tasa de deriva se dispara inesperadamente
+ Tiempos y estados globales
Introduccin
Sincronizacin
Tiempo y relojes lgicos
Estados globales
Depuracin distribuida

13
+ 14

Sincronizacin
Sincronizacin interna en un sistema sncrono

n Sincronizacin interna no nos importa la hora correcta


n Sean dos procesos:
n Uno de ellos manda su tiempo t al otro en un mensaje m
n El mensaje m tarda un tiempo Ttrans en viajar por la red
n Ttrans es desconocido e imposible de determinar
n Depende del trfico de red y del resto de procesos

n Pero se pueden estimar sus lmites


n min: cuando no hay otros procesos ni trfico en la red
n max: se puede hacer una estimacin conservadora
n Luego la incertidumbre u en el tiempo de transmisin es
n u = (max - min)
+ 15

Sincronizacin
Sincronizacin interna en un sistema sncrono

n El receptor sincroniza su reloj segn el t del mensaje


n Si lo pone a t + min, el error de la sincronizacin es u
n Pues la transmisin puede haber tardado max
n Si lo pone a t + max, el error de la sincronizacin es u
n Pues la transmisin puede haber tardado min
n Si lo pone a t + (max + min)/2, el error es u/2

n En general, si tenemos N relojes, el error ptimo es u(1-1/N)


n En un sistema asncrono, no podemos determinar el mximo
n Ttrans = min + x, con x 0
+ 16

Sincronizacin
Mtodo de Cristian (1989)

n Algoritmo centralizado
n Servidor de tiempo
n Clientes que se sincronizan con el servidor

n Cada nodo, peridicamente, hace una peticin al servidor


n Mensaje dame tiempo

n El servidor responde
n Mensaje tiempo=CUTC
n Se considera que el servidor responde rpidamente
n El algoritmo slo sincroniza si el tiempo de respuesta es
razonablemente ms corto que la precisin requerida
+ 17

Sincronizacin
Mtodo de Cristian
Tviaje = T1 - T0

n El cliente (mquina emisora) sincroniza su reloj a CUTC + Tviaje/2


n Estima que el servidor puso CUTC en el mensaje justo a la mitad del
tiempo transcurrido desde que hizo la peticin
n Es una estimacin razonable, si los dos mensajes se enviaron por la
misma red
+ 18

Sincronizacin
Mtodo de Cristian

n Considerando min el tiempo mnimo de transmisin:


n El tiempo mnimo en el que el servidor escribi CUTC es min
n Y el tiempo mximo es Tviaje min
n Por tanto, el cliente se sincroniza a un valor en el rango
n [CUTC+min, CUTC+Tviaje-min], con anchura Tviaje- 2min
n Es decir, la precisin de la sincronizacin es Tviaje /2 min
+ 19

Sincronizacin
Mtodo de Cristian

Lmites Desviacin
lmite
CUTC+Tviaje-min -Tviaje/2+min
Desviacin de la
Estimacin estimacin
CUTC+Tviaje/2 Tviaje/2-min
CUTC+min Tviaje/2-min

n Problemas
n Centralizado: qu pasa si el servidor falla?
n Solucin: mltiples servidores
n Servidores con fallos, deliberados o indeseados
n Problema de los generales bizantinos
+ 20

Sincronizacin
Algoritmo de Berkeley (1989)

n Algoritmo centralizado
n Pero esta vez, el servidor (maestro) se elige entre todos los
computadores conectados (esclavos)
n No provee su tiempo, si no que lo estima a partir de todos los
computadores conectados
n Estima la deriva de cada reloj y manda la correccin

(25-10+0)/3 = 5
+ 21

Sincronizacin
Algoritmo de Berkeley: desventajas

n Problemas
n Centralizado: fallo del nodo maestro
n Se elige un nuevo maestro
n Centralizado: broadcasting
n Difcil de escalar

n El algoritmo NTP ya existe para dar una solucin menos


centralizada desde 1985 (es el protocolo ms antiguo de
Internet, RFC958)
n Veremos su versin 3, estable durante casi 20 aos
+ 22

Sincronizacin
Network Time Protocol (NTP) [Mills 1995]

n Cristian y Berkeley se disearon para su uso en intranets


n Al ser centralizados son difcilmente escalables

n Objetivos de NTP
n Proporcionar un servicio que permita a los clientes a lo largo de
Internet sincronizarse con UTC
n Proporcionar un servicio fiable que pueda aguantar prdidas de
conectividad prolongadas
n Permitir a los clientes sincronizarse de manera lo suficientemente
frecuente como para compensar las tasas de deriva usuales
n Proporcionar proteccin de las interferencias con el servicio de
tiempos, sea maliciosa o accidental
+ 23

Sincronizacin
NTP: jerarqua

n Algoritmo cliente-servidor jerarquizado (estratos)


1. Servidores de estrato 1: radio-reloj, GPS
n Reciben directamente la seal UTC
2. Servidores de estrato 2, sincronizados con los de estrato 1
3. etc.
4. Estaciones de usuario
+ 24

Sincronizacin
NTP: modos de sincronizacin

n Multidifusin
n Reparto peridico del tiempo por los servidores
n Baja precisin

n Llamada a procedimiento remoto (RPC)


n Peticin de tiempo de un servidor a otro de estrato superior
n Similar al algoritmo de Cristian
n Mayor precisin

n Simtrico
n Sincronizacin entre servidores en los estratos ms altos (1,2,3)
n Mxima precisin

n En modos RPC y simtrico, se intercambian dos mensajes:


n m que contiene el tiempo de envo t 0
n m que contiene el tiempo de recepcin de m (t 1) y el de envo de m (t 2)
+ 25

Sincronizacin
NTP: simtrico t t+t=d t
tB=tA+o t1 t2

tA=tB-o t0 t3

n Los mensajes llegan con un retardo de transmisin (t y t) y con


desplazamiento de B respecto a A (offset o)
n t 1=t 0+t+o t 3=t 2+t-o

n Sumando las ecuaciones obtenemos una estimacin del retardo (delay) di:
n di=t+t=(t 1-t 0)+(t 3-t 2)

n Restando las dos ecuaciones obtenemos el desplazamiento (offset) o:


n o = (t 1-t 0 + t 2-t 3)/2 + (t-t)/2 = oi + (t-t)/2
n Por tanto oi - di/2 o oi + di/2 (suponiendo t, t 0)
n o i es una estimacin del desplazamiento y di una medida de la precisin de
dicha estimacin
+ 26

Sincronizacin
NTP: modo simtrico

n Ejemplo t1=3.4 t2=3.6


conocidos
t=0.4 t=0.6
o=2 desconocidos
estimados
t0=1 t3=2.2

t+t=di=t1-t0+t3-t2=1.0 oi
t1=t0+t+o t=t1-t0-o

t3=t2+t-o t=t3-t2+o t-t=t1-t0+t2-t3-2o (t-t)/2+(t1-t0+t2-t3)/2=o

di = t+t=(t1-t0)+(t3-t2)
oi = (t1-t0 + t2-t3)/2

oi - di/2 o oi + di/2

1.9 0.5 o 1.9 + 0.5


+ 27

Sincronizacin
NTP: ampliaciones

n Algoritmo de filtrado de pares (peers)


n Tomamos las 8 ltimas estimaciones (los ltimos 8 pares <oi,di>)
n Algoritmo de Marzullo: elegimos el par que tenga el valor ms
pequeo de di, y sea consistente con el mayor n de intervalos
n Filtrado: puede ser que un servidor nos d 8 estimaciones muy
dispares servidor poco fiable.
n NTP pregunta a varios servidores (peers) de la jerarqua y descarta
aquellos con alta disparidad

n Modelo de bucle de bloqueo de fase [Mills, 1995]


n Cada procesador modifica la frecuencia del reloj segn su tasa de
deriva
n Si el reloj siempre se adelanta, se baja su frecuencia para que su
tasa de deriva se reduzca
+ Tiempos y estados globales
Introduccin
Sincronizacin
Tiempo y relojes lgicos
Estados globales
Depuracin distribuida

28
+ 29

Tiempo y relojes lgicos

n Lamport (1978)
n Como no podemos sincronizar perfectamente los relojes en un sistema
distribuido, no podemos usar, en general, el tiempo fsico para obtener
el orden de cualquier par arbitrario de sucesos que ocurran en l

n Intuitivamente
n Si dos sucesos han ocurrido en el mismo proceso, entonces
ocurrieron en el orden en que los observa dicho proceso
n El suceso de envo de un mensaje ocurre antes que el suceso de
recepcin de dicho mensaje

n Relacin sucede antes que


n Ordenacin parcial resultante de la aplicacin de estos dos axiomas
n La denotamos por
+ 30

Tiempo y relojes lgicos


Tiempos de Lamport

n La relacin sucede antes que satisface las condiciones:


n Si a y b son sucesos del mismo proceso y a ocurre antes que b
n ab
n Si a es un suceso de envo y b es su suceso de recepcin
n ab

n Si ab y bc, entonces ac (propiedad transitiva)


n aa es siempre falso
n Si no se cumple ab ni ba, entonces a y b son concurrentes,
no se puede afirmar nada sobre su ordenacin o causalidad.
+ 31

Tiempo y relojes lgicos


Tiempos de Lamport

n Relaciones verdaderas: n Sucesos concurrentes


n ab n e con todos los dems
n bc salvo f
n cd
n df
n ef
n +transitivas
+ 32

Tiempo y relojes lgicos


Tiempo lgico de Lamport [1978]

n Objetivo:
n Asociar una marca de tiempo (timestamp) a todos los sucesos que
se pueden ordenar mediante relaciones sucede antes que

n Sea un proceso Pi con un reloj lgico asociado Ci


n Se asigna un numero Ci(e) a cada evento e de Pi
n Independiente del reloj fsico!

n Condiciones dados dos eventos a y b


n Si ambos son del mismo proceso Pi y ab, entonces Ci(a)<Ci(b)
n Si a es un evento de envo de un mensaje m de Pi y b un suceso
de recepcin de dicho mensaje m por Pj, entonces Ci(a)<Cj(b)
n Un reloj Ci nunca debe ir hacia atrs, cualquier correccin se
realizar incrementando el reloj
+ 33

Tiempo y relojes lgicos


Algoritmo de Lamport

n LC1
n Antes de cada evento relevante del proceso Pi:
n Ci = Ci + 1
n LC2
n Cuando Pi manda un mensaje m, le adjunta su timestamp t=Ci
n Cuando Pj recibe un mensaje (m,t):
n Cj = max(t, Cj) + 1

n Este algoritmo captura todas las relaciones sucede antes que


n La decisin de qu eventos de nuestro proceso son relevantes (y
por tanto hay que aplicar LC1) depende de cada implementacin
+ 34

Tiempo y relojes lgicos


Algoritmo de Lamport: ejemplo
+ 35

Tiempo y relojes lgicos


Algoritmo de Lamport: ordenacin total

n En el algoritmo anterior, dos sucesos de procesos distintos


pueden tener la misma marca de tiempo del reloj lgico

n Ordenacin total:
n Sean dos eventos que suceden en tiempos lgicos de Lamport
Ti y Tj en los procesos Pi y Pj, respectivamente
n (Ti, i)<(Tj,j) si Ti<Tj o Ti=Tj y i<j
n Bsicamente, es un modo de desempatar tiempos lgicos
iguales mediante el identificador de proceso

n La ordenacin total no tiene ningn sentido fsico, pero puede ser


til para modelar tareas distribuidas, como por ejemplo la
entrada en una seccin crtica
+ 36

Tiempo y relojes lgicos


Relojes vectoriales

n Limitacin del algoritmo de Lamport


n Ci(e) < Cj(e) no implica necesariamente que e e

n Un reloj vectorial en un sistema de N procesos es un vector de N


valores V
n Cada proceso Pi guarda su propio vector Vi
n Vi[i] es el tiempo de Lamport de Pi
n Vi[j] (i!=j) es el ltimo timestamp de Pj del que tiene constancia Pi

n Comparacin de vectores lgicos


n V=V si V[i]=V[i] para i=1, 2, , N
n VV si V[i] V[i] para i=1, 2, , N
n V<V si VV y VV
+ 37

Tiempo y relojes lgicos


Relojes vectoriales: algoritmo

n VC1
n Inicialmente Vi[j]=0 para j=1, 2, , N

n VC2
n Antes de que ocurra un evento en Pi: Vi[i]=Vi[i]+1

n VC3
n Pi incluye el timestamp t=Vi en cada mensaje que enva

n VC4
n Cuando Pi tiene un evento de recepcin con timestamp t
n Vi [j]=max(Vi [j], t[j]) para j=1, 2, , N
n Teniendo en cuenta que Vi [i] se actualiza antes por VC2
+ 38

Tiempo y relojes lgicos


Relojes vectoriales: ejemplo
inicio (0,0,0)
evento de recepcin (0,1,0)
compara timestamp (2,1,0)

n Va<Vf , luego a f (ventaja respecto a Lamport normal)

n No se cumple ni VeVc ni VcVe luego e y c son concurrentes

n Desventaja: carga en la transmisin de mensajes


proporcional al nmero de procesos
+ Tiempos y estados globales
Introduccin
Sincronizacin
Tiempo y relojes lgicos
Estados globales
Depuracin distribuida

39
+ 40

Estados globales

n Hay tareas para las que a) Recoleccin de basura


necesitamos conocer el estado
global del sistema:
a) Deteccin de objetos distribuidos
que ya no se utilizan
b) Un interbloqueo distribuido b) Interbloqueo
ocurre cuando dos procesos
esperan un mensaje del otro
c) Detectar la terminacin de un
algoritmo distribuido
c) Terminacin
n Es vital tener en cuenta el estado
de todos los procesos y del
canal de comunicacin
+ 41

Estados globales
Cortes consistentes

n Un corte C es consistente si, para cada suceso que contiene,


tambin contiene todos los sucesos que sucedieron antes que

n Estado global consistente


n Aqul que corresponde con un corte consistente
+ 42

Estados globales
Evaluacin de cortes con relojes lgicos vectoriales

n Un corte es consistente si, para cada proceso Pi, su reloj lgico


en ese momento es mayor o igual que todos los registros del
valor del reloj de Pi mantenidos por otros procesos

reloj vectorial V1

Corte consistente:
Corte inconsistente: Vi[i] Vj[i] para i, j = 1, 2, , n
V2[1]=2 > V1[1]=1
+ 43

Estados globales
Algoritmo de instantnea de Chandy y Lamport

n Objetivo:
n Obtener un conjunto de estados de proceso y del canal de
comunicacin (instantnea) que sea un estado global consistente

n Asunciones:
n Los canales y procesos no fallan: todos los mensajes se reciben
correctamente, y una nica vez
n Los canales son unidireccionales con entrega tipo FIFO
n Hay canal de comunicacin directo entre todos los procesos
n Cualquier proceso puede tomar una instantnea en cualquier
momento
n Los procesos pueden continuar su ejecucin y comunicacin
mientras se est tomando una instantnea
+ 44

Estados globales
Algoritmo de instantnea de Chandy y Lamport

n Regla de recepcin de instantnea en Pi por el canal c


si (Pi no ha registrado su estado todava)
registra su estado de proceso
registra el estado de c como vaco
activa el registro de mensajes que lleguen por otros canales
si no
Pi registra el estado de c como el conjunto de mensajes recibidos en c
desde que guard su estado (mensajes posteriores a la instantnea)

n Regla de envo de instantnea por Pi


Tras registrar su estado, para cada canal de salida c
Pi enva un mensaje de instantnea por el canal c
+ 45

Estados globales
Algoritmo de instantnea de Chandy y Lamport
n Ejemplo: 2 procesos (Pi, Pj) hacen transacciones (mark=instantnea)
n 2 canales de comunicacin (cij, cji)
cij
cji

modificado a partir de Coulouris et al. 2011


estado registrado: Pi=<$1000, 0>, Pj=<50, 1995>, cij=<>, cji=<5 widgets>
+ Tiempos y estados globales
Introduccin
Sincronizacin
Tiempo y relojes lgicos
Estados globales
Depuracin distribuida

46
+ 47

Depuracin distribuida
Predicados

n La ejecucin de un SD se puede caracterizar (y depurar) por las


transiciones entre estados globales consistentes
n S0 S1 S2 Sn

n Un predicado de estado global es una funcin


n {Conjunto de estados globales} {V, F}
n Determinar una condicin del SD equivale a evaluar su predicado

n Caractersticas posibles de un predicado


n Estabilidad: el valor del predicado no vara con los nuevos sucesos
(por ejemplo, en el caso de interbloqueo o terminacin)
n Seguridad: el predicado tiene valor falso para cualquier estado
alcanzable desde S0 (deseable para errores)
n Veracidad: el predicado tiene valor verdadero para algn estado
alcanzable desde S0 (deseables para situaciones necesarias)
+ 48

Depuracin distribuida
Predicados: ejemplo

n Imaginemos un sistema de 2 procesos donde queremos


controlar el predicado : |x1 x2| > 50

|105-90| = 15 falso
|1-100| = 99 verdadero
+ 49

Depuracin distribuida
Monitorizacin

n Depurar un SD requiere registrar su estado global, para


poder hacer evaluaciones de predicados en dichos estados
n Generalmente, la evaluacin trata de determinar si el predicado
cumple con la condicin posiblemente o sin duda alguna.

n Monitorizacin del estado global:


n Distribuido: algoritmo de instantnea de Chandy y Lamport
n Centralizado: algoritmo de Marzullo y Neiger
n Los procesos envan su estado inicial al proceso monitor
n Peridicamente, le vuelven a enviar su estado
n El monitor registra los mensajes de estado en colas de proceso
n Una por proceso
+ 50

Depuracin distribuida
Evaluacin de predicados

n Objetivo de la monitorizacin
n Determinar si un predicado es posiblemente o sin duda
alguna verdadero en un determinado punto de la ejecucin
n El proceso monitor slo registra los estados globales consistentes
n Los nicos en que podemos evaluar el predicado con certeza

n Teniendo en cuenta el predicado a evaluar, podemos reducir


el trfico de mensajes de estado
n Tamao: el predicado puede depender slo de ciertas partes del
estado de un proceso no es necesario mandar el estado
completo
n Nmero: el cambio de valor del predicado slo ocurre en algunos
casos slo hay recoger los estados en cambios relevantes
+ 51

Depuracin distribuida
Red de estados globales

n Mediante la monitorizacin podemos construir una red de estados


globales consistentes
n Sij=estado global tras i eventos en el proceso 1 y j eventos en el proceso 2

S00 S10 ?
S01
+ 52

Depuracin distribuida
Red de estados globales: ejemplo

S40 ?

S00 S10 S20 S30 S31


S21 S22? Es posible el corte S40?
Y S22? Por qu?
+ 53

Depuracin distribuida
Red de estados globales

n Linealizacin: ruta entre estados

n Posiblemente : existe un estado


consistente S a travs del que pasa una
linealizacin tal que (S) = Verdadero

n Sin duda alguna : existe un conjunto de


estados consistentes S* a travs del que
pasan todas las linealizaciones, tal que,
para todo S en S*, (S)=Verdadero
+ 54

Depuracin distribuida
Evaluacin instantnea de predicados

(x1,x2) : |x1-x2|> 50?


(0,0) F

(1,0) F

(100,0) V

(105,0) (100,100) V F

(105,100) (100,95) F F

(105,95) (100,90) F F

(105,90) F

(90,90) F
+ 55

Depuracin distribuida
Evaluacin de predicados posiblemente

Evaluar posiblemente para la red H de N procesos


L=0; //Nivel de la red de estados
Estados={(s01, s02 s0N )}; //Estados del nivel L
mientras ( (si) = Falso para todos los si en Estados)
L=L+1;
Alcanzable = { S tal que S es alcanzable en H
desde algn S en Estados y nivel(S) = L };
Estados = Alcanzable;
fin mientras
si L <= {nivel mximo de H} salida posiblemente ;

n Recorremos los estados alcanzables de cada estado inicial


n Hasta que en algn momento alguno de los estados de un nivel
cumpla que (si) = Verdadero, o terminemos de recorrer la red
+ 56

Depuracin distribuida
Evaluacin de predicados sin duda alguna

Evaluar sin duda alguna para la red H de N procesos


L=0;
si ((s01, s02 s0N)) Estados={};
si no Estados={(s01, s02 s0N)};
mientras (Estados != {})
L=L+1;
Alcanzable = { S tal que S es alcanzable en H
desde algn S en Estados y nivel(S) = L };
Estados = {S en Alcanzable con (S)=Falso};
fin mientras
si L<={nivel mximo de H} salida sin duda alguna ;

n Recorremos los estados alcanzables desde cada estado inicial


n Hasta que en algn momento todos los estados de un nivel cumplan
con el predicado ((si) = Verdadero) o terminemos de recorrer la red
+ 57

Depuracin distribuida
Evaluacin de predicados: ejemplo

En este nivel se puede decir que el


predicado se cumple
posiblemente

En algoritmo sin duda slo


investiga los estados
alcanzables desde estados
donde el predicado es falso. Por
ello, en el nivel 4 no hace falta
investigar este estado

Si en el nico estado del nivel 5 tenemos verdadero (T), entonces el predicado se


cumple sin duda, pues no se puede seguir trazando una ruta de falsabilidad
+ 58

Depuracin distribuida
Resumen

n Consiste en
n Determinar el predicado que queremos evaluar
n Especificar un mtodo para construir una red o historia de
estados globales consistentes
n Teniendo en cuenta el predicado para optimizar trfico

n Quizs teniendo en cuenta los canales de comunicacin


n Evaluar si nuestro predicado se cumple en algn momento
n Si es posible, se cumplir para alguna de las linealizaciones
n Si es sin duda, se cumplir para todas las linealizaciones
59
+ 60

Resumen

n Cualquier medicin de tiempo n Lamport defini las dos


requiere de referencias condiciones temporales lgicas
que podemos conocer: el evento de
n Dichas referencias nunca son recepcin ocurre antes que el
totalmente constantes, con lo que las evento de envo y los eventos locales
mediciones de tiempo reales ocurren en orden. Estas condiciones
siempre tienen una deriva permiten establecer relaciones
antes-que y trabajar mediante
relojes lgicos
n Para el uso diario, obtenemos la
mxima precisin de las mediciones
TAI y UT1, pero ni siquiera estas son n El estado global de un SD se refiere
precisas al estado de todos sus procesos y
mensajes en trnsito. Un algoritmo
para capturarlo es el de instantnea
n Mediante relojes fsicos podemos de Chandy/Lamport
hacer sincronizacin externa a una
referencia local (Cristian), global
(NTP) o hacer sincronizacin interna n La depuracin distribuida
(Berkeley). En cualquier caso, no son determina las posibles transiciones
suficientemente precisos para entre estados globales, para
algoritmos delicados identificar la posibilidad o certeza
de que un determinado evento
ocurra
+ 61

Referencias

n G. Colouris, J. Dollimore, T. Kindberg and G. Blair. Distributed


Systems: Concepts and Design (5th Ed). Addison-Wesley, 2011
n Captulo 14

n Sobre UTC, TAI, UT1 y los segundos de salto


n http://what-if.xkcd.com/26/

n Sobre NTP (versin 3)


n Mills, D. (1995). Improved algorithms for synchronizing computer
network clocks. IEEE Transactions Networks, Vol. 3, No. 3, pp. 245
54.
n RFC1305
62

http://xkcd.com/612/

Potrebbero piacerti anche