sincronizacion relojes sistemas distribuidos

59
1 Tema 3 La sincronización en los sistemas distribuidos Departamento de Informática Universidad de Extremadura Ingeniería Informática. Sistemas Operativos Distribuidos

Upload: ulisexhh

Post on 01-Jul-2015

533 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: sincronizacion relojes sistemas distribuidos

1

Tema 3La sincronización en los

sistemas distribuidos

Departamento de Informática Universidad de Extremadura

Ingeniería Informática. Sistemas Operativos Distribuidos

Page 2: sincronizacion relojes sistemas distribuidos

2

Tema 3: La sincronización en los Sistemas Distribuidos

1. Problemas planteados en los sistemas distribuidos

2. Sincronización de relojes

3. Exclusión mutua

4. Algoritmos de elección

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Page 3: sincronizacion relojes sistemas distribuidos

3Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

No existe memoria compartida en un sistema distribuido

¿Cómo se implementa un semáforo en un sistema distribuido?

No existe una base de tiempos común en un sistema distribuido

¿Qué evento ocurre antes que otro?

3.1 Problemas planteados en los S.D.

Page 4: sincronizacion relojes sistemas distribuidos

4Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

1. Un sistema distribuido es un conjunto de máquinas que no comparten reloj ni memoria común

2. Los procesos intercambian mensajes sobre un canal de comunicación donde el retardo es impredecible

Consecuencias:

1. Ausencia de un reloj global2. Los procesos no pueden confiar en disponer de una vista

global del estado del sistema debido a los retardos de la comunicación: No se puede hablar de un estado global

Las nociones tradicionales de tiempo y estado no funcionan:

Aspectos esenciales de los sistemas distribuidos

Necesitamos desarrollar los conceptos correspondientes a tiempo y estado en los sistemas distribuidos

3.1 Problemas planteados en los S.D.

Page 5: sincronizacion relojes sistemas distribuidos

5

3.2 Sincronización de relojes

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Recordemos las propiedades de los sistemas distribuidos:1.La información está repartida entre múltiples máquinas2.Los procesos toman decisiones basados únicamente en información local3.Es preciso evitar un único punto de fallo4.No existe un reloj común:

time(P1) ≤ time(P2)

Si P1 solicita el tiempo antes que P2:

¿ time(P1) ≤ time(P2) ?

Page 6: sincronizacion relojes sistemas distribuidos

6

3.2 Sincronización de relojes

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Ejemplo: make en un Sistema Distribuido

Supongamos un sistema con dos máquinas A y B con relojes desfasados en el que compilamos un fichero fuente

make

Page 7: sincronizacion relojes sistemas distribuidos

7

3.2 Sincronización de relojes

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

⇒ Una invocación de make en el instante 2146 de B no recompila el nuevo fichero fuente popo.c

Surge la pregunta:¿Es posible sincronizar los relojes en un sistema distribuido?

make

Page 8: sincronizacion relojes sistemas distribuidos

8

3.2 Sincronización de relojesRelojes lógicos

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Para muchos algoritmos, lo importante no es disponer de un relojcomún, sino acordar el orden en el que ocurren los eventos

Para estos algoritmos lo importante es hablar de relojes lógicos

Leslie Lamport (1978) apunta a que la sincronización no necesita ser absoluta: Si dos procesos no interactúan, no es necesario que sus relojes estén sincronizados

En el ejemplo de make lo importante es que popo.c sea más moderno que popo.o, no sus instantes globales de creación

Page 9: sincronizacion relojes sistemas distribuidos

9

3.2 Sincronización de relojes

La ejecución de un proceso es una secuencia de eventos:1. Un evento es la ejecución de una instrucción o de una rutina 2. Enviar un mensaje es un evento. Recibirlo, también

La relación “ocurre antes”

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

La relación “ocurre antes” se define como sigue

1. a y b ocurren en el mismo proceso y a se produce antes que b

2. a es el evento en un proceso de enviar un mensaje y b de recibirlo en otro proceso

3. Si a → b y b → c, entonces a → c

"a → b“ si:

Page 10: sincronizacion relojes sistemas distribuidos

10

3.2 Sincronización de relojesEjemplo

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• a → bc → db → cd → f

• a y e son concurrentes

• Observemos que " → " es una relación de orden parcial. • Los eventos no relacionados se llaman eventos concurrentes

Page 11: sincronizacion relojes sistemas distribuidos

11

3.2 Sincronización de relojesEl algoritmo de Lamport

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

1. Cada proceso Pi tiene un reloj lógico propio Ci

2. Ci no mide el tiempo real en que ocurren los eventos de Pi, sino que los etiqueta de forma consistente con la relación “ocurre antes”:

Si a ∈ Ci y b ∈ Cj, entonces

Si a → b, entonces Ci(a) ≤ Cj(b)

Se dice que C(a) es la etiqueta temporal (time-stamp) de a

Page 12: sincronizacion relojes sistemas distribuidos

12

3.2 Sincronización de relojesEl reloj lógico de Lamport

Define la construcción de un reloj lógico para los eventos de un sistema distribuido:

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

1. En el proceso P establecemos el contador CP

• Antes de que se produzca un evento CP := CP + 1• Cuando en P se produce el evento a, este se etiqueta:

C(a) := CP

2. a) Cuando P envía un mensaje m, este lleva un valor t ≡ CPb) Cuando m es recibido por Q, CQ ≡ max(CQ, t) antes

de etiquetar el evento de recepción

Page 13: sincronizacion relojes sistemas distribuidos

13

3.2 Sincronización de relojesEl reloj lógico de Lamport

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

El reloj definido por el reloj físico no es un reloj lógico

Page 14: sincronizacion relojes sistemas distribuidos

14

3.2 Sincronización de relojesEl reloj lógico de Lamport

Reloj lógico derivado del del físico mediante el algoritmo de Lamport

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Page 15: sincronizacion relojes sistemas distribuidos

15

3.2 Sincronización de relojesRelojes lógicos totalmente ordenados

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Se puede extender el orden parcial de la relación “ocurre antes”a un orden total mediante una regla arbitraria basada en el identificador del proceso

Nueva definición de C(a): Se añade un decimal a C(a) según el proceso:

La nueva función C(a) introduce un Reloj Lógico Totalmente Ordenado

Page 16: sincronizacion relojes sistemas distribuidos

16

3.2 Sincronización de relojesRelojes físicosTiempo solar

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Día solar es el tiempo que transcurre desde que el sol alcanza su punto más alto en el horizonte hasta que vuelve a alcanzarlo ( ≡ 24 horas)⇒ El segundo solar o GMT (Greenwich Mean Time)

≡ 1 día solar / (24*60*60)

Page 17: sincronizacion relojes sistemas distribuidos

17

3.2 Sincronización de relojesRelojes físicosTiempo solar medio

• El día solar sufre variaciones de hasta 15 minutos.

• La figura muestra esta variación a lo largo del año

Este fenómeno se debe a:1. La inclinación del eje de rotación respecto al plano de

traslación alrededor del sol2. El movimiento desigual causado por la órbita elíptica

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Page 18: sincronizacion relojes sistemas distribuidos

18

3.2 Sincronización de relojesRelojes físicos Tiempo solar medio

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Estudios geológicos del coral hacen creer a los geólogos que hace 300 millones de años había 400 días/año. ¿Eran los años más largos? No, Los días eran más cortos

• Las fuerzas de las mareas y las turbulencias del núcleo de hierro de la tierra provocan variaciones momentáneas en la velocidad de rotación

Además:

Para solucionar todos estos problemas, se midieron las duraciones de muchos días y se tomó la media, que se conoce como el día solar medio

Page 19: sincronizacion relojes sistemas distribuidos

19

3.2 Sincronización de relojesRelojes físicos Tiempo solar medio

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• La gráfica se conoce realmente como la “ecuación del tiempo”

• Mide la diferencia entre el día solary el día solar medio

Page 20: sincronizacion relojes sistemas distribuidos

20

3.2 Sincronización de relojesRelojes físicos Tiempo atómico Internacional

El reloj atómico se inventa en 1948. Los físicos toman el relevo a los astrónomos en la medida del tiempo• Segundo atómico

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Es el tiempo que el isótopo Cesio 133 tarda en realizar 9.1921631.770 transiciones

• El valor 9.1921631.770 se tomó para que el segundo atómico coincidiera con el segundo solar medio del 1 de Enero de 1900

La precisión del reloj atómico es de 1 µs/añoEl segundo atómico se confecciona como la la media de ticksproporcionados por 150 relojes atómicos situados en 30 países desde el 1 de enero de 1958.Esta medida del tiempo se conoce como Tiempo Atómico Internacional (TAI) y se adopta oficialmente en 1967

Page 21: sincronizacion relojes sistemas distribuidos

21

3.2 Sincronización de relojesRelojes físicos Tiempo Universal Coordinado (UTC)

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Como la tierra gira cada vez más despacio, ahora: 1 día solar = 86400 segundos TAI + 3 ms

• A este paso ¡ el mediodía va a ocurrir a las 9:00 TAI !• Se creó entonces el Tiempo Universal Coordinado (UTC), que

empieza el 1 de enero de 1970• UTC corre a la tasa TAI, pero ocuando la diferencia con el

tiempo solar supera los 800 ms, se añade o se resta un segundo

• Las correcciones se hacen en el último minuto de junio y de diciembre, que pasa a tener 61 segundos

UTC presenta problemas para los computadores, porque no se conoce la representación de una fecha futura.

Page 22: sincronizacion relojes sistemas distribuidos

22

3.2 Sincronización de relojesRelojes físicos Tiempo Universal Coordinado (UTC)

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Reloj UTC durante el segundo intercalar

Page 23: sincronizacion relojes sistemas distribuidos

23

3.2 Sincronización de relojesRelojes físicos Tiempo Universal Coordinado (UTC)

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Históricamente, se insertaban segundos intercalares más o menos cada 18 meses.

• Sin embargo, la velocidad de rotación de la Tierra es impredecible a largo plazo, por lo que no es posible predecir sunecesidad con más de seis meses de adelanto.

• Entre enero de 1972 y diciembre de 1998, el IERS dio instrucciones de insertar un segundo intercalar en 22 ocasiones.

• El intervalo entre el 31 de diciembre de 1998 y el 31 de diciembre de 2005, es el mayor periodo sin inserciones de segundos intercalares desde que se instauró el sistema.

Page 24: sincronizacion relojes sistemas distribuidos

24

3.2 Sincronización de relojesRelojes físicos Tiempo Universal Coordinado (UTC)

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• El NIST (National Institute for Standards and Technology) proporciona el UTC mediante ondas de radio, teléfono e Internet

http://tf.nist.gov/timefreq/index.html

Page 25: sincronizacion relojes sistemas distribuidos

25

3.2 Sincronización de relojesRelojes físicos Tiempo Universal Coordinado (UTC)

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• El NIST (National Institute for Standards and Technology) proporciona el UTC mediante ondas de radio, teléfono e Internethttp://tf.nist.gov/timefreq/index.html

• Su estación de radio (denominada WWV) difunde el tiempo UTC cada segundo

Page 26: sincronizacion relojes sistemas distribuidos

26

3.2 Sincronización de relojesRelojes físicos Tiempo Universal Coordinado (UTC)

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Un reloj controlado por radio tiene una radio en su interior querecibe una señal de una estación de radio que dispone de un reloj atómico

Page 27: sincronizacion relojes sistemas distribuidos

27

3.2 Sincronización de relojesAlgoritmos de Sincronización• Necesarios cuando no hay acceso a una estación WWV

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Page 28: sincronizacion relojes sistemas distribuidos

28

3.2 Sincronización de relojesAlgoritmos de Sincronización• La variable realtime en la máquina P es el reloj CP(t)• Idealmente CP(t) = t• Es decir dC/dt = 1

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Page 29: sincronizacion relojes sistemas distribuidos

29

3.2 Sincronización de relojesAlgoritmos de Sincronización

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Un temporizador que interrumpa H = 60 veces por segundo genera 60x60x60 = 216.000 ticks en una hora

• En la práctica el error es del 10-5

• Así, realmente, este temporizador genera 215.998 ticks/hora• Es decir, si existe una constante ρ tal que

ρρ +≤≤− 11dtdC

se dice que el reloj está operando dentro de su especificación

• La constante ρ la determina el fabricante y se conoce como su tasa de deriva máxima

Page 30: sincronizacion relojes sistemas distribuidos

30

3.2 Sincronización de relojesAlgoritmos de Sincronización

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Si dos relojes derivan en dirección opuesta, en un tiempo Δt tras ser sincronizados, la diferencia entre ambos es 2ρΔt

Page 31: sincronizacion relojes sistemas distribuidos

31

3.2 Sincronización de relojesAlgoritmos de Sincronización• Si se quiere garantizar que ningún par de relojes difiera en

más de δ, hay que sincronizar al menos cada δ/2ρ segundos

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Los algoritmos de sincronización de relojes difieren en cómo se hace esta sincronización

Page 32: sincronizacion relojes sistemas distribuidos

32

3.2 Sincronización de relojesAlgoritmos de SincronizaciónEl algoritmo de Cristian (1989)

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Una de las máquinas de la red dispone de un receptor WWV• La denominaremos el servidor de tiempo• El objetivo es que el resto estén sincronizadas con ella• Para ello, cada máquina envía un mensaje al menos cada cada δ/2ρ segundos

• El servidor replica con su tiempo CUTC

Page 33: sincronizacion relojes sistemas distribuidos

33

3.2 Sincronización de relojesAlgoritmos de SincronizaciónEl algoritmo de Cristian

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Page 34: sincronizacion relojes sistemas distribuidos

34

3.2 Sincronización de relojesAlgoritmos de Sincronización El algoritmo de Cristian

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• El algoritmos de cristian tiene dos problemas:

1. Problema grande:

Un reloj nunca se puede atrasar. Eso afectaría a programas como makeOcurriría si el cliente es rápido, de modo que T1 > CUTC

Se soluciona ralentizando el reloj durante un intervalo apropiado, por ejemplo “olvidando” actualizar el tiempo una de cada 10 interrupciones de reloj

Page 35: sincronizacion relojes sistemas distribuidos

35

3.2 Sincronización de relojesAlgoritmos de Sincronización El algoritmo de Cristian

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• El algoritmos de cristian tiene dos problemas:2. Problema pequeño:• El tiempo que emplea la

réplica en llegar. Puede ser grande y variable.

• Cristian intentó medirlo. (T1-T0) será bastante exacto siempre.

• (T1-T0)/2 es una buena estimación del tiempo de propagación• Cuando llega la réplica el tiempo se establece como (T1-T0)/2

+ CUTC

Page 36: sincronizacion relojes sistemas distribuidos

36

3.2 Sincronización de relojesAlgoritmos de Sincronización El algoritmo de Cristian

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

2. Problema pequeño:• Si se conoce el tiempo de

servicio, este se hay que restarlo del tiempo de propagación• Cristian propuso otras mejoras

Una es tomar el tiempo varias veces, descartar los (T1-T0)/2 víctimas de la congestión de la red y realizar una media de los restantes. Otra es usar sólo la réplica más rápida

Page 37: sincronizacion relojes sistemas distribuidos

37

3.2 Sincronización de relojesAlgoritmos de Sincronización El algoritmo de Berkeley (1989)

• Apropiado en redes sin acceso a una estación WWV• Esta vez el servidor es activo:

Escruta el tiempo de los clientesHalla una media que radia a todos los clientes

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Page 38: sincronizacion relojes sistemas distribuidos

38

3.2 Sincronización de relojesAlgoritmos de Sincronización El algoritmo de promediado• Apropiado en redes sin acceso a una estación WWV• Cada máquina difunde su tiempo con un periodo R• Tras su difusión, establece su tiempo como la media de las

difusiones que recibe durante un intervalo S

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Frente a los anteriores, este algoritmo no tiene un único punto de fallo

Page 39: sincronizacion relojes sistemas distribuidos

39

3.2 Sincronización de relojesUso de la Sincronización: Coherencia de caché• Escenario de típico de caché de ficheros en cliente• Se distigue entre caching de lectura y escritura

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Page 40: sincronizacion relojes sistemas distribuidos

40

3.2 Sincronización de relojesUso de la Sincronización: Coherencia de caché

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Problemas• Puede que el cliente haya

terminado hace mucho con la lectura y aùn así hay que solicitarle el permiso 4

• Si el cliente de lectura se cae, el permiso 6 no llegará: ¿Es una máquina lenta o es que se ha caído?

Page 41: sincronizacion relojes sistemas distribuidos

41

3.2 Sincronización de relojesUso de la Sincronización: Coherencia de caché

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• El servidor proporciona el fichero con un derecho o concesión temporal (plazo).

• Con los relojes sincronizados, el plazo vence al mismo tiempo en cliente y servidor.

• Si el plazo está próximo a expirar, el cliente solicita la renovación

• Si el plazo expira, el fichero en caché se invalida. No es necesario comunicarlo al sevidor.

Page 42: sincronizacion relojes sistemas distribuidos

42

3.2 Sincronización de relojesUso de la Sincronización: Coherencia de caché

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Si se cae un cliente con una concesión de lectura, no es necesario que el servidor espere la expiración del plazo de caída, sino la del plazo de concesión, que seguramente ya se habrá producido.

Page 43: sincronizacion relojes sistemas distribuidos

43

3.3 Exclusión mutuaUn algoritmo centralizado• La primera aproximación a la Región Crítica en los Sistemas

Distribuidos es un proceso coordinador que registra su uso

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Page 44: sincronizacion relojes sistemas distribuidos

44

3.3 Exclusión mutuaUn algoritmo centralizado

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Este algoritmo garantiza la exclusión mutua porque:1. El coordinador sólo permite la entrada de un proceso2. Es justo: las peticiones se atienden por orden de llegada3. Ningún proceso espera indefinidamente

Ventajas: Es fácil de implementar

Inconvenientes: Tiene un único punto de fallo (centralizado)

Page 45: sincronizacion relojes sistemas distribuidos

45

3.3 Exclusión mutuaEl algoritmo distribuido de Ricart y Agrawala (1981)1. Cuando un proceso quiere entrar en región crítica:

• Pasa a estado SOLICITANDO• Envía un mensaje de solicitud al resto vía difusión,

multicasting, ... que lleva el valor del reloj lógico local correspondiente al envío

• Espera n-1 réplicas

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Page 46: sincronizacion relojes sistemas distribuidos

46

3.3 Exclusión mutuaEl algoritmo distribuido de Ricart y Agrawala (1981)

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

2. Cuando recibe un mensaje de solicitud de entrada en R.C:• Si el receptor no está en R.C. y no desea entrar en ella

(estado CONCEDIDO), envía un mensaje de réplica al proceso que solicitó el permiso

• Si el receptor sí está en R.C. (estado OTORGADO), no envía réplica al proceso que solicitó el permiso y encola la petición (no concede el permiso)

• Si el receptor no está en R.C. pero desea entrar (estado SOLICITANDO), compara el reloj del mensaje entrante con el de su mensaje de solicitud al resto ⇒ El más bajo gana:

Si gana el emisor, se le envía la réplica de concesiónSi gana el receptor, encola el mensaje y no envía réplica

Page 47: sincronizacion relojes sistemas distribuidos

47

3.3 Exclusión mutuaEl algoritmo distribuido de Ricart y Agrawala (1981)

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

3. Cuando un proceso abandona la región crítica, pasa a CONCEDIDO y replica a todos los procesos en la cola

Ejemplo: P0 y P2 solicitan entrar en RC en (t = 8 y t=9)Las peticiones llegan en (t = 12):

Page 48: sincronizacion relojes sistemas distribuidos

48

3.3 Exclusión mutuaComparación de algoritmos de exclusión mutua

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Ricart y Agrawala CentralizadoMensajes necesarios para obtener el permiso 2(n-1) mensajes 2

Ricart y Agrawala CentralizadoPuntos de fallo n-1 1

• En conjunto, el algoritmo de Ricart y Agrawala es más lento, más complicado y menos robusto,

• ¿Por qué molestarse en estudiarlo?1. Demuestra que es posible un algoritmo distribuido de RC 2. Estimula el estudio de soluciones distribuidas más

avanzadas

Page 49: sincronizacion relojes sistemas distribuidos

49

3.3 Exclusión mutuaUn algoritmo en anillo

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Cuando llega el testigo, si el proceso P no está interesado lo pasa al siguiente proceso

• Si P necesita entrar en Región Crítica, espera bloqueado la llegada del testigo

• Los procesos están organizados en un anillo lógico por el que circula un testigo.

• Se concede la entrada a la Región Crítica al proceso P que obtiene el testigo

Page 50: sincronizacion relojes sistemas distribuidos

50

3.3 Exclusión mutuaUn algoritmo en anillo

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Ricart y Agrawala

Centralizado Anillo

Mensajes necesarios para obtener el permiso 2(n-1) 2 n-1

Puntos de fallo n-1 1 n-1

1. Recuperación de fallo: Cada vez que se envía el testigo se inicia un temporizador y se espera una réplica. Se retira el proceso que falla del anillo lógico

2. Inconveniente: Los mensajes se envían continuamente, aunque no sea necesario

Page 51: sincronizacion relojes sistemas distribuidos

51

3.4 Algoritmos de elección

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Una elección es un procedimiento que elige un proceso en un grupo a fin de que este desempeñe un papel determinado

• Por ejemplo, centralizar peticiones de entrada en una región crítica, a modo de coordinador.

• Vamos a considerar que los procesos implicados en la elección son idénticos, sin que ninguno de ellos tenga una característica destacable como para ser el coordinador idóneo.

• Cada proceso tiene un identificador único como puede ser su dirección de red.

• En general, los algoritmos de elección intentan localizar al proceso con el identificador más alto para hacerlo coordinador

Page 52: sincronizacion relojes sistemas distribuidos

52

3.4 Algoritmos de elección

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Para enviar los mensajes, los procesos necesitan conocer las direcciones de red de todo el grupo de procesos en busca de coordinador, de modo que la elección ya estaría hecha de antemano.

• El problema es que los procesos desconocen cuáles de ellos están aún activos y cuáles no.

• El requisito que debe cumplir una elección de coordinador es que esta sea única.

• Los algoritmos difieren unos de otros en el modo de conseguirlo.

Page 53: sincronizacion relojes sistemas distribuidos

53

3.4 Algoritmos de elección

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Este algoritmo data de 1982 y es debido a García-Molina. • Cuando un proceso se apercibe de que el coordinador no

responde a sus mensajes, inicia una convocatoria de elección

El algoritmo del matón

• Una elección se desarrolla como sigue:1. P envía un mensaje de tipo ELECCION a todos los

procesos con identificadores más altos.2. Si ninguno de ellos responde, P gana la elección y se

convierte en el coordinador.3. En cuanto P recibe el mensaje de respuesta de alguno

de ellos, renuncia a ser el coordinador y su trabajo ha terminado. Cada uno de estos procesos, tras enviar el mensaje, convocan una elección

Page 54: sincronizacion relojes sistemas distribuidos

54

3.4 Algoritmos de elecciónEl algoritmo del matón

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• En cualquier momento, un proceso puede recibir un mensaje ELECCION de uno de los procesos con identificador inferior.

• La rutina que sirve el mensaje envía un mensaje de confirmación y toma el control iniciando una elección, a menos que ya esté celebrando una.

• Llega un momento en que todos los procesos renuncian y uno de ellos se convierte en el nuevo coordinador, hecho que anuncia al resto mediante el envío de un mensaje.

• Si un proceso que inicialmente estaba caído se recupera, inicia una elección. Si es el de identificador más alto, ganarála elección y asumirá el papel de coordinador.

• Siempre gana el proceso de identificador más grande, de ahíel nombre del algoritmo.

Page 55: sincronizacion relojes sistemas distribuidos

55

3.4 Algoritmos de elección El algoritmo del matón

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

Page 56: sincronizacion relojes sistemas distribuidos

56

3.4 Algoritmos de elecciónEl algoritmo en anillo

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Chang y Roberts, 1979 • Anillo lógico: cada proceso sólo sabe comunicarse con su

vecino • Se elige al proceso con identificador más alto • Se supone procesos estables durante la elección

Page 57: sincronizacion relojes sistemas distribuidos

57

3.4 Algoritmos de elecciónEl algoritmo en anillo

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Inicialmente todos los procesos son no-participantes• Cualquiera puede empezar una elección:

Se marca como participanteEnvía mensaje de ELECCIÓN con su identificador

• Cuando un proceso recibe un mensaje ELECCIÓN a) Si el identificador del mensaje es mayor que el

suyo, reenvía el mensaje al vecino b) Si es menor: Si es no-participante, sustituye el

identificador y envía mensaje al vecino. Si es participante, no envía nada

c) Si es igual, se marca como no-participante y envía al vecino el mensaje ELEGIDO con su identificiador

Page 58: sincronizacion relojes sistemas distribuidos

58

3.4 Algoritmos de elecciónEl algoritmo en anillo

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos

• Cuando un proceso recibe un mensaje de ELEGIDO

Se marca como no-participanteEnvía el mensaje ELEGIDO con su identificador

• Número de mensajes para elegir coordinador: Peor caso: Lanza la elección el siguiente al futuro coordinador: (3n-1)mensajes

Mejor caso: Lanza elección el futuro coordinador: 2n mensajes

Page 59: sincronizacion relojes sistemas distribuidos

59

3.4 Algoritmos de elecciónEl algoritmo en anillo

Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos