sincronizacion relojes sistemas distribuidos

March 30, 2018 | Author: ulisexhh | Category: Areas Of Computer Science, Technology, Computing, Mathematics, Science


Comments



Description

La sincronización en los sistemas distribuidosDepartamento de Informática Universidad de Extremadura Tema 3 Ingeniería Informática. Sistemas Operativos Distribuidos 1 Tema 3: La sincronización en los Sistemas Distribuidos 1. 2. 3. 4. Problemas planteados en los sistemas distribuidos Sincronización de relojes Exclusión mutua Algoritmos de elección Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 2 3.1 Problemas planteados en los S.D. 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? Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 3 3.1 Problemas planteados en los S.D. Aspectos esenciales de 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: Las nociones tradicionales de tiempo y estado no funcionan: 1. Ausencia de un reloj global 2. 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 Necesitamos desarrollar los conceptos correspondientes a tiempo y estado en los sistemas distribuidos Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 4 3.2 Sincronización de relojes Recordemos las propiedades de los sistemas distribuidos: 1.La información está repartida entre múltiples máquinas 2.Los procesos toman decisiones basados únicamente en información local 3.Es preciso evitar un único punto de fallo 4.No existe un reloj común: Si P1 solicita el tiempo antes que P2: time(P1) ≤ time(P2) ¿ time(P1) ≤ time(P2) ? 5 Ingeniería Informática. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos Tema 3: La sincronización en los sistemas distribuidos 6 . Sistemas Operativos Distribuidos.3.2 Sincronización de relojes 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 Ingeniería Informática. Sistemas Operativos Distribuidos.3.c Surge la pregunta: ¿Es posible sincronizar los relojes en un sistema distribuido? Ingeniería Informática.2 Sincronización de relojes make ⇒ Una invocación de make en el instante 2146 de B no recompila el nuevo fichero fuente popo. Tema 3: La sincronización en los sistemas distribuidos 7 . o. sino acordar el orden en el que ocurren los eventos En el ejemplo de make lo importante es que popo. Sistemas Operativos Distribuidos. no es necesario que sus relojes estén sincronizados Para muchos algoritmos.c sea más moderno que popo. Tema 3: La sincronización en los sistemas distribuidos 8 . no sus instantes globales de creación Para estos algoritmos lo importante es hablar de relojes lógicos Ingeniería Informática.2 Sincronización de relojes Relojes lógicos Leslie Lamport (1978) apunta a que la sincronización no necesita ser absoluta: Si dos procesos no interactúan. lo importante no es disponer de un reloj común.3. 2 Sincronización de relojes La relación “ocurre antes” La ejecución de un proceso es una secuencia de eventos: 1. Recibirlo. Sistemas Operativos Distribuidos. a y b ocurren en el mismo proceso y a se produce antes que b 2. también La relación “ocurre antes” se define como sigue "a → b“ si: 1. entonces a → c Ingeniería Informática. Tema 3: La sincronización en los sistemas distribuidos 9 . Un evento es la ejecución de una instrucción o de una rutina 2.3. 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. Enviar un mensaje es un evento. 2 Sincronización de relojes Ejemplo •a→b c→d b→c d→f • a y e son concurrentes • Observemos que " → " es una relación de orden parcial. • Los eventos no relacionados se llaman eventos concurrentes Ingeniería Informática. Tema 3: La sincronización en los sistemas distribuidos 10 .3. Sistemas Operativos Distribuidos. Sistemas Operativos Distribuidos.3. Tema 3: La sincronización en los sistemas distribuidos 11 . sino que los etiqueta de forma consistente con la relación “ocurre antes”: Si a ∈ Ci y b ∈ Cj.2 Sincronización de relojes El algoritmo de Lamport 1. entonces Si a → b. Cada proceso Pi tiene un reloj lógico propio Ci 2. Ci no mide el tiempo real en que ocurren los eventos de Pi. entonces Ci(a) ≤ Cj(b) Se dice que C(a) es la etiqueta temporal (time-stamp) de a Ingeniería Informática. CQ ≡ max(CQ. t) antes de etiquetar el evento de recepción Ingeniería Informática. este lleva un valor t ≡ CP b) Cuando m es recibido por Q. Tema 3: La sincronización en los sistemas distribuidos 12 . a) Cuando P envía un mensaje m.2 Sincronización de relojes El reloj lógico de Lamport Define la construcción de un reloj lógico para los eventos de un sistema distribuido: 1.3. este se etiqueta: C(a) := CP 2. Sistemas Operativos Distribuidos. 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. 2 Sincronización de relojes El reloj lógico de Lamport El reloj definido por el reloj físico no es un reloj lógico Ingeniería Informática.3. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 13 . 2 Sincronización de relojes El reloj lógico de Lamport Reloj lógico derivado del del físico mediante el algoritmo de Lamport Ingeniería Informática.3. Tema 3: La sincronización en los sistemas distribuidos 14 . Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 15 .2 Sincronización de relojes Relojes lógicos totalmente ordenados 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 Ingeniería Informática. Sistemas Operativos Distribuidos.3. 2 Sincronización de relojes Relojes físicos Tiempo solar 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) Ingeniería Informática. Tema 3: La sincronización en los sistemas distribuidos 16 . Sistemas Operativos Distribuidos.3. Tema 3: La sincronización en los sistemas distribuidos • 17 .2 Sincronización de relojes Relojes físicos Tiempo solar medio • El día solar sufre variaciones de hasta 15 minutos. El movimiento desigual causado por la órbita elíptica Ingeniería Informática. Sistemas Operativos Distribuidos. La inclinación del eje de rotación respecto al plano de traslación alrededor del sol 2.3. La figura muestra esta variación a lo largo del año Este fenómeno se debe a: 1. 3. Tema 3: La sincronización en los sistemas distribuidos 18 .2 Sincronización de relojes Relojes físicos Tiempo solar medio Además: • 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. se midieron las duraciones de muchos días y se tomó la media. 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 Para solucionar todos estos problemas. Sistemas Operativos Distribuidos. ¿Eran los años más largos? No. que se conoce como el día solar medio Ingeniería Informática. Tema 3: La sincronización en los sistemas distribuidos 19 . Sistemas Operativos Distribuidos.2 Sincronización de relojes Relojes físicos Tiempo solar medio • La gráfica se conoce realmente como la “ecuación del tiempo” • Mide la diferencia entre el día solar y el día solar medio Ingeniería Informática.3. Tema 3: La sincronización en los sistemas distribuidos 20 .1921631. Esta medida del tiempo se conoce como Tiempo Atómico Internacional (TAI) y se adopta oficialmente en 1967 Ingeniería Informática. Sistemas Operativos Distribuidos. Los físicos toman el relevo a los astrónomos en la medida del tiempo • Segundo atómico Es el tiempo que el isótopo Cesio 133 tarda en realizar 9.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ño El segundo atómico se confecciona como la la media de ticks proporcionados por 150 relojes atómicos situados en 30 países desde el 1 de enero de 1958.1921631.770 transiciones • El valor 9.2 Sincronización de relojes Relojes físicos Tiempo atómico Internacional El reloj atómico se inventa en 1948.3. pero ocuando la diferencia con el tiempo solar supera los 800 ms. porque no se conoce la representación de una fecha futura. 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).2 Sincronización de relojes Relojes físicos Tiempo Universal Coordinado (UTC) • Como la tierra gira cada vez más despacio. Sistemas Operativos Distribuidos. que pasa a tener 61 segundos UTC presenta problemas para los computadores. Tema 3: La sincronización en los sistemas distribuidos 21 . que empieza el 1 de enero de 1970 • UTC corre a la tasa TAI. se añade o se resta un segundo • Las correcciones se hacen en el último minuto de junio y de diciembre. Ingeniería Informática.3. 3.2 Sincronización de relojes Relojes físicos Tiempo Universal Coordinado (UTC) Reloj UTC durante el segundo intercalar Ingeniería Informática. Tema 3: La sincronización en los sistemas distribuidos 22 . Sistemas Operativos Distribuidos. • El intervalo entre el 31 de diciembre de 1998 y el 31 de diciembre de 2005. Ingeniería Informática. el IERS dio instrucciones de insertar un segundo intercalar en 22 ocasiones. se insertaban segundos intercalares más o menos cada 18 meses. Sistemas Operativos Distribuidos. • Sin embargo.3. es el mayor periodo sin inserciones de segundos intercalares desde que se instauró el sistema.2 Sincronización de relojes Relojes físicos Tiempo Universal Coordinado (UTC) • Históricamente. Tema 3: La sincronización en los sistemas distribuidos 23 . la velocidad de rotación de la Tierra es impredecible a largo plazo. • Entre enero de 1972 y diciembre de 1998. por lo que no es posible predecir su necesidad con más de seis meses de adelanto. 2 Sincronización de relojes Relojes físicos Tiempo Universal Coordinado (UTC) • El NIST (National Institute for Standards and Technology) proporciona el UTC mediante ondas de radio. Sistemas Operativos Distribuidos.nist.3. teléfono e Internet http://tf.gov/timefreq/index.html Ingeniería Informática. Tema 3: La sincronización en los sistemas distribuidos 24 . gov/timefreq/index.html • Su estación de radio (denominada WWV) difunde el tiempo UTC cada segundo Ingeniería Informática. teléfono e Internet http://tf.nist.3.2 Sincronización de relojes Relojes físicos Tiempo Universal Coordinado (UTC) • El NIST (National Institute for Standards and Technology) proporciona el UTC mediante ondas de radio. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 25 . 2 Sincronización de relojes Relojes físicos Tiempo Universal Coordinado (UTC) Un reloj controlado por radio tiene una radio en su interior que recibe una señal de una estación de radio que dispone de un reloj atómico Ingeniería Informática.3. Tema 3: La sincronización en los sistemas distribuidos 26 . Sistemas Operativos Distribuidos. Sistemas Operativos Distribuidos.2 Sincronización de relojes Algoritmos de Sincronización • Necesarios cuando no hay acceso a una estación WWV Ingeniería Informática. Tema 3: La sincronización en los sistemas distribuidos 27 .3. Sistemas Operativos Distribuidos.3. Tema 3: La sincronización en los sistemas distribuidos 28 .2 Sincronización de relojes Algoritmos 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. 3. Tema 3: La sincronización en los sistemas distribuidos 29 . este temporizador genera 215. realmente.000 ticks en una hora • En la práctica el error es del 10-5 • Así.998 ticks/hora • Es decir.2 Sincronización de relojes Algoritmos de Sincronización • Un temporizador que interrumpa H = 60 veces por segundo genera 60x60x60 = 216. si existe una constante ρ tal que dC 1− ρ ≤ ≤1+ ρ dt 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 Ingeniería Informática. Sistemas Operativos Distribuidos. Sistemas Operativos Distribuidos. en un tiempo Δt tras ser sincronizados.3. la diferencia entre ambos es 2ρΔt Ingeniería Informática.2 Sincronización de relojes Algoritmos de Sincronización • Si dos relojes derivan en dirección opuesta. Tema 3: La sincronización en los sistemas distribuidos 30 . Tema 3: La sincronización en los sistemas distribuidos 31 .3.2 Sincronización de relojes Algoritmos 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 • Los algoritmos de sincronización de relojes difieren en cómo se hace esta sincronización Ingeniería Informática. Sistemas Operativos Distribuidos. 3. Tema 3: La sincronización en los sistemas distribuidos 32 .2 Sincronización de relojes Algoritmos de Sincronización El algoritmo de Cristian (1989) • 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 Ingeniería Informática. Sistemas Operativos Distribuidos. 3.2 Sincronización de relojes Algoritmos de Sincronización El algoritmo de Cristian Ingeniería Informática. Tema 3: La sincronización en los sistemas distribuidos 33 . Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 34 .2 Sincronización de relojes Algoritmos de Sincronización El algoritmo de Cristian • El algoritmos de cristian tiene dos problemas: 1. 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 Ingeniería Informática. Eso afectaría a programas como make Ocurriría si el cliente es rápido. Sistemas Operativos Distribuidos. Problema grande: Un reloj nunca se puede atrasar.3. Tema 3: La sincronización en los sistemas distribuidos 35 . • (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 Ingeniería Informática. (T1-T0) será bastante exacto siempre. Problema pequeño: • El tiempo que emplea la réplica en llegar. • Cristian intentó medirlo.2 Sincronización de relojes Algoritmos de Sincronización El algoritmo de Cristian • El algoritmos de cristian tiene dos problemas: 2. Puede ser grande y variable. Sistemas Operativos Distribuidos.3. 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. Problema pequeño: • Si se conoce el tiempo de servicio. Sistemas Operativos Distribuidos.3. Tema 3: La sincronización en los sistemas distribuidos 36 . Otra es usar sólo la réplica más rápida Ingeniería Informática.2 Sincronización de relojes Algoritmos de Sincronización El algoritmo de Cristian 2. 2 Sincronización de relojes Algoritmos 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 clientes Halla una media que radia a todos los clientes Ingeniería Informática.3. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 37 . establece su tiempo como la media de las difusiones que recibe durante un intervalo S • Frente a los anteriores. este algoritmo no tiene un único punto de fallo Ingeniería Informática.2 Sincronización de relojes Algoritmos 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.3. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 38 . Sistemas Operativos Distribuidos.2 Sincronización de relojes Uso 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. Tema 3: La sincronización en los sistemas distribuidos 39 .3. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 40 . el permiso 6 no llegará: ¿Es una máquina lenta o es que se ha caído? Ingeniería Informática.2 Sincronización de relojes Uso de la Sincronización: Coherencia de caché 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.3. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 41 .3. • Con los relojes sincronizados. Ingeniería Informática. el fichero en caché se invalida. No es necesario comunicarlo al sevidor. • Si el plazo está próximo a expirar. el plazo vence al mismo tiempo en cliente y servidor.2 Sincronización de relojes Uso de la Sincronización: Coherencia de caché • El servidor proporciona el fichero con un derecho o concesión temporal (plazo). el cliente solicita la renovación • Si el plazo expira. sino la del plazo de concesión. Tema 3: La sincronización en los sistemas distribuidos 42 .2 Sincronización de relojes Uso de la Sincronización: Coherencia de caché • Si se cae un cliente con una concesión de lectura.3. que seguramente ya se habrá producido. Ingeniería Informática. no es necesario que el servidor espere la expiración del plazo de caída. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 43 .3.3 Exclusión mutua Un 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. Sistemas Operativos Distribuidos.3 Exclusión mutua Un algoritmo centralizado Este algoritmo garantiza la exclusión mutua porque: 1. Ningún proceso espera indefinidamente Ventajas: Es fácil de implementar Inconvenientes: Tiene un único punto de fallo (centralizado) Ingeniería Informática. El coordinador sólo permite la entrada de un proceso 2.3. Es justo: las peticiones se atienden por orden de llegada 3. Tema 3: La sincronización en los sistemas distribuidos 44 . . multicasting. . Sistemas Operativos Distribuidos.3. que lleva el valor del reloj lógico local correspondiente al envío • Espera n-1 réplicas Ingeniería Informática.3 Exclusión mutua El algoritmo distribuido de Ricart y Agrawala (1981) 1. Tema 3: La sincronización en los sistemas distribuidos 45 .. 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. C.3. se le envía la réplica de concesión Si gana el receptor.3 Exclusión mutua El algoritmo distribuido de Ricart y Agrawala (1981) 2. 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. Cuando recibe un mensaje de solicitud de entrada en R. compara el reloj del mensaje entrante con el de su mensaje de solicitud al resto ⇒ El más bajo gana: Si gana el emisor.C. Sistemas Operativos Distribuidos. (estado OTORGADO).C: • Si el receptor no está en R. pero desea entrar (estado SOLICITANDO). envía un mensaje de réplica al proceso que solicitó el permiso • Si el receptor sí está en R. encola el mensaje y no envía réplica Ingeniería Informática. Tema 3: La sincronización en los sistemas distribuidos 46 .C. y no desea entrar en ella (estado CONCEDIDO). Sistemas Operativos Distribuidos. Cuando un proceso abandona la región crítica.3. 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): Ingeniería Informática. Tema 3: La sincronización en los sistemas distribuidos 47 .3 Exclusión mutua El algoritmo distribuido de Ricart y Agrawala (1981) 3. 3 Exclusión mutua Comparación de algoritmos de exclusión mutua Ricart y Agrawala Mensajes necesarios para obtener el permiso Centralizado 2 Centralizado 1 2(n-1) mensajes Ricart y Agrawala Puntos de fallo n-1 • En conjunto. Estimula el estudio de soluciones distribuidas más avanzadas Ingeniería Informática. Demuestra que es posible un algoritmo distribuido de RC 2. Tema 3: La sincronización en los sistemas distribuidos 48 . más complicado y menos robusto. el algoritmo de Ricart y Agrawala es más lento. • ¿Por qué molestarse en estudiarlo? 1. Sistemas Operativos Distribuidos.3. 3. • Se concede la entrada a la Región Crítica al proceso P que obtiene el testigo • 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. Sistemas Operativos Distribuidos.3 Exclusión mutua Un algoritmo en anillo • Los procesos están organizados en un anillo lógico por el que circula un testigo. Tema 3: La sincronización en los sistemas distribuidos 49 . espera bloqueado la llegada del testigo Ingeniería Informática. Recuperación de fallo: Cada vez que se envía el testigo se inicia un temporizador y se espera una réplica. Tema 3: La sincronización en los sistemas distribuidos 50 .3 Exclusión mutua Un algoritmo en anillo Ricart y Agrawala Mensajes necesarios para obtener el permiso Puntos de fallo 2(n-1) n-1 Centralizado Anillo 2 1 n-1 n-1 1. Inconveniente: Los mensajes se envían continuamente. Se retira el proceso que falla del anillo lógico 2.3. aunque no sea necesario Ingeniería Informática. Sistemas Operativos Distribuidos. • Cada proceso tiene un identificador único como puede ser su dirección de red. • En general.3. centralizar peticiones de entrada en una región crítica. los algoritmos de elección intentan localizar al proceso con el identificador más alto para hacerlo coordinador Ingeniería Informática. sin que ninguno de ellos tenga una característica destacable como para ser el coordinador idóneo. Tema 3: La sincronización en los sistemas distribuidos 51 . Sistemas Operativos Distribuidos.4 Algoritmos de elección • 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. a modo de coordinador. • Vamos a considerar que los procesos implicados en la elección son idénticos. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 52 .3. los procesos necesitan conocer las direcciones de red de todo el grupo de procesos en busca de coordinador.4 Algoritmos de elección • Para enviar los mensajes. • El problema es que los procesos desconocen cuáles de ellos están aún activos y cuáles no. Ingeniería Informática. • El requisito que debe cumplir una elección de coordinador es que esta sea única. de modo que la elección ya estaría hecha de antemano. • Los algoritmos difieren unos de otros en el modo de conseguirlo. P envía un mensaje de tipo ELECCION a todos los procesos con identificadores más altos.3. convocan una elección 53 Ingeniería Informática.4 Algoritmos de elección El algoritmo del matón • Este algoritmo data de 1982 y es debido a García-Molina. Sistemas Operativos Distribuidos. renuncia a ser el coordinador y su trabajo ha terminado. tras enviar el mensaje. P gana la elección y se convierte en el coordinador. 3. 2. inicia una convocatoria de elección • Una elección se desarrolla como sigue: 1. Tema 3: La sincronización en los sistemas distribuidos . • Cuando un proceso se apercibe de que el coordinador no responde a sus mensajes. En cuanto P recibe el mensaje de respuesta de alguno de ellos. Si ninguno de ellos responde. Cada uno de estos procesos. Ingeniería Informática. ganará la elección y asumirá el papel de coordinador. Sistemas Operativos Distribuidos.4 Algoritmos de elección El algoritmo del matón • En cualquier momento. • Siempre gana el proceso de identificador más grande. • La rutina que sirve el mensaje envía un mensaje de confirmación y toma el control iniciando una elección. inicia una elección. Tema 3: La sincronización en los sistemas distribuidos 54 . • Llega un momento en que todos los procesos renuncian y uno de ellos se convierte en el nuevo coordinador. • Si un proceso que inicialmente estaba caído se recupera. un proceso puede recibir un mensaje ELECCION de uno de los procesos con identificador inferior. Si es el de identificador más alto. de ahí el nombre del algoritmo.3. a menos que ya esté celebrando una. hecho que anuncia al resto mediante el envío de un mensaje. 4 Algoritmos de elección El algoritmo del matón Ingeniería Informática. Tema 3: La sincronización en los sistemas distribuidos 55 . Sistemas Operativos Distribuidos.3. Tema 3: La sincronización en los sistemas distribuidos 56 .4 Algoritmos de elección El algoritmo en anillo • 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 Ingeniería Informática. Sistemas Operativos Distribuidos.3. Sistemas Operativos Distribuidos. Tema 3: La sincronización en los sistemas distribuidos 57 .3. sustituye el identificador y envía mensaje al vecino.4 Algoritmos de elección El algoritmo en anillo • Inicialmente todos los procesos son no-participantes • Cualquiera puede empezar una elección: Se marca como participante Enví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. se marca como no-participante y envía al vecino el mensaje ELEGIDO con su identificiador Ingeniería Informática. no envía nada c) Si es igual. reenvía el mensaje al vecino b) Si es menor: Si es no-participante. Si es participante. 3.4 Algoritmos de elección El algoritmo en anillo • Cuando un proceso recibe un mensaje de ELEGIDO Se marca como no-participante Enví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 Ingeniería Informática. Tema 3: La sincronización en los sistemas distribuidos 58 . Sistemas Operativos Distribuidos. 3. Tema 3: La sincronización en los sistemas distribuidos 59 .4 Algoritmos de elección El algoritmo en anillo Ingeniería Informática. Sistemas Operativos Distribuidos.
Copyright © 2024 DOKUMEN.SITE Inc.