23
Sincronización en Sistemas Distribuidos: En un Sistema Distribuido, los procesos: Cooperan. Se sincronizan entre sí. En sistemas de una sola CPU, se utilizan métodos como semáforos, monitores: Se basan en memoria compartida. No son aplicables a Sistemas Distribuidos. “Para sincronizar Sistemas Distribuidos es de gran importancia el tiempo y la forma de medirlo.”

Unidad III

Embed Size (px)

Citation preview

Page 1: Unidad III

Sincronización en Sistemas Distribuidos:

En un Sistema Distribuido, los procesos:Cooperan.Se sincronizan entre sí.

En sistemas de una sola CPU, se utilizan métodos como semáforos, monitores:

Se basan en memoria compartida.No son aplicables a Sistemas Distribuidos.

“Para sincronizar Sistemas Distribuidos es de gran importancia el tiempo y la forma de medirlo.”

Page 2: Unidad III

Sincronización de Relojes:

Los algoritmos distribuidos tienen las siguientes propiedades:

• La información relevante se distribuye entre varias máquinas.• Los procesos toman las decisiones solo con base en la información disponible en forma local.• Debe evitarse un único punto de fallo del sistema.• No existe un reloj común o alguna otra fuente precisa del tiempo global.

Es inaceptable reunir toda la información en un solo lugar para su procesamiento, pero lograr la sincronización sin centralización requiere hacer cosas distintas que en sistemas tradicionales.

“En un Sistema Distribuido no es trivial poner de acuerdo a todas las máquinas en la hora”

Page 3: Unidad III

Reloj Lógico:

Las computadoras poseen un circuito para el registro del tiempo conocido como dispositivo reloj.

• Es un cronómetro que genera una interrupción “x” veces por segundo.• En una computadora no interesan los desfasajes del reloj.• En varias computadoras, es imposible garantizar que los relojes tengan la misma frecuencia.•Algoritmo de Lamport.

Page 4: Unidad III

Algoritmo de Lamport:

Si dos procesos no interactúan, no es necesario que estén sincronizados.Lo importante no es que los procesos estén de acuerdo en la hora, sino en el orden en que ocurren los eventos.

Si a y b son eventos del mismo proceso, a→b (a ocurre ántes de b) entonces a→bSi “a→b” y “b→c”, entonces “a→c”

Si dos eventos “x” e “y” están en procesos diferentes que no intercambian mensajes, entonces “x→y” no es verdadero, pero tampoco lo es “y→x”. Son eventos concurrentes.

Si “a→b” entonces “C(a) < C(b)”.

El tiempo del reloj, “C”, siempre debe ir hacia adelante (creciente), y nuncahacia atrás (decreciente).

Page 5: Unidad III

Algoritmo de Lamport:

El algoritmo de Lamport asigna tiempos a los eventos.Ejemplo:

• El proceso “0” envía el mensaje “a” al proceso “1” cuando el reloj de “0” marca “6”.• El proceso “1” recibe el mensaje “a” cuando su reloj marca “16”.• Si el mensaje acarrea el tiempo de inicio “6”, el proceso “1” considerará que tardó 10 marcas de reloj en viajar.• El mensaje “b” de “1” a “2” tarda 16 marcas de reloj.• El mensaje “c” de “2” a “1” sale en “60” y llega en “56”, tardaría un tiempo negativo, lo cual es imposible.• El mensaje “d” de “1” a “0” sale en “64” y llega en “54”.Lamport utiliza la relación “ocurre antes de”:

• Si “c” sale en “60” debe llegar en “61” o en un tiempo posterior.• Cada mensaje acarrea el tiempo de envío, de acuerdo con el reloj del emisor.• Cuando un mensaje llega y el reloj del receptor muestra un valor anterior al tiempo en que se envió el mensaje:El receptor adelanta su reloj para que tenga una unidad más que el tiempo de envío.

Page 6: Unidad III

Ejemplo: 3 procesos cuyos relojes corren a diferentes velocidades:El algoritmo de Lamport corrige los relojes.

Page 7: Unidad III

Relojes Físicos:

En ciertos sistemas, es importante la hora real del reloj.

Se necesitan entonces, relojes físicos externos:Se deben sincronizar:

• Con relojes externos• Entre si

La medición del tiempo real con precisión no es sencilla.

Los físicos definieron al segundo como el tiempo que tarda el átomo de cesio 133 para hacer 9.192.631.770 transiciones:

Se tomó este número para que el segundo atómico coincida con el segundo solar promedio de 1958.

Page 8: Unidad III

Relojes Físicos:

Algoritmos de Sincronización:

Algoritmo de Cristian ( 1989 ): Orientado a Servidor ( Servidor de Tiempo ). El objetivo es que las máquinas se sincronicen con ella.

Problemas

•Si el reloj del emisor es rápido, el valor de H será menor que el emisor. El tiempo nunca debe correr para atrás.•El tiempo que tarda en responder el emisor es distinto a cero. Deben contemplarse los retrasos y varía según la carga en la red.

Esto se resuelve de dos maneras: promediando los tiempos de retraso, o considerando el menor de los tiempos.

Page 9: Unidad III

Relojes Físicos:

Algoritmos de Sincronización:

Algoritmo de Berkeley ( Gusella y Zatti, 1989 ):

El servidor de tiempo es activo y realiza un muestreo periodico de las máquinas, calcula el promedio y solicita avanzar o atrasar el reloj de las mismas.

Page 10: Unidad III

Relojes Físicos:

Algoritmos de Sincronización:

Algoritmos con promedio: Los dos métodos anteriores son muy centralizados, con sus usuales desventajas. Una clase de algoritmos descentralizados trabaja al dividir el tiempo en intervalos de resincronización de longitud fija.

Después de que una máquina transmite su hora, inicia un cronómetro local para reunir las demás trasmisiones que lleguen en cierto intervalo S. Cuando llegan todas las transmisiones, se ejecuta un algoritmo para calcular la nueva hora para ellos.

Otra forma de sincronizar relojes, es mediante varias fuentes externas de tiempo.

Page 11: Unidad III

Exclusión mutua:

Cuando un proceso debe leer o actualizar ciertas estructuras de datos compartidas, primero entra a una región crítica para lograr la exclusión mutua y garantizar que ningún otro proceso utilice las estructuras de datos al mismo tiempo.

Algoritmo centralizado:

Se elige un proceso coordinador.El proceso que desea entrar a una región crítica, envía una solicitud al coordinadorSi ningún otro proceso está en esa región crítica, el coordinador le concede permiso.

Page 12: Unidad III

Exclusión mutua:

Algoritmo centralizado:

Si un proceso 2 pide permiso, el coordinador no puede concederle permiso. El método de negación de permiso depende del sistema:

•El coordinador solo se abstiene de responder, con lo cual se bloquea el proceso 2 en espera de una respuesta. O..•Se envía una respuesta tipo “permiso negado”.

En ambos casos, la solicitud queda en la fila.

Cuando el proceso 1 libera, el coordinador da permiso al siguiente de la fila (2 ).

Se requieren tres mensajes: solicitud, otorgamiento, liberación.

Page 13: Unidad III

Exclusión mutua:

Algoritmo distribuido:

El hecho de tener un punto de falla es inaceptable. El algoritmo de Lamport ( 1978 ) fue mejorado por Ricart y Agrawala ( 1981 ).

El algoritmo de R&A requiere de la existencia de un orden de todos los eventos en el sistema. Entre dos eventos, debe quedar en claro cuál de ellos ocurrió primero.

• Cuando un proceso desea entrar a una región crítica, construye un mensaje con el nombre de ésta, número de proceso y hora actual.• Se envía el mensaje a todos. Se supone que el envío es confiable: cada mensaje tiene un reconocimiento.

Page 14: Unidad III

Exclusión mutua:

Algoritmo distribuido:

Page 15: Unidad III

Exclusión mutua:

Algoritmo de anillo de fichas:

Page 16: Unidad III

Exclusión mutua:

Algoritmos elección:

Muchos algoritmos distribuidos necesitan que un proceso actúe como coordinador, iniciador, secuenciador.. No importa cual de los procesos asuma esa responsabilidad, pero uno debe hacerlo. Para seleccionar al coordinador, existen varios algoritmos:

El algoritmo del grandulón: • P envía un mensaje ELECCION a los demás procesos con un número mayor.• Si nadie responde, P gana la elección y se convierte en coordinador.• Si un proceso con un número mayor responde, se convierte en coordinador.

El algoritmo de anillo:• Cuando un proceso observa que el coordinador no funciona, construye un mensaje ELECCION con su propio número de proceso y envía a su sucesor. Si éste está inactivo, el emisor pasa sobre el sucesor y va hacia el siguiente del anillo o al siguiente de éste..

Page 17: Unidad III

Transacciones Atómicas:

En una transacción se realizan varias operaciones. Todas deben realizarse adecuadamente. Si una falla, todo vuelve a su estado anterior ( objetos, archivos, bases de datos, etc. ). Es la propiedad del todo o nada. Ejemplo:

El ciudadano A transfiere un monto al ciudadano B, se realizan por tanto dos operaciones:

• Retiro (cantidad, cuenta1 );• Depósito ( cantidad, cuenta2 );

Page 18: Unidad III

Transacciones Atómicas:

Categorías de almacenamiento:

• Almacenamiento volátil: memoria RAM.• Almacenamiento en Disco.• Almacenamiento estable.

Page 19: Unidad III

Transacciones Atómicas:

Primitivas de transacción:

BEGIN_TRANSACTION;END_TRANSACTION;ABORT_TRANSACTION;-------------------------------------------------------------------------------------------------------BEGIN_TRANSACTION;

reservar ASU-CAA;reservar CAA-CDE;

END_TRANSACTION;-------------------------------------------------------------------------------------------------------BEGIN_TRANSACTION;

reservar ASU-CAA;reservar CAA-YGU :full -> ABORT_TRANSACTION;reservar YGU-CDE;

END_TRANSACTION;

Page 20: Unidad III

Transacciones Atómicas:

Propiedades:

• Atómicas ( Atomic );• Consistentes ( Consistent );• Aisladas ( Isolated );• Durables ( Durable );

Page 21: Unidad III

Bloqueos:

Son similares a los de un sistema de un procesador, solo que más difíciles de evitar, prevenir e incluso detectar, y difíciles de solucionar.

Estrategias para manejo de bloqueos:

• Algoritmo de avestruz ( ignorar el problema ),• Detección ( permitir que ocurran, detectarlos e intentar recuperarse de ellos ).• Prevención ( lograr estáticamente que los bloqueos sean imposibles desde el punto de vista estructural ).• Evitarlos ( evitar mediante asignación cuidadosa de recursos ).

Se analizan a continuación técnicas de detección y prevención.

Page 22: Unidad III

Bloqueos:

Detección centralizada de bloqueo:

Cada máquina mantiene la gráfica de sus propios procesos y recursos, un coordinador central mantiene la gráfica de recursos de todo el sistema ( la unión de todas las gráficas individuales ). Cuando el coordinador detecta un ciclo, elimina uno de los procesos para romper el bloqueo.

Uno de los problemas se denomina falso bloqueo, cuando el coordinador produce este tipo de bloqueo por información incompleta o con retraso.

Detección distribuida de bloqueos:

Se permite que los procesos soliciten varios recursos, en vez de uno. Al permitir solicitudes simultáneas de varios procesos, la fase de crecimiento de una transacción se puede realizar más rápido.

Page 23: Unidad III

Bloqueos:

Detección distribuida de bloqueos:

El algoritmo CMH se utiliza cuando un proceso debe esperar cierto recurso: el proceso 0 se bloquea debido al proceso 1. En ese momento se genera un mensaje especial de exploración, el cual se envía al proceso ( o procesos ) que detienen los recursos necesarios.

El bloqueo se rompe de varias formas. Una forma es que el proceso que inició la exploración se comprometa a “suicidarse”. Este método tiene problemas si varios procesos llaman en forma simultánea al algoritmo.

Prevención distribuida de bloqueos:

Consiste en el diseño cuidadoso del sistema, de modo que los bloqueos sean imposibles, desde el punto de vista estructural.