Title: SINCRONIZACI
1SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS
- Sistemas de operación II
- Abril-Julio 2012
- Yudith Cardinale
2INDICE
- Introducción
- Relojes (timers)
- Sincronización de relojes lógicos
- Sincronización de relojes físicos
- Exclusión mutua distribuida
- Algoritmos de elección de coordinador
3INTRODUCCIÓN
- La información relevante se distribuye entre
- varias máquinas.
- Los procesos toman las decisiones sólo con
- base en la información disponible en forma local.
- Debe evitarse un punto de fallo único en el
- sistema.
- No existe un reloj común o alguna otra fuente
- precisa del tiempo global.
4INTRODUCCIÓN
- Tiempos y estados globales.
- Exclusión mutua.
- Algoritmos de elección. Problemas de
- consenso
- Operaciones atómicas distribuidas
- Transacciones
5(No Transcript)
6RELOJES (Timers)
- Cristal de cuarzo asociado a un dispositivo
electrónico (chip) que cuenta oscilaciones.
- C contador, se decrementa con cada
oscilación. - HR Holding register, con este valor se
inicializa C cada vez que llegue a 0.
HR
C
- Cuando C llega a 0, se genera una interrupción
(tick de reloj), la cual puede ser manejada por
software (contando los ticks de reloj) y escalada
a una unidad de tiempo conveniente.
7RELOJES (Timers)
- Pueden dos eventos tener el mismo registro de
reloj? - Depende de la resolución del reloj y de la
frecuencia de ocurrencia de eventos. - Aunque la frecuencia a la cual un cristal de
cuarzo oscila es usualmente estable, puede variar
por varios factores (temperatura, tamaño del
cristal, forma de corte), presentando un desfase
de reloj. - El desfase de reloj es el cambio en el offset
(diferencia en lectura) entre el reloj y un reloj
perfecto de referencia, por unidad de tiempo
medida.
8SINCRONIZACIÓN DE RELOJES
- Los relojes físicos (de hardware) de un sistema
distribuido no están sincronizados - Necesidad de sincronizacion para
- Aplicaciones en tiempo real
- Ordenacion natural de eventos distribuidos
- Concepto de sincronizacion
- Mantener relojes sincronizados entre si
- Mantener relojes sincronizados con la realidad
9SINCRONIZACIÓN DE RELOJES LÓGICOS
- El interés en las aplicaciones distribuidas, no
necesariamente es el tiempo exacto, sino la
secuencia en que ocurren los eventos. Así, se
pueden manejar relojes lógicos, en lugar de
relojes físicos. - Reloj lógicocontador de software que se
incrementa monótonamente, cuyo valor no necesita
estar relacionado con ningún reloj físico. - Generalmente se asocia a cada proceso un reloj
lógico.
10SINCRONIZACIÓN DE RELOJES LÓGICOS
- Algoritmo de Lamport
- Se basa en
- 1. Si dos eventos ocurrieron en el mismo proceso,
entonces ellos ocurrieron en el orden en que
fueron observados. Notación x p y , x e y
son eventos que ocurren en el proceso p y x pasó
antes que y - 2. Siempre que un mensaje es enviado entre
procesos, el evento de enviar el mensaje ocurre
antes que el evento de recibirlo.
11SINCRONIZACIÓN DE RELOJES LÓGICOS
- Lamport generalizó estas dos ordenamientos con la
relación pasó antes(happened before) , se
denota con y se define como - PA1 Si existe un proceso P, tal que x p
y, entonces x y. - PA2 Para cualquier mensaje m,
- send(m) rcv(m).
- PA3 Si x,y,z son eventos tales que x y,
- y z, entonces x z (propiedad de
transitividad)
12SINCRONIZACIÓN DE RELOJES LÓGICOS
- a b, b c, c d, d f
- Los eventos a y e son paralelos
- a e
a
b
P0
c
d
P1
- Si cada proceso tiene un reloj lógico Cp, se
puede asignar un valor de tiempo a cada evento a
Cp(a). - Estos relojes lógicos deben tener las siguientes
propiedades - Si a b, entonces Cp(a) lt Cp(b).
- El valor de Cp debe ser siempre incrementado,
nunca deben decrementarse.
e
f
P2
13SINCRONIZACIÓN DE RELOJES LÓGICOS
- Algoritmo de Ordenamiento Causal
- LC1 Cp es incrementado antes que cada evento
sea ejecutado Cp Cp 1. - LC2 Cuando un proceso p envía un mensaje m,
coloca en el mensaje el valor t Cp. - LC3 Cuando un proceso q recibe (m,t), q calcula
Cqmax(Cq,t) y aplica LC1. - Es verdad que si Cp(a) lt Cq(b), entonces a
b?
14SINCRONIZACIÓN DE RELOJES LÓGICOS
- Veamos con un ejemplo cómo funciona el algoritmo
-
- Tres relojes no sincronizados
Sincronización de relojes
P1
P2
P3
P1
P2
P3
0
0
0
0
0
0
a
a
A
A
6
8
10
6
8
10
b
b
12
16
20
12
16
20
c
c
B
B
18
24
30
18
24
30
d
d
24
32
40
24
32
40
30
40
50
30
40
50
e
e
C
C
36
48
60
36
48
60
f
f
42
56
70
42
61
70
g
g
D
D
48
64
80
48
69
80
h
h
54
72
90
70
77
90
60
80
100
76
85
100
15SINCRONIZACIÓN DE RELOJES FÍSICOS
- Se requiere
- Sincronizar los relojes físicos con la hora real.
- Sincronizar los relojes físicos ente si.
- Se toma en cuenta el Tiempo Universal Coordinado
(UTC)
16SINCRONIZACIÓN DE RELOJES FÍSICOS
- Algunas consideraciones importantes
- El Tiempo Atómico Internacional (TAI) es
mantenido por el BIH (Bureau International de
lHeure) en París. - Un conjunto de laboratorios mantienen el tiempo
contando las transiciones del átomo de
cesium-133. Considerando que un segundo atómico
es 9.192.631.770 transiciones del cesium-133. - Periódicamente cada laboratorio envía al BIH el
número de ticks de su reloj (comenzaron a
contarse desde 1ero. de enero de 1958). El BIH
calcula el TAI promediando las lecturas de todos
los laboratorios.
17SINCRONIZACIÓN DE RELOJES FÍSICOS
- Algunas consideraciones importantes (cont.)
- Segundo solar 1/86.400 veces el día solar.
- El Tiempo Universal Coordinado (UTC) es un
estándar internacional basado en TAI y usa unos
segundos de saltos para sincronizar el TAI con
los segundos solares. - Para proveer el UTC, el Instituto Internacional
de Tiempo Estándar (NIST), tiene a disposición
una estación de radio de onda corta WWV. - Existen otras estaciones satelitales que también
dan servicio UTC NTP (Internet), Satélite (GEOS
y GPS).
18SINCRONIZACIÓN DE RELOJES FÍSICOS
- Si se requiere sincronizar los relojes del
sistema con el tiempo real, se usa el UTC. Para
esto - Una máquina debe tener un receptor para WWV y
sincronizar el resto de los relojes con este
tiempo. - Tener varios receptores para WWV, GEOS.
Establecer un rango (intervalo de tiempo) en el
cual UTC cae. Se requiere un acuerdo entre las
máquinas receptoras para generar un solo
intervalo. - Si no hay máquina con receptora de WWV, el tiempo
debe colocarse manualmente y luego sincronizar el
resto de los relojes.
19SINCRONIZACIÓN DE RELOJES FÍSICOS
20SINCRONIZACIÓN DE RELOJES FÍSICOS
- Cada cuánto se debe sincronizar?
- Cada máquina tiene un reloj que causa H
interrupciones por segundos. En la práctica se
obtiene un error ?. - En cada interrupción se suma 1 al reloj de
software (C) que mantiene el número de ticks
desde algún tiempo en el pasado. - La idea es que si UTCt, en la máquina p se
cumpla que Cp(t)t para todo p,t. Si esto es
verdad, se cumple que dc/dt1. - Se cumple que 1- ? lt dc/dt lt 1 ?
21SINCRONIZACIÓN DE RELOJES FÍSICOS
- Cada cuánto se debe sincronizar?
-
- Donde ? lo provee el fabricante y se llama tasa
máxima de alejamiento. - La idea es sincronizar el reloj con UTC y que
entre ellos no haya una diferencia mayor de ?.
Para esto los relojes deben ser resincronizados
cada ?????segundos.
22SINCRONIZACIÓN DE RELOJES FÍSICOS
- Cada cuánto se debe sincronizar?
-
23ALGORITMOS DE SINCRONIZACIÓN
Servidor de Tiempo con receptor WWV
ST
mr
mt
- ST recibe solicitudes de tiempo y responde tan
rápido como pueda.
mt
mr
P1
P2
P0
- Qué hace el enviador cuando recibe la
respuesta? - a. Colocar su reloj en el CUTC que le envía ST.
- Problemas
- Si CUTC es menor que el Cp, se estará
devolviendo. - No se considera el tiempo de transmisión de los
mensajes.
24ALGORITMOS DE SINCRONIZACIÓN
- Qué hace el enviador cuando recibe la
respuesta? - b. Ajustar su reloj CUTC gradualmente
- En lugar de sumar 1 al Cp con cada tick de
reloj, se suma un valor mayor (si Cp lt CUTC) o
menor (si Cp gt CUTC). - Ejemplo
- 1 seg H interrupciones, así al sumar 1 a Cp se
están sumando 1/H segs. - 1 seg 100 interrupciones, así al sumar 1 a Cp
se suman 10 msegs. - Si en lugar de sumar 1, se suma 0.9 se estarán
adicionando 9 msegs. - Si en lugar de sumar 1, se suma 1.1 se estarán
adicionando 11 msegs. - Problema No considera el tiempo de transmisión
de los mensajes.
25ALGORITMOS DE SINCRONIZACIÓN
- Solución Estimar el tiempo de propagación
Tpropag. - Enviador Servidor del tiempo
- T0
- TI
- T1
- T0 y T1 se miden con el mismo reloj, así
- Tpropag (T1 T0)/2.
- Si se conoce TI (tiempo de atención de la
interrupción), Tpropag (T1 -
T0 - TI)/2.
26ALGORITMOS DE SINCRONIZACIÓN
Algoritmo de Berkeley
- Se basa en un servidor de tiempo activo (demonio
del tiempo) que realiza un polling a cada
máquina periódicamente para preguntar el tiempo
que tienen. - Es útil, aún si no hay una máquina receptora
para WWV. El tiempo debe ser colocado
manualmente por el operador.
Demonio del tiempo
Demonio del tiempo
Demonio del tiempo
300
0
300
300
300
5
300
-20
300
15
25
-10
325
325
325
250
250
250
27ALGORITMOS DE SINCRONIZACIÓN
Algoritmo de Berkeley
- Qué ventaja tiene transmitir el ajuste y no la
hora? - Qué pasa si hay relojes con desfases muy
grandes? - El demonio toma un promedio tolerante a fallas.
Esto es, el subconjunto de relojes seleccionados,
para promediar, son aquellos que no difieran
entre sí en una cantidad especificada.
28ALGORITMOS DE SINCRONIZACIÓN
Algoritmo de Promediación
- Es distribuido.
- La idea es dividir el tiempo en intervalos de
resincronización de longitud fija. - El i-th intervalo comienza en T0 iR y corre
hasta T0 (i1)R, donde T0 es el tiempo inicial
del pasado y R un parámetro del sistema.
Pi
T0
T1
T2
...
Tn
R
R
Sinc
Sinc
Sinc
Sinc
29ALGORITMOS DE SINCRONIZACIÓN
Algoritmo de Promediación
- Al comienzo de cada intervalo cada máquina
realiza un broadcast de su tiempo actual. Inicia
un timerS para recolectar los broadcast de las
otras máquinas. - Corregir cada mensaje adicionando un estimado de
Tpropag. - Eliminar los valores más altos y más bajos.
- Promediar los valores restantes.
30(No Transcript)
31EXCLUSIÓN MUTUA DISTRIBUIDA
Requerimientos para proveer exclusión mutua
- EM1 (seguridad) A lo más un proceso puede
ejecutarse en su sección crítica (sc) a la vez. - EM2 (vitalidad)
- A un proceso que requiere entrada a su sc ,
eventualmente se le concederá. - Cualquier proceso que se ejecute en su sc,
eventualmente la abandonar. - (Libre de deadlock e inanición)
- EM3 (ordenamiento) La entrada a la sc debe ser
otorgada en orden pasó antes.
32ALGORITMOS DE EXCLUSIÓN MUTUA
Algoritmo Centralizado (un coordinador)
- Si un proceso quiere entrar a su región crítica
envía un mensaje de requerimiento al coordinador
indicando la sc a la que quiere entrar. - Si ningún proceso está en esa sc, el coordinador
envía un mensaje de otorgamiento. - Si hay otro proceso en la sc encola su petición
y - Le envía un mensaje de negación o
- No le envía nada y el solicitante se bloquea.
33ALGORITMOS DE EXCLUSIÓN MUTUA
Algoritmo Centralizado (un coordinador)
- Cuando un proceso abandona su sc, le envía un
mensaje al coordinador de liberación de sc. El
coordinador busca la siguiente petición encolada
y envía un mensaje de otorgamiento - Si el cliente no estaba bloqueado, tendrá que
hacer polling. - Si el cliente estaba bloqueado se desbloquea y
entra a su sc
Coordinador
P4
P2
P1
1. request
sc1
sc2
2. release
3. grant
P1
P2
P3
P4
34ALGORITMOS DE EXCLUSIÓN MUTUA
Algoritmo Centralizado (un coordinador)
- Ventajas
- Se puede generalizar para asignación de recursos
en general. - Es justo, las peticiones son atendidas en el
orden que son realizadas. - Requiere sólo de tres mensajes (requerir,
otorgar, liberar) - Desventajas
- Centralizado
- Si el coordinador no envía respuesta ante la
negación, el solicitante no sabe si la respuesta
no le llega por negación o por falla. - Qué pasa si un cliente falla dentro de una sc?
35ALGORITMOS DE EXCLUSIÓN MUTUA
- Algoritmo Distribuido (Ricart y Agrawala)
- La idea básica del algoritmo es que el proceso
- que requiere entrar a su Sección Crítica envía
- un mensaje a todos los procesos y entra,
- únicamente, cuando recibe un reconocimiento
- de todos ellos.
. . .
36ALGORITMOS DE EXCLUSIÓN MUTUA
- Algoritmo Distribuido (Ricart y Agrawala)
- Construye un mensaje con el nombre de la sección
crítica, su número de proceso y la hora actual. - Envía el mensaje a todos los demás procesos,
incluyéndose a sí mismo (Se supone un envío
confiable). - Cuando un proceso recibe un mensaje de solicitud
de otro proceso - 1. Si el receptor no está en la región crítica y
- no desea entrar a ella -gt OK
- 2. Si el receptor ya está en la región crítica
no - responde sino que incluye la solicitud en
una lista. - 3. Si el receptor desea entrar a la región
crítica pero no - lo ha logrado compara la marca de tiempo del
mensaje - recibido con la marca del mensaje que envió a
cada - uno. Si el suyo es menor encola la petición,
si no envía OK.
37ALGORITMOS DE EXCLUSIÓN MUTUA
- Algoritmo Distribuido (Ricart y Agrawala)
- Dos procesos quieren hacer uso de la Sección
- Crítica al mismo tiempo. En particular, los
procesos 0 - y 2 son los involucrados.
8
8
8
12
12
12
38ALGORITMOS DE EXCLUSIÓN MUTUA
- Algoritmo Distribuido (Ricart y Agrawala)
Entra a la Sección Crítica
OK
OK
OK
OK
39ALGORITMOS DE EXCLUSIÓN MUTUA
- Algoritmo Distribuido (Ricart y Agrawala)
- Problemas
- 1. Si cualquier proceso falla no es posible
- responder a las peticiones hechas (se puede
- interpretar incorrectamente). Probabilidad de
- falla contra un proceso coordinador es n veces
- mayor.
- 2. Primitiva de comunicación de membresía de
- grupo.
40ALGORITMOS DE EXCLUSIÓN MUTUA
Algoritmo basado en token-ring
- La idea es ordenar los n procesos en un anillo
lógico, y hacer pasar un token en la dirección
del reloj. - Si un proceso quiere entrar a su sc, esperará el
token y lo retendrá. Al salir de la sc, pasará el
token a su vecino. - Si un proceso que no quiere entrar a su sc
recibe el token, lo pasa inmediatamente al
vecino. - Se requerirán de 1 a n-1 mensajes para obtener
el token.
41ALGORITMOS DE EXCLUSIÓN MUTUA
Algoritmo basado en token-ring
- Ventajas
- Cumple con ME1 y ME2, pero no con ME3.
- Requiere menos mensajes que el algoritmo
distribuido. - Desventajas
- Si un proceso falla hay que rehacer el anillo.
- Si falla el proceso que tiene el token, se deberá
crear un nuevo token (cuidado con dos tokens!)
42(No Transcript)
43ALGORITMOS DE ELECCIÓN DE COORDINADOR
- Una elección es un procedimiento para
seleccionar un proceso de un grupo, para que
ejecute algunas operaciones específicas (nuevo
coordinador, tome la responsabilidad de un
proceso que ha fallado). - El requerimiento principal para la selección es
que el proceso electo sea único, aún cuando
varios procesos llamen a la elección
simultáneamente, y que todos sepan cuál es el
proceso electo.
44ALGORITMOS DE ELECCIÓN DE COORDINADOR
Algoritmo del grandulón
- Puede ser usado cuando los miembros del grupo
conocen las identidades y direcciones de los
otros procesos. - El algoritmo selecciona el proceso sobreviviente
con el identificador mayor. - Se asume que la comunicación es confiable, pero
que los procesos pueden fallar durante una
elección. - Hay tres tipos de mensajes en este algoritmo
elección, respuesta y coordinador.
45ALGORITMOS DE ELECCIÓN DE COORDINADOR
Algoritmo del grandulón
- La elección puede comenzarla cualquier proceso P
que detecte que el coordinador ha fallado. - El proceso P envía un mensaje de elección a
todos aquellos procesos que tengan un
identificador más alto que el suyo y espera un
mensaje de respuesta. - Si no le llega ningún mensaje de respuesta
dentro un período de tiempo determinado, el
proceso se considera coordinador y envía, a todos
los procesos con identificadores menores, un
mensaje coordinador anunciándose como nuevo
coordinador.
46ALGORITMOS DE ELECCIÓN DE COORDINADOR
Algoritmo del grandulón
- Si le llega al menos una respuesta, espera un
tiempo determinado por un mensaje coordinador. Si
al terminar ese tiempo no le llega, inicia una
nueva elección. - Si un proceso recibe un mensaje coordinador,
registra el identificador y comenzará a
comunicarse con él cuando necesite de sus
servicios. - Si un proceso recibe un mensaje de elección,
envía un mensaje de respuesta y comienza una
nueva elección. - Cuando un proceso que falló es recuperado, éste
comienza una elección, aún cuando el coordinador
no haya fallado.
47ALGORITMOS DE ELECCIÓN DE COORDINADOR
E
Estado 1 Falla el coordinador
P4
R
P1
P3
P4
E
P2
R
E
P1
P3
P4
Estado 2P2 y P3 inician nueva
elección
E
R
P2
E
C
Estado 3 P3 es coordinador pero
falla antes de anunciarlo
P1
P3
P2
48ALGORITMOS DE ELECCIÓN DE COORDINADOR
C
Eventualmente.... p1 inicio de nuevo
elección y p2 es coordinador.
Coord.
P1
P2
- En el mejor caso, el proceso con el segundo
identificador mayor se da cuenta de la falla del
coordinador, y sólo se envían n-2 mensajes
coordinador. - En el peor caso, el proceso con menor
identificador se da cuenta de la falla del
coordinador, y se requieren O(n2) mensajes.
49ALGORITMOS DE ELECCIÓN DE COORDINADOR
Algoritmo en anillo lógico (Chang y Roberts)
- No se requiere que los procesos conozcan los ids
de los demás procesos, sólo el del vecino en la
dirección del anillo. - Se elige como coordinador el proceso con el id
mayor. - Cualquier proceso P puede iniciar la elección,
coloca su id en un mensaje de elección y lo pasa
a su vecino. - Si el vecino ha fallado, el mensaje es pasado al
siguiente vecino que esté corriendo. - Cuando un proceso recibe un mensaje de elección,
adiciona si id en el mensaje y lo pasa.
50ALGORITMOS DE ELECCIÓN DE COORDINADOR
Algoritmo basado en anillo lógico
- Eventualmente, el mensaje regresará al proceso
que inició la elección. Esto se detecta cuando
recibe el mensaje de elección y su id está en la
lista. - El mensaje es cambiado a coordinador y circula
de nuevo en el anillo. - Qué sucede en ambos algoritmos si dos procesos
simultáneamente inician elección?
51ALGORITMOS DE ELECCIÓN DE COORDINADOR
- Algoritmo basado en anillo lógico
- No se conoce la identidad de los otros
procesos a priori. - Sólo existe comunicación entre vecinos (en un
sentido). - Se asume la funcionalidad y alcance de los
procesos durante la elección.
52ALGORITMOS DE ELECCIÓN DE COORDINADOR
- Algoritmo en anillo (Variante Tanenbaum)
1.- Inicialmente cada proceso se marca como
no participante. 2.- Cualquier proceso puede
iniciar la elección. - Se marca como
participante. - Envía un mensaje de
elección con su ID al vecino.
53ALGORITMOS DE ELECCIÓN DE COORDINADOR
- Algoritmo en anillo (Variante Tanenbaum)
3.- Cuando se recibe un mensaje de elección
se compara el ID del mensaje con el propio.
- IDmensaje gt IDreceptor, se reenvía. -
IDmensaje lt IDreceptor, y el receptor no es
participante, se sustituye el
ID y se reenvía. - IDmensaje lt IDreceptor, y
el receptor es
participante, no se reenvía. - IDmensaje
IDreceptor, este proceso pasa a
ser el coordinador.
54ALGORITMOS DE ELECCIÓN DE COORDINADOR
- Algoritmo en anillo (Variante Tanenbaum)
4.- El coordinador se marca como no
participante, y envía un mensaje de elegido
con su ID. 5.- Cuando se recibe un mensaje de
elegido por cualquier otro proceso (no
coordinador) se marca como no participante y
reenvía el mensaje.
55ALGORITMOS DE ELECCIÓN DE COORDINADOR
- Algoritmo en anillo (Variante Tanenbaum)
- Peor Caso
- Cuando sólo un proceso empieza la elección y su
vecino contrario es el de mayor ID. - Se envían 3n 1 mensajes en total.
- n 1 hasta llegar al vecino de mayor ID
- n mensajes de este vecino a través del anillo
- n mensajes de elegido