introducción a la sincronización en sistemas distribuidos

Download Introducción a La Sincronización en Sistemas Distribuidos

If you can't read please download the document

Upload: una-nueva-vida-en-nph

Post on 25-Sep-2015

218 views

Category:

Documents


0 download

DESCRIPTION

ALGO BASICO

TRANSCRIPT

Introduccin a la Sincronizacin en Sistemas Distribuidos

En sistemas con una nica CPU las regiones crticas, la exclusin mutua y otros problemas de sincronizacin son resueltos generalmente utilizando mtodos como semforos y monitores.Estos mtodos no se ajustan para ser usados en sistemas distribuidos ya que invariablemente se basan en la existencia de una memoria compartida.Tipos

Sincronizacin de relojesAlgoritmos para la Sincronizacin de RelojesAlgoritmo de CristianAlgoritmo de BerkeleyRelojes fijosExclusin MutuaAlgoritmos no basados en paso de mensajesBloqueos en Sistemas DistribuidosSincronizacin de RelojesUn sistema distribuido debe permitir el apropiado uso de los recursos, debe encargarse de un buen desempeo y de la consistencia de los datos, adems de mantener seguras todas estas operaciones La sincronizacin de procesos en los sistemas distribuidos resulta ms compleja que en los centralizados, debido a que la informacin y el procesamiento se mantienen en diferentes nodos. Un sistema distribuido debe mantener vistas parciales y consistentes de todos los procesos cooperativos y de cmputo. Tales vistas pueden ser provistas por los mecanismos de sincronizacin. El trmino sincronizacin se define como la forma de forzar un orden parcial o total en cualquier conjunto de eventos, y es usado para hacer referencia a tres problemas distintos pero relacionados entre s:1. La sincronizacin entre el emisor y el receptor.2. La especificacin y control de la actividad comn entre procesos cooperativos.3. La serializacin de accesos concurrentes a objetos compartidos por mltiples procesos. Haciendo referencia a los mtodos utilizados en un sistema centralizado, el cual hace uso de semforos y monitores; en un sistema distribuido se utilizan algoritmos distribuidos para sincronizar el trabajo comn entre los procesos y estos algoritmos

La informacin relevante se distribuye entre varias mquinas.Los procesos toman las decisiones solo con base en la informacin disponible en forma local.Debe evitarse un nico punto de fallo en el sistema.No existe unreloj comno alguna otrafuente precisa del tiempo global.Los primeros tres puntos indican que es inaceptable reunir toda la informacin en un solo lugar para su procesamiento, perolograr la sincronizacin sin centralizacinrequiere hacer las cosas distintasal caso de los sistemas operativos tradicionales.El ltimo punto tambin es crucial:En un sistema centralizado el tiempo no es ambiguo.En un sistema distribuido no es trivial poner de acuerdo a todas las mquinas en la hora.Se requiere unacuerdo global en el tiempo, pues la falta de sincronizacin en los relojes puede ser drstica en procesos dependientes del tiempo.La pregunta es si es posible sincronizartodoslos relojes en un sistema distribuido.

Algoritmos Para la Sincronizacin de RelojesLa sincronizacin de relojes en un sistema distribuido consiste en garantizar que los procesos se ejecuten en forma cronolgica y a la misma vez respetar el orden de los eventos dentro del sistema. Para lograr esto existen varios mtodos o algoritmos que se programan dentro del sistema operativo, entre los cuales tenemos:Algoritmo de CristianEste algoritmo est basado en el uso del tiempo coordenado universal (siglas en ingls, UTC), el cual es recibido por un equipo dentro del sistema distribuido. Este equipo, denominado receptor de UTC, recibe a su vez solicitudes peridicas del tiempo del resto de mquinas del sistema a cada uno de los cuales les enva una respuesta en el menor plazo posible informando el tiempo UTC solicitado, con lo cual todas las mquinas del sistema actualicen su hora y se mantenga as sincronizado todo el sistema. El receptor de UTC recibe el tiempo a travs de diversos medios disponibles, entre los cuales se menciona las ondas de radio, Internet, entre otros. Un gran problema en este algoritmo es que el tiempo no puede correr hacia atrs:El tiempo del receptor UTC no puede ser menor que el tiempo de la mquina que le solicit el tiempo.El servidor de UTC debe procesar las solicitudes de tiempo con el concepto de interrupciones, lo cual incide en el tiempo de atencin.El intervalo de transmisin de la solicitud y su respuesta debe ser tomado en cuenta para la sincronizacin. El tiempo de propagacin se suma al tiempo del servidor para sincronizar al emisor cuando ste recibe la respuesta.Para corregir el error se mide el tiempo que tarda en recibir la respuesta, desde que se enva el mensaje de peticin A. El tiempo se conoce como tiempo de viaje (T-Viaje). El tiempo estimado de programacin, en ausencias de otra informacin, ser T-Viaje/ 2

Por lo que el cliente sincroniza su reloj a T-UTC + T-Viaje/2.

Algoritmo de Berkeley

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 sincronizacin del tiempo en el sistema, tambin existe un servidor de tiempo que, a diferencia del algoritmo de Cristian, se comporta de manera activa. Este servidor realiza un muestreo peridico del tiempo que poseen algunas de las mquinas del sistema, con lo cual calcula un tiempo promedio, el cual es enviado a todas las mquinas del sistema a fin de sincronizarlo.

El demonio del tiempo enva un mensaje con su hora actual a todas las mquinas del sistema, incluyendo su misma mquina.

Las mquinas responden enviando la diferencia de su reloj con la hora recibida.

El demonio del calcula un tiempo promedio y le indica a todas las dems mquinas que avancen su reloj a la nueva hora o que disminuyan la velocidad del mismo hasta lograr cierta reduccin especfica.

En elalgoritmo de Cristianel servidor de tiempo espasivo.En elalgoritmo de Berkeleyel servidor de tiempo:Esactivo.Realiza un muestreo peridico de todas las mquinas para preguntarles el tiempo.Con las respuestas:Calcula un tiempo promedio.Indica a las dems mquinas que avancen su reloj o disminuyan la velocidad del mismohasta lograr la disminucin requerida.

Algoritmo de Lamport:Lamport defini una relacin llamada ocurre antes de. La expresin A -> B se lee: Aocurre antes de B. La relacin "ocurre antes de" cumple con las siguientes propiedades:

Si A y B son eventos en el mismo proceso y A ocurre antes de B, entonces A -> B es verdadero.

Si A -> B y B -> C, entonces A -> C.

Si dos eventos X e Y estn en procesos diferentes que no intercambian mensajes, entonces X > Y no es verdadero, pero tampoco lo es Y > X. Se dice que son eventos concurrentes.

Si A es el evento del envi de un mensaje por un proceso y B es el evento de la recepcin del mensaje por otro, entonces A -> B tambin es verdadero. Un mensaje no se puede recibir antes de ser enviado o al mismo tiempo en que se enva, puesto quetarda en llegar una cantidad finita de tiempo.

Relojes Fsicos

La idea es proveer de un nico bloque de tiempo para el sistema. Los procesos pueden usar la marca fsica del tiempo provista o leda de un reloj central para expresar algn 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 fsico; los errores de transmisin se convierten en un impedimento para el orden deseado, el grado de exactitud depende de las constantes puestas en el sistema.

Los valores de tiempo asignados a los eventos no tienen por qu ser cercanos a los tiempos reales en los que ocurren.En ciertos sistemas es importante la hora real del reloj:Se precisan relojes fsicos externos (ms de uno).Se deben sincronizar:Con los relojes del mundo real.Entre s