3.4 ALGORITMOS DE SINCRONIZACION Y CONTROL

 

Algoritmos de Sincronización.

 

La sincronización es mas compleja en los sistemas distribuidos que en los centralizados, puesto que los primeros deben utilizar algoritmos distribuidos, no es posible reunir toda la información relativa al sistema en un lugar y después dejar que cierto proceso lo examine.

 

Más compleja que en los centralizados

 

• Propiedades de algoritmos distribuidos:

– La información relevante se distribuye entre varias máquinas.

– Se toman decisiones sólo en base a la información local.

– Debe evitarse un punto único de fallo.

– No existe un reloj común.

 

• Problemas a considerar:

– Tiempo y estados globales.

– Exclusión mutua.

– Algoritmos de elección.

 

Tiempo y Estados Tiempo y Estados

•Relojes Distribuidos

•Relojes Lógicos                        

•Estados Globales.

 

Sincronización de Relojes Físicos

 

Relojes lógicos.

Casi todas las computadoras tienen un circuito para el registro de tiempo. Un cronometro de computadora es por lo general un cristal de cuarzo trabajando con precisión, cuando se mantiene sujeto a tensión, un cristal oscila con frecuencia bien definida,que depende del tiempo del cristal, la forma en que se corte y la magnitud de la tensión. A cada cristal se le asocian dos registros, un contador y un registro mantenedor. Cada oscilación del cristal disminuye en 1 al contador. Cuando el contador toma el valor 0, se genera una interrupción y el contador se vuelve a cargar mediante el registro mantenedor. De esta forma, es posible programar un cronometro de modo que genere una interrupción 60 veces por cada segundo o con cualquier frecuencia que desee. Cada interrupción recibe el nombre de marca de reloj.

 

Cuando se arranca por vez primera el sistema, por lo general se pide al operador que escriba la fecha y la hora, las cuales se convierten al número de marcas después de cierta fecha conocida y se guardan en la memoria. En cada marca de reloj, el procedimiento de servicio de interrupciones añade un 1 al tiempo guardado en memoria.

 

Tan pronto se comienzan a trabajar con varias maquinas, cada una con su propio reloj, la situación es distinta. Aunque la frecuencia de un oscilador de cristal es muy estable, es imposible garantizar que los cristales de computadoras distintas oscilen precisamente con la misma frecuencia. La diferencia entre los valores del tiempo se llama distorsión de reloj. Como consecuencia, podrían fallar los programas que esperan que el tiempo asociado en un archivo, objeto. Proceso o mensaje sea correcto e independiente del sitio donde haya sido generado.

 

Pero esto nos dice es posible sincronizar todos los relojes para obtener una estandarización del tiempo único, sin ambigüedades.

 

Para esto Lamport señalo que la Sincronización de relojes no tiene que ser absoluta. Si dos procesos no interactúan, no es necesario que sus relojes estén sincronizados, puesto que la carencia de sincronización no seria observable y por tanto no podría provocar problemas, Además señalo que lo que importa ,no es que todos los procesos concuerden de manera exacta en la hora, si no que coincidan en el orden en que ocurren los eventos.

 

Algoritmo de Lamport.

 

Para sincronizar los relojes físicos Lamport Definió una relación llamada Ocurre antes de la expresión a à b se lee: “a ocurre antes de b” e indica que todos los procesos coinciden en que primero ocurre el evento a y después el evento b. La relación “ ocurre antes de “ se puede observar de manera directa en dos situaciones:

 

1.- Si a y b son eventos en el mismo proceso y a ocurre antes de b, entonces aàb es verdadero.

 

2.- Si a es el evento de un mensaje por un proceso y b es el evento de la recepción del mensaje por otro proceso, entonces  aàb también es verdadero. Un mensaje no se puede recibir antes de ser enviado o al mismo tiempo en que se envia,puesto que tarda una cantidad finita de tiempo en que se envía, puesto que tarda una cantidad finita de tiempo.

 

Ocurre antes de  es una relación transitiva, de modo que si a àb y bàc entonces aàc. si dos eventos ,x, y z están en procesos diferentes que no intercambian mensajes , entonces en xàz no es verdadero , ni tampoco lo es  y à z. Se dice que estos eventos son concurrentes, lo que significa que nada se puede decir acerca del momento  en el que ocurren o cual de ellos es el primero.

 

Lo que necesitamos es una forma de medir el tiempo tal que, a cada evento a, le podamos asociar un valor del tiempo C(a) en el que todos los procesos estén de acuerdo. Estos valores del tiempo deben tener la propiedad de que si aàb, entonces C(a) < C(b). En otros terminos, si a y b son dos procesos dentro del mismo evento y a ocurre antes de b, entonces C(a) < C(b).

 
 

 

 

 

 

 

 

 

 

 


Relojes Físicos.

 

Aunque el algoritmo de Lamport proporciona un orden de ambigüedades, los valores de tiempo asignados a los eventos no tienen que ser cercanos a los tiempos reales en los que ocurren. En ciertos sistemas es importante la hora de Reloj. Para estos sistemas se necesitan relojes físicos externos. Por razones de eficiencia y redundancia. Pero como se mide el tiempo en realidad no es tan sencillo como uno pudiese pensar, en particular cuando se requiere de alta precisión. Desde la Invención de los relojes mecánicos, el tiempo se ha medido de manera astronómica. Cada día, el sol parece levantarse en el horizonte desde el este, sube hasta una altura máxima en el cielo y desciende en el oeste. El evento en que el sol alcanza su punto aparentemente mas alto en el cielo se llama transito del sol. Este evento ocurre aproximadamente a las doce del día de cada día. El intervalo entre dos tránsitos consecutivos del sol se llama día solar. Puesto que existen 24 horas en un día, cada una de las cuales contiene 3600 segundos, el segundo solar se define exactamente como 1/86400 de un día solar. 

 

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.

 

La Oficina Internacional de la Hora en París (BIH) recibe las indicaciones de cerca de 50 relojes atómicos en el mundo y calcula el tiempo atómico internacional (TAI).

 

Como consecuencia de que el día solar promedio (DSP) es cada vez mayor, un día TAI es 3 mseg menor que un DSP:

 

La BIH introduce segundos de salto para hacer las correcciones necesarias para que permanezcan en fase:

 

El sistema de tiempo basado en los segundos TAI.

El movimiento aparente del sol.

Surge el tiempo coordenado universal (UTC).

El Instituto Nacional del Tiempo Estándar (NIST) de EE. UU. y de otros países:

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:

Se debe compensar el retraso de propagación de la señal.

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.

Se dificulta la obtención del tiempo con una precisión extremadamente alta.

 

 

 

 

Algoritmos Para la Sincronización de Relojes

Si una máquina tiene un receptor de UTC, todas las máquinas deben sincronizarse con ella

Si ninguna máquina tiene un receptor de UTC:

Se supone que cada máquina tiene un cronómetro que provoca una interrupción “h” veces por segundo.

Cuando el cronómetro se detiene, el manejador de interrupciones añade “1” a un reloj en software.

El reloj en software mantiene un registro del número de marcas (interrupciones) a partir de cierta fecha acordada antes; al valor de este reloj se lo llama “C”.

Cuando el tiempo UTC es “t”, el valor del reloj en la máquina “p” es Cp(t)”:

Si dos relojes se alejan de UTC en la dirección opuesta:

 

 

 

 

   

 

 

 

 

Algoritmo de Cristian

Es adecuado para sistemas en los que:

Cada máquina envía un mensaje al servidor para solicitar el tiempo actual, periódicamente, en un tiempo no mayor que d / 2 r segundos.

El despachador del tiempo responde prontamente con un mensaje que contiene el tiempo actual “CUTC”.

Cuando el emisor obtiene la respuesta puede hacer que su tiempo sea “CUTC”.

Un gran problema es que el tiempo no puede correr hacia atrás:

El cambio del reloj se debe introducir de manera global:

La corrección por el tiempo del servidor y el tiempo de transmisión se hace midiendo en el emisor:

El tiempo de propagación del mensaje será (T1 - T0) / 2.

Si el tiempo del servidor para manejar la interrupción y procesar el mensaje es “I”:

Para mejorar la precisión: Se toman varias mediciones.

El tiempo de propagación se suma al tiempo del servidor para sincronizar al emisor cuando éste recibe la respuesta.

Algoritmo de Berkeley

En el algoritmo de Cristian el servidor de tiempo es pasivo.

En el algoritmo de Berkeley el servidor de tiempo:

Es adecuado cuando no se dispone de un receptor UTC.

Algoritmos con Promedio

Los anteriores son algoritmos centralizados.

Una clase de algoritmos descentralizados divide el tiempo en intervalos de resincronización de longitud fija:

Al inicio de cada intervalo cada máquina transmite el tiempo actual según su reloj.

Debido a la diferente velocidad de los relojes las transmisiones no serán simultáneas.

Luego de que una máquina transmite su hora, inicializa un cronómetro local para reunir las demás transmisiones que lleguen en cierto intervalo “S”.

Cuando recibe todas las transmisiones se ejecuta un algoritmo para calcular una nueva hora para los relojes.

Una variante es promediar los valores de todas las demás máquinas.

Otra variante es descartar los valores extremos antes de promediar (los “m” mayores y los “m” menores).

Una mejora al algoritmo considera la corrección por tiempos de propagación

 

 

 

Varias Fuentes Externas de Tiempo

Los sistemas que requieren una sincronización muy precisa con UTC se pueden equipar con varios receptores de UTC.

Las distintas fuentes de tiempo generaran distintos rangos (intervalos de tiempo) donde “caerán” los respectivos UTC, por lo que es necesaria una sincronización.

Como la transmisión no es instantánea se genera una cierta incertidumbre en el tiempo.

Cuando un procesador obtiene todos los rangos de UTC:

Se deben compensar los retrasos de transmisión y las diferencias de velocidades de los relojes.

Se debe asegurar que el tiempo no corra hacia atrás.

Se debe resincronizar periódicamente desde las fuentes externas de UTC.

 

 

Hosted by www.Geocities.ws

1