Вы находитесь на странице: 1из 10

Algoritmos de Sincronizacin. La Sincronizacin es el proceso por el cual dos componentes intercambian datos o informacin.

Los datos intercambiados pueden afectar la informacin uno o de ambos componentes. Se dice que esto se hace por medio de protocolos de sincronizacin, donde ambos componentes "conocen" la forma de intercambio de datos. La importancia de la sincronizacin radica en el mantenimiento de la confiabilidad e integridad de la informacin. Entre los protocolos se encuentran los siguientes: Slow sync : En trminos generales cuando se va a sincronizar con este protocolo la pda transfiere todos los datos hacia el PC. y compara uno a uno los registro para ver cual ha sufrido cambios, se ha borrado o ha sido adicionado. Fast sync : Este protocolo de sincronizacin es mucho ms rpido que el anterior y se basa en que slo pasan al servidor los datos que han tenido modificaciones, en otras palabras, los datos que no han sufrido cambios, borrados o adiciones no se sincronizan. Per-To-Per: es otro protocolo de sincronizacin donde todos y cada uno de los dispositivos se sincronizan sin la necesidad de un computador centrar o servidor como ocurre en el caso del protocolo Intellisync anywhere. No esta dems hacer nfasis en que la sincronizacin es un proceso diferente al de transmisin de informacin. No se deben confundir estos trminos por muy similares que parezcan. El lector puede buscar informacin de este tema por el nombre de Conduit. Sincronizacin en los sistemas distribuidos. Algoritmos para la Sincronizacin de Relojes La 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: Este 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. Algoritmo de Cristian 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. Algoritmo con Promedio Este algoritmo no dispone de un servidor que controle, centralice y mantenga la sincronizacin del tiempo en el sistema. A diferencia de ello, cada mquina del sistema informa su hora local con cada mensaje que requiera enviar a otra mquina o mquinas del sistema. A partir de ese momento, cada mquina inicializa localmente un cronmetro, cuya duracin es de intervalo y longitud fija. A partir de ese momento, cada mquina promedia su hora local con el uso de las horas que le informan el resto de las mquinas que interactan con ella. Algoritmos para la Exclusin Mutua Estos algoritmos estn definidos para asegurar el cumplimiento de exclusin mutua entre procesos que requieren acceder a una regin crtica del sistema.

Este algoritmo simula la filosofa de operacin de exclusin mutua utilizada en sistemas monoprocesadores. Para ello, existe una mquina en el sistema distribuido que se encarga de controlar el acceso a las diferentes secciones crticas, la cual es denominada coordinador. Cada proceso del sistema que requiera acceso a una seccin crtica, debe solicitar acceso al coordinador, el cual lo otorgar en caso que la seccin crtica est disponible; caso contrario, colocar en una cola de espera al proceso solicitante. Cuando un proceso que recibi acceso a la seccin crtica culmina su tarea, informa por igual al coordinador a fin de que ste pueda otorgar acceso a un prximo proceso solicitante o que se encuentre en cola de espera. Este algoritmo presenta una gran limitante, consistente en que el coordinador representa un nico punto de control para el acceso a las diferentes secciones crticas del sistema distribuido, lo cual se convierte en un cuello de botella que puede afectar la eficiencia de los procesos que se ejecutan en el sistema. Igualmente, cualquier falla que presente el coordinador ocasionar la paralizacin de los procesos. Centralizado Distribuido Este algoritmo fue desarrollado a fin de eliminar el problema latente en el algoritmo centralizado. Por lo tanto, su enfoque est basado en no disponer de un nico coordinador para el control de acceso a las secciones crticas del sistema distribuido. En este sentido, cada proceso que requiere acceso a una seccin crtica, enva su solicitud a todos los procesos existentes en el sistema, identificndose a s mismo y a la seccin crtica que desea acceder. Cada proceso receptor enva su respuesta al proceso solicitante, indicando una de las siguientes posibles respuestas: Seccin crtica no en uso por el proceso receptor. Mensaje de respuesta: OK. Seccin crtica en uso por el proceso receptor. Mensaje de respuesta: no aplica, coloca al proceso emisor en cola de espera. Seccin crtica no en uso pero solicitada por el proceso receptor. Mensaje de respuesta: OK, si la solicitud es anterior a la del receptor. Mensaje de respuesta: No aplica, si la solicitud es posterior a la del receptor, coloca al proceso de emisor en cola de espera. Sin embargo, este algoritmo

tambin contiene un problema, consistente en que si un proceso presenta una falla no podr enviar su respuesta ante la solicitud de un proceso emisor, por lo cual esto ser interpretado como una negacin de acceso, bloqueando a todos los procesos que soliciten acceso a cualquier seccin crtica. Este algoritmo establece un anillo lgico de procesos, controlado por software, a travs del cual se hace circular una ficha o testigo (token) entre cada proceso. Cuando un proceso recibe la ficha, puede entrar a una seccin crtica si lo requiere, procesar todas sus tareas, abandonar la seccin crtica y entregar la ficha al prximo proceso del anillo. Este proceso se repite continuamente en el anillo de procesos. Cuando un proceso recibe la ficha y no requiere entrar a una seccin crtica, pasa la ficha inmediatamente al siguiente proceso. Este algoritmo contiene una debilidad, asociada a la posible prdida de la ficha de control para el acceso a las secciones crticas. Si esto ocurre, los procesos del sistema asumirn que la ficha est en uso por algn proceso que se encuentra en la seccin crtica.

De Anillo de Fichas (Token Ring) Estos algoritmos estn diseados para elegir un proceso coordinador. En los mismos, se garantiza que una vez realizada la eleccin del proceso coordinador, la misma concluya con el acuerdo de todos los procesos el sistema en la eleccin de un nuevo coordinador. De Eleccin Del Granduln (Garca Molina) Este algoritmo se inicia cuando un proceso cualquiera determina que no hay respuesta a las solicitudes hechas al proceso coordinador. En este momento, este proceso enva a todos los procesos mayores que l un mensaje de eleccin del nuevo coordinador, lo cual puede conllevar a los siguientes escenarios: Un proceso, con un nmero mayor que el proceso emisor del mensaje, responda OK, con lo cual queda elegido como coordinador del sistema. Ningn proceso responde el mensaje de eleccin, con lo cual el proceso emisor queda electo como proceso coordinador.

De Anillo Este algoritmo opera de manera similar al algoritmo del Granduln, con la diferencia que en este mtodo se presenta las siguientes variantes: El mensaje de eleccin se hace circular a todos los procesos del sistema, y no solo a los procesos mayores que el emisor. Cada proceso inscribe en el mensaje su identificacin. Una vez que el mensaje completa el anillo y regresa a proceso emisor, quien establece como nuevo coordinador al proceso con el nmero mayor. Se hace circular a travs del anillo un nuevo mensaje indicando quin es el coordinador del sistema.

Sincronizacin de sistemas distribuidos Sincronizacin de relojes Un 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. 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 Algoritmos para la Sincronizacin de Relojes La 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 Cristian Este 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 dela 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. 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. Sincronizacin en sistemas distribuidos El problema que existe en un sistema distribuido, es determinar el orden particular sobre cualquier conjunto de eventos en un sistema distribuido. Existen dos grupos de mecanismos de sincronizacin: centralizados y distribuidos.

Mecanismos de sincronizacin centralizada Estos son los mecanismos que se basan en la existencia de una unidad de sincronizacin centralizada, la cual debe tener un nombre nico conocido para todos los procesos que requieren ser sincronizados Se designa un nodo como nodo de control y su tarea es administrar el acceso a los recursos compartidos. Este nodo tambin almacena informacin relevante sobre todos los procesos que realizan alguna peticin. A continuacin se hace una distincin de diferentes mecanismos centralizados. Algoritmos no basados en paso de mensajes Algoritmo de Lamport .Fue el primer algoritmo propuesto para lograr la exclusin 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. A continuacin se describe el algoritmo para resolver la exclusin mutua (por conveniencia, se asume que las acciones definidas por cada regla son para un solo evento). Solicitud de recurso de su cola de peticiones. El algoritmo anterior es un algoritmo distribuido, pues no existe un proceso central desincronizacin o almacenamiento central. Independientemente, cada nodo lo ejecuta y se requieren 3*(N-1) mensajes por seccin crtica (N representa el nmero de procesos).Una caracterstica importante en este algoritmo es que cada proceso requiere conocer la locacin exacta del recurso al que desea acceder. RELOJ FSICO 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. Desde antiguo el tiempo se ha medido astronmicamente. Se considera el da solar al intervalo entre dos trnsitos consecutivos del sol, donde el trnsito del sol es el evento en que el sol alcanza su punto aparentemente ms alto en el cielo .El segundo solar se define como 1 / 86.400 de un da solar. Como el perodo de rotacin de la tierra no es constante, se considera el segundo solar promedio de un gran nmero de das. Los fsicos definieron al segundo como el tiempo que tarda Se tom este nmero para que el segundo atmico coincida con el segundo solar promedio de 1958. : Operan estaciones de radio de onda corta o satlites de comunicaciones. Transmiten pulsos UTC con cierta regularidad establecida (cada segundo, cada0,5 mseg, etc.). Se deben conocer con precisin la posicin relativa del emisor y del receptor: Se debe compensar el retraso de propagacin de la seal. Si la seal se recibe por mdem tambin se debe compensar por la ruta de la seal y la velocidad del mdem. Se dificulta la obtencin del tiempo con una precisin extremadamente alta. SINCRONIZACIN DE RELOJES FSICOS Para conocer en qu hora del da ocurren los sucesos en los procesos de nuestro sistema distribuido Q, es necesario sincronizar los relojes de los procesos C con una fuente de tiempo externa autorizada. Esto es la SINCRONIZACIN EXTERNA. Y si los relojes estn sincronizados con otro con un grado de precisin conocido, entonces podemos medir el intervalo entre dos eventos que ocurren en diferentes computadores llamando a sus relojes locales, incluso aunque ellos no estn necesariamente sincronizados con una fuente externa de tiempo. Esto es

SINCRONIZACION INTERNA. Definimos estos dos modos de sincronizacin ms detalladamente, sobre un intervalo de tiempo real I:

Sincronizacin Externa: para una sincronizacin dada D>0, y para una fuente S de tiempo UTC,<D, para i = 1, 2, ...., N y para todos los tiempos reales ten I. Otra forma de decir esto es que los relojes C, son precisos con el lmite de Sincronizacin Interna: para una sincronizacin dada D>0,<D, para i = 1,2,....N y para todos los tiempos reales t en I. Los relojes que estn sincronizados internamente no estn necesariamente sincronizados externamente, puesto que pueden desplazarse colectivamente desde una fuente de tiempo externa incluso aunque estn de acuerdo entre s. Sin embargo, se deduce de las definiciones que si el sistema Q est sincronizado externamente con un lmite D entonces el mismo sistema esta sincronizado internamente con un lmite 2D. TIEMPO LGICO Y RELOJES LGICOS Los relojes lgicos son aquellos por los cuales estn ordenados los sucesos de una forma nica. Para poder usar en general el tiempo fsico se debe sincronizar perfectamente bien los relojes a lo largo de un sistema distribuido para poder as obtener el orden de cualquier par arbitrario de sucesos que ocurran en el, pero es poco probable que esto ocurra por que no se puede sincronizar perfectamente los relojes a lo largo de un sistema distribuido. Se puede utilizar un esquema que similar a la casualidad fsica, que se aplica en los sistemas distribuidos, para controlar el orden de algunos sucesos que ocurren en diversos procesos. La cual est basada en dos puntos sencillos y obvios. Cuando se enva un mensaje entre procesos, el suceso de enviar el mensaje ocurri antes del de recepcin del mismo. RELOJES VECTORIALES. Mattern y Fidge desarrollaron relojes vectoriales para mejorar la deficiencia de losrelojes de Lamport, del hecho que no podemos deducir que un reloj vectorial para un sistema de N procesos es un vector de N enteros .Cada proceso mantiene su propio reloj vectorial Vi, que utiliza para colocar marcas de tiempo en los sucesos locales. Como las marcas de tiempo de Lamport, cada proceso adhiere el vector de marcas de tiempo en los mensajes que enva al resto, y hay unas reglas sencillas para actualizar los relojes. Los vectores de marcas de tiempo tienen la desventaja, comparados con las marcas de tiempo de Lamport, de precisar una cantidad de almacenamiento y de carga real de mensajes que es proporcional a N, el nmero de procesos.

Вам также может понравиться