sincronizacion relojes sistemas distribuidos
TRANSCRIPT
1
Tema 3La sincronización en los
sistemas distribuidos
Departamento de Informática Universidad de Extremadura
Ingeniería Informática. Sistemas Operativos 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
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.
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.
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) ?
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
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
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
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:
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
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
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
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
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
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
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)
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
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
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
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
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.
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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?
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.
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.
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
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)
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
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
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):
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
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
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
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
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.
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
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.
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
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
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
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
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