51
SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

Embed Size (px)

Citation preview

Page 1: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS

Tema # III

Sept-Dic 2008

Yudith Cardinale

Page 2: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

INDICE

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

Page 3: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

INTRODUCCIÓNPropiedades de los Algoritmos Distribuidos

•La información relevante se distribuye entrevarias máquinas.

•Los procesos toman las decisiones sólo conbase en la información disponible en forma local.

•Debe evitarse un punto de fallo en el sistema.

•No existe un reloj común o alguna otra fuenteprecisa del tiempo global.

Page 4: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

INTRODUCCIÓNProblemas a considerar

•Tiempos y estados globales.

•Exclusión mutua.

•Algoritmos de elección. Problemas de consenso

•Operaciones atómicas distribuidas: Transacciones

Page 5: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

Relojes y Sincronización

Page 6: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

RELOJES (Timers) Cristal de cuarzo asociado a un dispositivo electrónico (chip) que cuenta oscilaciones.

HR C C: contador, se decrementa

con cada oscilación.

HR: “Holding register”, con este valor se inicializa C cada vez que llegue a 0.

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.

Page 7: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

• ¿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.

RELOJES (Timers)

Page 8: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

• 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

SINCRONIZACIÓN DE RELOJES

Page 9: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

• 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ógico:contador 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.

SINCRONIZACIÓN DE RELOJES LÓGICOS

Page 10: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

SINCRONIZACIÓ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.

Page 11: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

Lamport generalizó estas dos ordenamientos con la relación “pasó antes”(happened before) , se denota con “ “ y se define como:

HB1: Si existe un proceso p, tal que x p y, entonces x y.

HB2: Para cualquier mensaje m,

send(m) rcv(m).

HB3: Si x,y,z son eventos tales que x y,

y z, entonces x z (propiedad de transitividad)

SINCRONIZACIÓN DE RELOJES LÓGICOS

Page 12: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

SINCRONIZACIÓN DE RELOJES LÓGICOS

a b

c d

e f

a b, b c, c d, d f

Los eventos a y e son paralelos:

a e

P0

P1

P2 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) < Cp(b).

El valor de Cp debe ser siempre incrementado, nunca deben decrementarse.

Page 13: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

SINCRONIZACIÓ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 Cq=max(Cq,t) y aplica LC1.

¿Es verdad que si Cp(a) < Cq(b), entonces a b?

Page 14: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

SINCRONIZACIÓN DE RELOJES LÓGICOS

Veamos con un ejemplo cómo funciona el algoritmo:

Tres relojes no sincronizados Sincronización de relojes

06121824303642485460

08162432404856647280

0102030405060708090100

P1 P2 P3

A

B

D

C

ab

cd

ef

gh

06121824303642487076

08162432404861697785

0102030405060708090100

P1 P2 P3

A

B

D

C

ab

cd

ef

gh

Page 15: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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)

SINCRONIZACIÓN DE RELOJES FÍSICOS

Page 16: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

Algunas consideraciones importantes:El Tiempo Atómico Internacional (TAI) es mantenido por el BIH (Bureau International de l’Heure) 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.

SINCRONIZACIÓN DE RELOJES FÍSICOS

Page 17: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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: GEOS y GPS.

SINCRONIZACIÓN DE RELOJES FÍSICOS

Page 18: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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.

SINCRONIZACIÓN DE RELOJES FÍSICOS

Page 19: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

Algoritmo de CristianALGORITMOS DE SINCRONIZACIÓN

ST Servidor de Tiempo con receptor WWV

P0 P1 P2

mrmt mtmr ST recibe solicitudes de tiempo

y responde tan rápido como pueda.

¿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.

Page 20: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

Algoritmo de CristianALGORITMOS 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 < C

UTC) o menor (si C

p > C

UTC).

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.

Page 21: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

Algoritmo de CristianALGORITMOS DE SINCRONIZACIÓN

Solución: Estimar el tiempo de propagación Tpropag

.

Enviador Servidor del tiempo

T0

TI

T1

T0 y T

1 se miden con el mismo reloj, así:

Tpropag

= (T1 – T

0)/2.

Si se conoce TI (tiempo de atención de la interrupción),

Tpropag

= (T1 - T

0 - T

I)/2.

Page 22: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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.

ALGORITMOS DE SINCRONIZACIÓNAlgoritmo de Berkeley

3:00

3:25 2:50

3:00

Demonio del tiempo

3:00

3:00

3:25 2:50

+25

Demonio del tiempo

-10

3:00

3:25 2:50

-20

Demonio del tiempo

+15

3:00 0 +5

Page 23: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

¿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.

ALGORITMOS DE SINCRONIZACIÓNAlgoritmo de Berkeley

Page 24: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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 + (i+1)R, donde T

0 es el tiempo inicial

del pasado y R un parámetro del sistema.

ALGORITMOS DE SINCRONIZACIÓNAlgoritmo de Promediación

T0 T1 T2 ... TnSinc Sinc Sinc Sinc

R RPi

Page 25: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

Al comienzo de cada intervalo cada máquina realiza un broadcast de su tiempo actual. Inicia un timer=S para recolectar los broadcast de las otras máquinas.

Corregir cada mensaje adicionando un estimado de T

propag.

Eliminar los valores más altos y más bajos.

Promediar los valores restantes.

ALGORITMOS DE SINCRONIZACIÓNAlgoritmo de Promediación

Page 26: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

Exclusión Mutua Distribuida

Page 27: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ME1: (seguridad) A lo más un proceso puede ejecutarse en su sección crítica (sc) a la vez.

ME2: (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)

ME3: (ordenamiento) La entrada a la sc debe ser otorgada en orden “pasó antes”.

EXCLUSIÓN MUTUA DISTRIBUIDARequerimientos para proveer exclusión mutua:

Page 28: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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.

ALGORITMOS DE EXCLUSIÓN MUTUAAlgoritmo Centralizado (un coordinador)

Page 29: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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

ALGORITMOS DE EXCLUSIÓN MUTUAAlgoritmo Centralizado (un coordinador)

P1 P2

1. request

Coordinador

P3 P4

sc1

4

sc2

21

2. release3. grant

Page 30: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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?

ALGORITMOS DE EXCLUSIÓN MUTUAAlgoritmo Centralizado (un coordinador)

Page 31: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ALGORITMOS DE EXCLUSIÓN MUTUAAlgoritmo Distribuido (Ricart y Agrawala)

• La idea básica del algoritmo es que el procesoque requiere entrar a su Sección Crítica envíaun mensaje a todos los procesos y entra,únicamente, cuando recibe un reconocimientode todos ellos.

44nn

11

22

33xx

. . .. . .

Page 32: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ALGORITMOS DE EXCLUSIÓN MUTUAAlgoritmo 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 -> OK2. 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.

Page 33: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ALGORITMOS DE EXCLUSIÓN MUTUAAlgoritmo Distribuido (Ricart y Agrawala)

•Dos procesos quieren hacer uso de la SecciónCrítica al mismo tiempo. En particular, los procesos 0 y 2 son los involucrados.

11

00

22

88

88 88

1212

1212

1212

Page 34: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ALGORITMOS DE EXCLUSIÓN MUTUAAlgoritmo Distribuido (Ricart y Agrawala)

11

00

22

OKOK

OKOK

OKOK

Entra a laEntra a laSecciónSecciónCríticaCrítica

11

00

22

OKOK

Page 35: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ALGORITMOS DE EXCLUSIÓN MUTUAAlgoritmo Distribuido (Ricart y Agrawala)

• Problemas:

1. Si cualquier proceso falla no es posibleresponder a las peticiones hechas (se puedeinterpretar incorrectamente). Probabilidad defalla contra un proceso coordinador es n vecesmayor.

2. Primitiva de comunicación de membresía degrupo.

Page 36: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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.

ALGORITMOS DE EXCLUSIÓN MUTUAAlgoritmo basado en token-ring

Page 37: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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!)

ALGORITMOS DE EXCLUSIÓN MUTUAAlgoritmo basado en token-ring

Page 38: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

Elección de Coordinador

Page 39: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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.

ALGORITMOS DE ELECCIÓN DE COORDINADOR

Page 40: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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.

ALGORITMOS DE ELECCIÓN DE COORDINADOR

Algoritmo del grandulón

Page 41: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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.

ALGORITMOS DE ELECCIÓN DE COORDINADOR

Algoritmo del grandulón

Page 42: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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.

ALGORITMOS DE ELECCIÓN DE COORDINADOR

Algoritmo del grandulón

Page 43: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ALGORITMOS DE ELECCIÓN DE COORDINADOR

Algoritmo del grandulón

P1

P2

P3 P4Estado 1: Falla el coordinador P4

ER

ER

P1

P2

P3 P4Estado 2:P2 y P3 inician nueva elección

E

ER

P1 P2 P33Estado 3: P3 es coordinador pero falla antes de anunciarlo

C

E

Page 44: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ALGORITMOS DE ELECCIÓN DE COORDINADOR

Algoritmo del grandulón

Eventualmente....p1 inicio de nuevo elección y p2 es coordinador.

P1 P2

CCoord.

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.

Page 45: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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.

ALGORITMOS DE ELECCIÓN DE COORDINADOR

Algoritmo en anillo lógico (Chang y Roberts)

Page 46: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

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?

ALGORITMOS DE ELECCIÓN DE COORDINADOR

Algoritmo basado en anillo lógico

Page 47: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ALGORITMOS 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.

Page 48: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ALGORITMOS 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.

Page 49: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ALGORITMOS DE ELECCIÓN DE COORDINADOR

Algoritmo en anillo (Variante Tanenbaum)

- IDmensaje > IDreceptor, se reenvía.

- IDmensaje < IDreceptor, y el receptor no es “participante”, se sustituye el ID y se

reenvía.

- IDmensaje < IDreceptor, y el receptor es “participante”, no se reenvía.

- IDmensaje = IDreceptor, este proceso pasa a

ser el coordinador.

3.- Cuando se recibe un mensaje de “elección” se compara el ID del mensaje con el propio.

Page 50: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ALGORITMOS 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.

Page 51: SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale

ALGORITMOS 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”