Sincronizacion Sistemas Distribuidos

12
Sincronización en sistemas distribuidos. Sincronización de relojes. Algoritmos para la sincronización de relojes (Cristian y Berkeley) Reloj Físico. Sincronización de relojes físicos. La Exclusión mutua y sus requisitos. Algoritmo de Lamport. Bloqueos en sistemas distribuidos Sincronización en Sistemas Distribuidos Fuentes: http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/ SO9.htm http://ais-sistemasdistribuidos.blogspot.com/p/tema-3.html GRUPO 4

description

Diapositiva simple drespecto a la sincronizacion de relojes en sistemas distribuidos, relojes fisicos, relojes lógicos

Transcript of Sincronizacion Sistemas Distribuidos

Page 1: Sincronizacion Sistemas Distribuidos

Sincronización en sistemas distribuidos.Sincronización de relojes.Algoritmos para la sincronización de relojes (Cristian y Berkeley)

Reloj Físico.Sincronización de relojes físicos.

La Exclusión mutua y sus requisitos.Algoritmo de Lamport.Bloqueos en sistemas distribuidos

Sincronización en Sistemas Distribuidos

Fuentes:

http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO9.htmhttp://ais-sistemasdistribuidos.blogspot.com/p/tema-3.html

GRUPO 4

Page 2: Sincronizacion Sistemas Distribuidos

Sincronización de relojes.

La sincronización de relojes en un sistema distribuido consiste en garantizar que los procesos se ejecuten en forma cronológica y a la misma vez respetar el orden de los eventos dentro del sistema.

Sincronización en Sistemas Distribuidos

Un sistema distribuido debe permitir el apropiado uso de los recursos, debe encargarse de un buen desempeño y de la consistencia de los datos, además de mantener seguras todas estas operaciones.

Page 3: Sincronizacion Sistemas Distribuidos

Algoritmos para la Sincronización de Relojes

Sincronización en Sistemas Distribuidos

Para lograr la sincronización de los eventos en los sistemas distribuidos es necesario la utilización de ciertos métodos o algoritmos que se programan dentro del sistema operativo, entre los cuales tenemos:

Algoritmo de Cristian Algoritmo de Berkeley

Page 4: Sincronizacion Sistemas Distribuidos

Sincronización en Sistemas Distribuidos

Este algoritmo está basado en el uso del tiempo coordenado universal (UTC), el cual es recibido por un equipo dentro del sistema distribuido. Este equipo, denominado receptor de UTC, recibe a su vez solicitudes periódicas del tiempo del resto de máquinas del sistema a cada uno de los cuales les envía una respuesta en el menor plazo posible informando el tiempo UTC solicitado, con lo cual todas las máquinas del sistema actualicen su hora y se mantenga así sincronizado todo el sistema. El receptor de UTC recibe el tiempo a través de diversos medios disponibles, entre los cuales se menciona las ondas de radio, Internet, entre otros.

Algoritmo de Cristian

UTC

Page 5: Sincronizacion Sistemas Distribuidos

Sincronización en Sistemas Distribuidos

Un sistema distribuido basado en el algoritmo de Berkeley no dispone del tiempo coordenado universal (UTC); en lugar de ello, el sistema maneja su propia hora. Para realizar la sincronización del tiempo en el sistema, también existe un servidor de tiempo que a diferencia del algoritmo de Cristian, se comporta de manera activa. Este servidor realiza un muestreo periódico del tiempo que poseen algunas de las máquinas del sistema, con lo cual calcula un tiempo promedio, el cual es enviado a todas las máquinas del sistema a fin de sincronizarlo.

Algoritmo de Berkeley

Hora

Page 6: Sincronizacion Sistemas Distribuidos

Sincronización en Sistemas Distribuidos

La idea es proveer un único bloque de tiempo para el sistema. Los procesos pueden usar la marca física del tiempo provista o leída de un reloj central para expresar algún orden en el conjunto de acciones que inician. La principal ventaja de este mecanismo es la simplicidad, aunque existen varios inconvenientes: el correcto registro del tiempo depende en la posibilidad de recibir correctamente y en todo momento, el tiempo actual desplegado por el reloj físico; los errores de transmisión se convierten en un impedimento para el orden deseado, el grado de exactitud depende de las constantes puestas en el sistema.

Reloj Físico

Page 7: Sincronizacion Sistemas Distribuidos

Sincronización en Sistemas Distribuidos

Para conocer en qué hora del día ocurren los sucesos en los procesos de nuestro sistema distribuido Q, es necesario sincronizar los relojes de los procesos con una fuente de tiempo externa autorizada. Esto es la sincronización externa. Y si los relojes están sincronizados con otro con un grado de precisión conocido, entonces podemos medir el intervalo entre dos eventos que ocurren en diferentes computadores llamando a sus relojes locales, incluso aunque ellos no estén necesariamente sincronizados con una fuente externa de tiempo. Esto es sincronización interna.

Sincronización de Relojes Físicos

Page 8: Sincronizacion Sistemas Distribuidos

Sincronización en Sistemas Distribuidos

La exclusión mutua es la comunicación requerida entre dos o más procesos que se están ejecutando en paralelo y que necesitan a la vez el uso de un recurso no compartible. Consiste en asignar el recurso no compartible a sólo uno de los procesos, mientras que los otros deben permanecer a la espera hasta que finalice la utilización de dicho recurso por el proceso al que se le asignó. Cuando este proceso termine, el recurso será asignado a uno de los procesos en espera. Se asegura el correcto uso del recurso.

Exclusión Mutua

Page 9: Sincronizacion Sistemas Distribuidos

Sincronización en Sistemas Distribuidos

Los recursos no compartibles, ya sean periféricos, ficheros, o datos en memoria, pueden protegerse del acceso simultáneo por parte de varios procesos evitando que éstos ejecuten de forma concurrente sus fragmentos de código a través de los cuales llevan a cabo este acceso. Estos trozos de código reciben el nombre de secciones o regiones críticas, pudiéndose asimilar el concepto de exclusión mutua en el uso de estos recursos a la idea de exclusión mutua en la ejecución de las secciones críticas.

Requisitos para la Exclusión Mutua

Page 10: Sincronizacion Sistemas Distribuidos

Sincronización en Sistemas Distribuidos

La selección de las operaciones primitivas adecuadas para garantizar la exclusión mutua de las secciones críticas es una decisión primordial en el diseño de un sistema operativo. Al menos, una solución apropiada debería cumplir las cuatro condiciones siguientes:

1. Que no haya en ningún momento dos procesos dentro de sus respectivas secciones críticas. 2. Que no hagan suposiciones a priori sobre las velocidades relativas de los procesos o el número de procesadores disponibles. 3. Que ningún proceso que esté fuera de su sección crítica pueda bloquear a otros. 4. Que ningún proceso tenga que esperar un intervalo de tiempo arbitrariamente grande para entrar en su sección crítica.

Requisitos para la Exclusión Mutua

Page 11: Sincronizacion Sistemas Distribuidos

Sincronización en Sistemas Distribuidos

Algoritmo de Lamport. Fue el primer algoritmo propuesto para lograr la exclusión mutua en redes cuyos nodos se comuniquen solamente mediante mensajes y que no compartan memoria. Fue propuesto por Lamport en 1978. El objetivo de la propuesta de Lamport es obtener un algoritmo que cumpla con las siguientes condiciones:

•Un proceso que posee a un recurso, debe liberarlo antes de que sea otorgado a otro proceso.

•Se deben entregar los derechos sobre un recurso en el orden en que se hicieron todas las solicitudes de uso del recurso.

Algoritmos no basados en paso de mensajes

Page 12: Sincronizacion Sistemas Distribuidos

Sincronización en Sistemas Distribuidos

Son peores que los bloqueos en sistemas monoprocesador: Son más difíciles de evitar, prevenir, detectar y solucionar. Toda la información relevante está dispersa en muchas máquinas. Son especialmente críticos en sistemas de bases de datos distribuidos. Una de las estrategias usuales para el manejo de los bloqueos es el algoritmo del avestruz:

-Ignorar el problema. -Detección: Permitir que ocurran los bloqueos, detectarlos e intentar recuperarse de ellos.-Prevención: Hacer que los bloqueos sean imposibles desde el punto de vista estructural.-Evitarlos: Evitar los bloqueos mediante la asignación cuidadosa de los recursos.

Bloqueos en Sistemas Distribuidos