Está en la página 1de 7

Sincronización de sistemas distribuidos

Sincronización de relojes

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

La sincronización de procesos en los sistemas distribuidos resulta más compleja que en


los centralizados, debido a que la información y el procesamiento se mantienen en
diferentes nodos. Un sistema distribuido debe mantener vistas parciales y consistentes
de todos los procesos cooperativos y de cómputo. Tales vistas pueden ser provistas por
los mecanismos de sincronización.

El término sincronización 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 sincronización entre el emisor y el receptor.


2. La especificación y control de la actividad común entre procesos cooperativos.
3. La serialización de accesos concurrentes a objetos compartidos por múltiples
procesos.

Haciendo referencia a los métodos utilizados en un sistema centralizado, el cual hace


uso de semáforos y monitores; 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. Para lograr esto existen varios métodos 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 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 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.

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.
 El servidor de UTC debe procesar las solicitudes de tiempo con el
concepto de interrupciones, 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.

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 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.

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. Existen dos grupos de
mecanismos de sincronización: centralizados y distribuidos.

Mecanismos de sincronización centralizada

Estos son los mecanismos que se basan en la existencia de una unidad de sincronización
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 también almacena información relevante sobre todos
los procesos que realizan alguna petición.

A continuación se hace una distinción de diferentes mecanismos centralizados.

Algoritmos no basados en paso de mensajes

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.

A continuación se describe el algoritmo para resolver la exclusión mutua (por


conveniencia, se asume que las acciones definidas por cada regla son para un sólo
evento).

• El proceso Pi desea entrar a una SC, envía el mensaje Tm :Pi solicitud de recurso,
al resto de los nodos y pone al mensaje en la cola de peticiones. Tm representa la
marca de tiempo del mensaje.
• Cuando el proceso Pj recibe el mensaje Tm :Pi solicitud de recurso, lo coloca en
su cola de peticiones y envía un mensaje de conocimiento al proceso Pi, con su
respectiva marca de tiempo.
• El proceso Pi obtiene el recurso cuando se cumplen las siguientes condiciones
que son probadas localmente por Pi:
o Existe un mensaje Tm:Pi solicitud de recurso en la cola de peticiones.
o El proceso Pi ha recibido un mensaje de todos los procesos con una
marca de tiempo mayor a Tm.
• Para liberar el recurso, el proceso Pi quita cualquier mensaje Tm:Pi solicitud de
recurso de su cola de peticiones y envía un mensaje Pi libera recurso con marca
de tiempo al resto de los proceso.
• Cuando el proceso Pj recibe un mensaje Pi libera recurso, quita cualquier
mensaje Tm:Pi solicitud de recurso de su cola de peticiones.

El algoritmo anterior es un algoritmo distribuido, pues no existe un proceso central de


sincronización o almacenamiento central. Independientemente, cada nodo lo ejecuta y
se requieren 3*(N-1) mensajes por sección crítica (N representa el número de procesos).
Una característica importante en este algoritmo es que cada proceso requiere conocer la
locación exacta del recurso al que desea acceder.

RELOJ FÍSICO

La idea es proveer de 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.

• Los valores de tiempo asignados a los eventos no tienen porqué ser cercanos a
los tiempos reales en los que ocurren.
• En ciertos sistemas es importante la hora real del reloj:
o Se precisan relojes físicos externos (más de uno).
o Se deben sincronizar:
 Con los relojes del mundo real.
 Entre sí.
Desde antiguo el tiempo se ha medido astronómicamente.

Se considera el día solar al intervalo entre dos tránsitos consecutivos del sol, donde el
tránsito del sol es el evento en que el sol alcanza su punto aparentemente más alto en el
cielo.

El segundo solar se define como 1 / 86.400 de un día solar.

Como el período de rotación de la tierra no es constante, se considera el segundo solar


promedio de un gran número de días.

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. :

• Operan estaciones de radio de onda corta o satélites de comunicaciones.


• Transmiten pulsos UTC con cierta regularidad establecida (cada segundo, cada
0,5 mseg, etc.).
• Se deben conocer con precisión la posición relativa del emisor y del receptor:
o Se debe compensar el retraso de propagación de la señal.
o 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.
o Se dificulta la obtención del tiempo con una precisión extremadamente
alta.

SINCRONIZACIÓN DE RELOJES FÍSICOS

Para conocer en que hora del día ocurren los sucesos en los procesos de nuestro
sistema distribuido Q, es necesario sincronizar los relojes de los procesos C i 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 SINCRONIZACION
INTERNA. Definimos estos dos modos de sincronización mas detalladamente, sobre un
intervalo de tiempo real I:

Sincronización Externa: para una sincronización dada D>0, y para una fuente S de
tiempo UTC,  Si (t) – Ci (t)<D, para i = 1, 2, ...., N y para todos los tiempos reales t
en I. Otra forma de decir esto es que los relojes Ci son precisos con el límite D.

Sincronización Interna: para una sincronización dada D>0, Ci(t) – Cj(t)<D, para
i = 1,2,....N y para todos los tiempos reales t en I.

Los relojes que están sincronizados internamente no están necesariamente


sincronizados externamente, puesto que pueden desplazarse colectivamente desde una
fuente de tiempo externa incluso aunque estén de acuerdo entre si. Sin embargo, 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.

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. 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, 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 física, que se aplica en

los sistemas distribuidos, para controlar el orden de algunos sucesos que ocurren en

diversos procesos. La cual esta basada en dos puntos sencillos y obvios.

Cuando se envía un mensaje entre procesos, el suceso de enviar el mensaje

ocurrió antes del de recepción del mismo.

Lamport llamo a la ordenación obtenida al generalizar estas dos relaciones la

realización suceder antes. También se le conoce como la relación de orden casual o

ordenación casual del mismo.

La relación captura un flujo de información entre dos eventos.

La información puede fluir de formas distintas de la de paso de mensajes.

Por ejemplo: Si Pérez presenta un mandato a su proceso para que envíe un

mensaje, acto seguido telefonea a Gómez, quien ordena a su proceso que envíe otro
mensaje, luego el envío del primer mensaje claramente sucedió antes que el segundo.

Desafortunadamente, como no se ha enviado mensajes de red entre los procesos que los

emitieron, no podemos modelar este tipo de relaciones en nuestro sistema.

Otro punto a señalar es que aun produciéndose la relación sucedió antes entre

dos sucesos, el primero podría o no haber causado realmente el segundo. Un proceso

podría recibir un mensaje y consecuentemente enviar otro mensaje, pero no que él emite

cada cinco minutos en cualquier caso y no tiene ninguna relación específica con el

primer mensaje. No se ha supuesto ninguna causalidad real, pero la relación debe

ordenar estos sucesos.

Lamport invento un mecanismo simple con el cual la relación sucedió antes

pueda capturarse numéricamente, denominado reloj lógico. Un reloj es un contador

software que se incrementa monótonamente, y sus valores no necesitan tener relación

alguna con el reloj físico.

RELOJES LÓGICOS TOTALMENTE ORDENADOS.

Algunos pares de sucesos distintos, generados por diferentes procesos, tienen

marcas de tiempo de Lamport numéricamente idénticas. Sin embargo, podemos crear un

orden, uno para el que todos los pares de sucesos distintos están ordenados, teniendo en

cuenta los identificadores de los procesos en los que ocurren los sucesos.

Lamport la utilizo, para ordenar la entrada de procesos en una sección.


RELOJES VECTORIALES.

Mattern y Fidge desarrollaron relojes vectoriales para mejorar la deficiencia de los

relojes 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 envía 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 número de procesos.

También podría gustarte