La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale."— Transcripción de la presentación:

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

2 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

3 INTRODUCCIÓN  Propiedades de los Algoritmos Distribuidos 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 en el sistema. No existe un reloj común o alguna otra fuente precisa del tiempo global.

4 INTRODUCCIÓN  Problemas a considerar Tiempos y estados globales. Exclusión mutua. Algoritmos de elección. Problemas de consenso Operaciones atómicas distribuidas: Transacciones

5 Relojes y Sincronización

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

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

8 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

9 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

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

11 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

12 ab cd ef  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 C p, se puede asignar un valor de tiempo a cada evento a: C p (a). Estos relojes lógicos deben tener las siguientes propiedades: Si a b, entonces C p (a) < C p (b). El valor de C p debe ser siempre incrementado, nunca deben decrementarse.

13 SINCRONIZACIÓN DE RELOJES LÓGICOS Algoritmo de Ordenamiento Causal LC1: C p es incrementado antes que cada evento sea ejecutado: C p = C p + 1. LC2: Cuando un proceso p envía un mensaje m, coloca en el mensaje el valor t= C p. LC3: Cuando un proceso q recibe (m,t), q calcula C q =max(C q,t) y aplica LC1. ¿Es verdad que si C p (a) < C q (b), entonces a b?

14 SINCRONIZACIÓN DE RELOJES LÓGICOS Veamos con un ejemplo cómo funciona el algoritmo: Tres relojes no sincronizados Sincronización de relojes 0 6 12 18 24 30 36 42 48 54 60 0 8 16 24 32 40 48 56 64 72 80 0 10 20 30 40 50 60 70 80 90 100 P1 P2P3 A B D C a b c d e f g h 0 6 12 18 24 30 36 42 48 70 76 0 8 16 24 32 40 48 61 69 77 85 0 10 20 30 40 50 60 70 80 90 100 P1 P2P3 A B D C a b c d e f g h

15 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

16 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

17 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

18 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

19 Algoritmo de Cristian ALGORITMOS DE SINCRONIZACIÓN ST Servidor de Tiempo con receptor WWV P0 P1P2 mr mt mr  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 C UTC que le envía ST. Problemas: Si C UTC es menor que el C p, se estará devolviendo. No se considera el tiempo de transmisión de los mensajes.

20 Algoritmo de Cristian ALGORITMOS DE SINCRONIZACIÓN ¿Qué hace el enviador cuando recibe la respuesta? b. Ajustar su reloj C UTC gradualmente En lugar de sumar 1 al C p con cada tick de reloj, se suma un valor mayor (si C p C UTC ). Ejemplo: 1 seg = H interrupciones, así al sumar 1 a C p se están sumando 1/H segs. 1 seg = 100 interrupciones, así al sumar 1 a C p 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.

21 Algoritmo de Cristian ALGORITMOS DE SINCRONIZACIÓN Solución: Estimar el tiempo de propagación T propag. Enviador Servidor del tiempo T 0 T I T 1 T 0 y T 1 se miden con el mismo reloj, así: T propag = (T 1 – T 0 )/2. Si se conoce T I (tiempo de atención de la interrupción), T propag = (T 1 - T 0 - T I )/2.

22 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ÓN Algoritmo de Berkeley 3:00 3:25 2:50 3:00 Demonio del tiempo 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

23 ¿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ÓN Algoritmo de Berkeley

24 Es distribuido. La idea es dividir el tiempo en intervalos de resincronización de longitud fija. El i-th intervalo comienza en T 0 + iR y corre hasta T 0 + (i+1)R, donde T 0 es el tiempo inicial del pasado y R un parámetro del sistema. ALGORITMOS DE SINCRONIZACIÓN Algoritmo de Promediación T0 T1 T2...Tn Sinc RR Pi

25 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ÓN Algoritmo de Promediación

26 Exclusión Mutua Distribuida

27 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 DISTRIBUIDA Requerimientos para proveer exclusión mutua:

28 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 MUTUA Algoritmo Centralizado (un coordinador)

29 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 MUTUA Algoritmo Centralizado (un coordinador) P1 P2 1. request Coordinador P3P4 sc1 4 sc2 2 1 2. release 3. grant

30 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 MUTUA Algoritmo Centralizado (un coordinador)

31 ALGORITMOS 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. 4n 1 2 3 x...

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

33 ALGORITMOS 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. 1 0 2 8 8 8 12 12 12

34 ALGORITMOS DE EXCLUSIÓN MUTUA Algoritmo Distribuido (Ricart y Agrawala) 1 0 2 OK OK OK Entra a la SecciónCrítica 1 0 2 OK

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

36 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 MUTUA Algoritmo basado en token-ring

37 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 MUTUA Algoritmo basado en token-ring

38 Elección de Coordinador

39 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

40 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

41 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

42 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

43 ALGORITMOS DE ELECCIÓN DE COORDINADOR Algoritmo del grandulón P1 P2 P3P4 Estado 1: Falla el coordinador P4 E R E R P1 P2 P3P4 Estado 2:P2 y P3 inician nueva elección E E R P1 P2 P3 3 Estado 3: P3 es coordinador pero falla antes de anunciarlo C E

44 ALGORITMOS DE ELECCIÓN DE COORDINADOR Algoritmo del grandulón Eventualmente.... p1 inicio de nuevo elección y p2 es coordinador. P1 P2 C Coord. 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 (n 2 ) mensajes.

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

46 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

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

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

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

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

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


Descargar ppt "SINCRONIZACIÓN EN SISTEMAS DISTRIBUIDOS Tema # III Sept-Dic 2008 Yudith Cardinale."

Presentaciones similares


Anuncios Google