Algoritmos de Sincronización. La Sincronización es el proceso por el cual dos componentes intercambian datos o información.Los datos intercambiados pueden afectar la información uno o de ambos componentes. Se dice que esto se hace por medio de protocolos de sincronización, donde ambos componentes "conocen" la forma de intercambio de datos. La importancia de la sincronización radica en el mantenimiento de la confiabilidad e integridad de la información. Entre los protocolos se encuentran los siguientes: Slow sync : En términos 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 sincronización es mucho más rápido que el anterior y se basa en que sólo 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 sincronización 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 demás hacer énfasis en que la sincronización es un proceso diferente al de transmisión de información. No se deben confundir estos términos por muy similares que parezcan. El lector puede buscar información de este tema por el nombre de Conduit. Sincronización en los sistemas distribuidos. Algoritmos para la 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. Para lograr esto existen varios métodos 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 inglés, 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 El tiempo de propagación se suma al tiempo del servidor para sincronizar al emisor cuando éste recibe la respuesta. el cual es enviado a todas las máquinas del sistema a fin de sincronizarlo. centralice y mantenga la sincronización del tiempo en el sistema. entre los cuales se menciona las ondas de radio. Algoritmo con Promedio Este algoritmo no dispone de un servidor que controle. cada máquina inicializa localmente un cronómetro. A partir de ese momento. A diferencia de ello.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. A partir de ese momento. lo cual incide en el tiempo de atención. entre otros. Algoritmo de Cristian Un sistema distribuido basado en el algoritmo de Berkeley no dispone del tiempo coordenado universal (UTC). Internet. Algoritmos para la Exclusión Mutua Estos algoritmos están definidos para asegurar el cumplimiento de exclusión mutua entre procesos que requieren acceder a una región crítica del sistema. cada máquina promedia su hora local con el uso de las horas que le informan el resto de las máquinas que interactúan con ella. El intervalo de transmisión de la solicitud y su respuesta debe ser tomado en cuenta para la sincronización. El receptor de UTC recibe el tiempo a través de diversos medios disponibles. también existe un servidor de tiempo que. en lugar de ello. cuya duración es de intervalo y longitud fija. El servidor de UTC debe procesar las solicitudes de tiempo con el concepto de interrupciones. cada máquina del sistema informa su hora local con cada mensaje que requiera enviar a otra máquina o máquinas del sistema. el sistema maneja su propia hora. Para realizar la sincronización del tiempo en el sistema. Un gran problema en este algoritmo es que el tiempo no puede correr hacia atrás: El tiempo del receptor UTC no puede ser menor que el tiempo de la máquina que le solicitó el tiempo. con lo cual calcula un tiempo promedio. Este servidor realiza un muestreo periódico del tiempo que poseen algunas de las máquinas del sistema. se comporta de manera activa. con lo cual todas las máquinas del sistema actualicen su hora y se mantenga así sincronizado todo el sistema. a diferencia del algoritmo de Cristian. . Mensaje de respuesta: OK. cada proceso que requiere acceso a una sección crítica. Por lo tanto. Sin embargo. Igualmente. Cuando un proceso que recibió acceso a la sección crítica culmina su tarea. el cual lo otorgará en caso que la sección crítica esté disponible. En este sentido. debe solicitar acceso al coordinador. Mensaje de respuesta: No aplica. envía su solicitud a todos los procesos existentes en el sistema. Para ello. Este algoritmo presenta una gran limitante. informa por igual al coordinador a fin de que éste pueda otorgar acceso a un próximo proceso solicitante o que se encuentre en cola de espera. Mensaje de respuesta: OK. Cada proceso receptor envía su respuesta al proceso solicitante. coloca al proceso emisor en cola de espera. cualquier falla que presente el coordinador ocasionará la paralización de los procesos. caso contrario. consistente en que el coordinador representa un único punto de control para el acceso a las diferentes secciones críticas del sistema distribuido. Mensaje de respuesta: no aplica. existe una máquina en el sistema distribuido que se encarga de controlar el acceso a las diferentes secciones críticas. si la solicitud es posterior a la del receptor. Sección crítica no en uso pero solicitada por el proceso receptor.Este algoritmo simula la filosofía de operación de exclusión mutua utilizada en sistemas monoprocesadores. si la solicitud es anterior a la del receptor. la cual es denominada coordinador. lo cual se convierte en un cuello de botella que puede afectar la eficiencia de los procesos que se ejecutan en el sistema. identificándose a sí mismo y a la sección crítica que desea acceder. este algoritmo . Centralizado Distribuido Este algoritmo fue desarrollado a fin de eliminar el problema latente en el algoritmo centralizado. su enfoque está basado en no disponer de un único coordinador para el control de acceso a las secciones críticas del sistema distribuido. coloca al proceso de emisor en cola de espera. Sección crítica en uso por el proceso receptor. indicando una de las siguientes posibles respuestas: Sección crítica no en uso por el proceso receptor. Cada proceso del sistema que requiera acceso a una sección crítica. colocará en una cola de espera al proceso solicitante. abandonar la sección crítica y entregar la ficha al próximo proceso del anillo. la misma concluya con el acuerdo de todos los procesos el sistema en la elección de un nuevo coordinador. Ningún proceso responde el mensaje de elección. Este proceso se repite continuamente en el anillo de procesos. Este algoritmo establece un anillo lógico de procesos. por lo cual esto será interpretado como una negación de acceso. a través del cual se hace circular una ficha o testigo (token) entre cada proceso. responda OK. Este algoritmo contiene una debilidad. De Anillo de Fichas (Token Ring) Estos algoritmos están diseñados para elegir un proceso coordinador. Cuando un proceso recibe la ficha.también contiene un problema. consistente en que si un proceso presenta una falla no podrá enviar su respuesta ante la solicitud de un proceso emisor. En los mismos. procesar todas sus tareas. De Elección Del Grandulón (García Molina) Este algoritmo se inicia cuando un proceso cualquiera determina que no hay respuesta a las solicitudes hechas al proceso coordinador. . pasa la ficha inmediatamente al siguiente proceso. con un número mayor que el proceso emisor del mensaje. bloqueando a todos los procesos que soliciten acceso a cualquier sección crítica. este proceso envía a todos los procesos mayores que él un mensaje de elección del nuevo coordinador. En este momento. controlado por software. Cuando un proceso recibe la ficha y no requiere entrar a una sección crítica. con lo cual el proceso emisor queda electo como proceso coordinador. con lo cual queda elegido como coordinador del sistema. se garantiza que una vez realizada la elección del proceso coordinador. los procesos del sistema asumirán que la ficha está en uso por algún proceso que se encuentra en la sección crítica. lo cual puede conllevar a los siguientes escenarios: Un proceso. Si esto ocurre. asociada a la posible pérdida de la ficha de control para el acceso a las secciones críticas. puede entrar a una sección crítica si lo requiere. debido a que la información y el procesamiento se mantienen en diferentes nodos. y es usado para hacer referencia a tres problemas distintos pero relacionados entre sí. el cual hace uso de semáforos y monitores.3. Un sistema distribuido debe mantener vistas parciales y consistentes de todos los procesos cooperativos y de cómputo. debe encargarse de un buen desempeño y de la consistencia de los datos. La sincronización entre el emisor y el receptor. y no solo a los procesos mayores que el emisor. Sincronización de sistemas distribuidos Sincronización de relojes Un sistema distribuido debe permitir el apropiado uso de los recursos. quien establece como nuevo coordinador al proceso con el número mayor. Haciendo referencia a los métodos utilizados en un sistema centralizado.La especificación y control de la actividad común entre procesos cooperativos. en un sistema distribuido se utilizan algoritmos distribuidos para sincronizar el trabajo común entre los procesos y estos algoritmos Algoritmos para la 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. con la diferencia que en este método se presenta las siguientes variantes: El mensaje de elección se hace circular a todos los procesos del sistema. además de mantener seguras todas estas operaciones La sincronización de procesos en los sistemas distribuidos resulta más compleja que en los centralizados.La serialización de accesos concurrentes a objetos compartidos por múltiples procesos. Una vez que el mensaje completa el anillo y regresa a proceso emisor. Tales vistas pueden ser provistas por los mecanismos de sincronización. Para lograr esto existen varios métodos o . Cada proceso inscribe en el mensaje su identificación.2. El término sincronización se define como la forma de forzar un orden parcial o total en cualquier conjunto de eventos.De Anillo Este algoritmo opera de manera similar al algoritmo del Grandulón. Se hace circular a través del anillo un nuevo mensaje indicando quién es el coordinador del sistema. Sincronización 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. en lugar de ello. también existe un servidor de tiempo que. . 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. Algoritmo de Berkeley Un sistema distribuido basado en el algoritmo de Berkeley no dispone del tiempo coordenado universal (UTC). a diferencia del algoritmo de Cristian. Internet.algoritmos que se programan dentro del sistema operativo. el cual es recibido por un equipo dentro del sistema distribuido. el cual es enviado a todas las máquinas del sistema a fin de sincronizarlo. entre otros. El servidor de UTC debe procesar las solicitudes de tiempo con el concepto de interrupciones. El receptor de UTC recibe el tiempo a través de diversos medios disponibles. denominado receptor de UTC. 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. lo cual incide en el tiempo de atención. El intervalo de transmisión de la solicitud y su respuesta debe ser tomado en cuenta para la sincronización. El tiempo de propagación se suma al tiempo del servidor para sincronizar al emisor cuando éste recibe la respuesta. Un gran problema en este algoritmo es que el tiempo no puede correr hacia atrás: El tiempo del receptor UTC no puede ser menor que el tiempo dela máquina que le solicitó el tiempo. con lo cual todas las máquinas del sistema actualicen su hora y se mantenga así sincronizado todo el sistema. entre los cuales se menciona las ondas de radio. Existen dos grupos de mecanismos de sincronización: centralizados y distribuidos. entre los cuales tenemos: Algoritmo de Cristian Este algoritmo está basado en el uso del tiempo coordenado universal (siglas en inglés. UTC). Para realizar la sincronización del tiempo en el sistema. el sistema maneja su propia hora. se comporta de manera activa. Este equipo. el tiempo actual desplegado por el reloj físico. . Fue propuesto por Lamport en 1978. 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. A continuación se describe el algoritmo para resolver la exclusión mutua (por conveniencia. El algoritmo anterior es un algoritmo distribuido. 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. Independientemente. A continuación se hace una distinción de diferentes mecanismos centralizados. Algoritmos no basados en paso de mensajes Algoritmo de Lamport . los errores de transmisión se convierten en un impedimento para el orden deseado. Solicitud de recurso de su cola de peticiones. debe liberarlo antes de que sea otorgado a otro proceso. Este nodo también almacena información relevante sobre todos los procesos que realizan alguna petición.Una característica importante en este algoritmo es que cada proceso requiere conocer la locación exacta del recurso al que desea acceder. cada nodo lo ejecuta y se requieren 3*(N-1) mensajes por sección crítica (N representa el número de procesos).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. La principal ventaja de este mecanismo es la simplicidad. pues no existe un proceso central desincronización o almacenamiento central.Mecanismos de sincronización centralizada Estos son los mecanismos que se basan en la existencia de una unidad de sincronización centralizada. Se deben entregar los derechos sobre un recurso en el orden en que se hicieron todas las solicitudes de uso del recurso. se asume que las acciones definidas por cada regla son para un solo evento). el grado de exactitud depende de las constantes puestas en el sistema. El objetivo de la propuesta de Lamport es obtener un algoritmo que cumpla con las siguientes condiciones: Un proceso que posee a un recurso. aunque existen varios inconvenientes: el correcto registro del tiempo depende en la posibilidad de recibir correctamente y en todo momento. RELOJ FÍSICO La idea es proveer de un único bloque de tiempo para el sistema. Y si los relojes están sincronizados con otro con un grado de precisión conocido. SINCRONIZACIÓN DE RELOJES FÍSICOS Para conocer en qué hora del día ocurren los sucesos en los procesos de nuestro sistema distribuido Q. incluso aunque ellos no estén necesariamente sincronizados con una fuente externa de tiempo.400 de un día solar. Los físicos definieron al segundo como el tiempo que tarda Se tomó este número para que el segundo atómico coincida con el segundo solar promedio de 1958. : Operan estaciones de radio de onda corta o satélites de comunicaciones. se considera el segundo solar promedio de un gran número de días. Esto es .5 mseg. Si la señal se recibe por módem también se debe compensar por la ruta de la señal y la velocidad del módem. Entre sí. En ciertos sistemas es importante la hora real del reloj: Se precisan relojes físicos externos (más de uno).). Esto es la SINCRONIZACIÓN EXTERNA. etc. donde el tránsito del sol es el evento en que el sol alcanza su punto aparentemente más alto en el cielo . Se deben conocer con precisión la posición relativa del emisor y del receptor: Se debe compensar el retraso de propagación de la señal.El segundo solar se define como 1 / 86. Desde antiguo el tiempo se ha medido astronómicamente.Los valores de tiempo asignados a los eventos no tienen por qué ser cercanos a los tiempos reales en los que ocurren. Se considera el día solar al intervalo entre dos tránsitos consecutivos del sol. entonces podemos medir el intervalo entre dos eventos que ocurren en diferentes computadores llamando a sus relojes locales. Se dificulta la obtención del tiempo con una precisión extremadamente alta. Transmiten pulsos UTC con cierta regularidad establecida (cada segundo. Se deben sincronizar: Con los relojes del mundo real. es necesario sincronizar los relojes de los procesos C con una fuente de tiempo externa autorizada. cada0. Como el período de rotación de la tierra no es constante. RELOJES VECTORIALES. . Definimos estos dos modos de sincronización más detalladamente... . del hecho que no podemos deducir que un reloj vectorial para un sistema de N procesos es un vector de N enteros . 2. el suceso de enviar el mensaje ocurrió antes del de recepción del mismo. Mattern y Fidge desarrollaron relojes vectoriales para mejorar la deficiencia de losrelojes de Lamport. Como las marcas de tiempo de Lamport.. Para poder usar en general el tiempo físico 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. Los vectores de marcas de tiempo tienen la desventaja. el número de procesos. cada proceso adhiere el vector de marcas de tiempo en los mensajes que envía al resto.<D. para i = 1. pero es poco probable que esto ocurra por que no se puede sincronizar perfectamente los relojes a lo largo de un sistema distribuido. Otra forma de decir esto es que los relojes C. que se aplica en los sistemas distribuidos. que utiliza para colocar marcas de tiempo en los sucesos locales. de precisar una cantidad de almacenamiento y de carga real de mensajes que es proporcional a N. y para una fuente S de tiempo UTC. son precisos con el límite de Sincronización Interna: para una sincronización dada D>0.... para controlar el orden de algunos sucesos que ocurren en diversos procesos. Sin embargo.<D. TIEMPO LÓGICO Y RELOJES LÓGICOS Los relojes lógicos son aquellos por los cuales están ordenados los sucesos de una forma única. Cuando se envía un mensaje entre procesos. puesto que pueden desplazarse colectivamente desde una fuente de tiempo externa incluso aunque estén de acuerdo entre sí.N y para todos los tiempos reales t en I. y hay unas reglas sencillas para actualizar los relojes.2. Los relojes que están sincronizados internamente no están necesariamente sincronizados externamente. Se puede utilizar un esquema que similar a la casualidad física. para i = 1. La cual está basada en dos puntos sencillos y obvios.Cada proceso mantiene su propio reloj vectorial Vi. se deduce de las definiciones que si el sistema Q está sincronizado externamente con un límite D entonces el mismo sistema esta sincronizado internamente con un límite 2D.SINCRONIZACION INTERNA.. sobre un intervalo de tiempo real I: Sincronización Externa: para una sincronización dada D>0. N y para todos los tiempos reales ten I.. comparados con las marcas de tiempo de Lamport.