Las computadoras poseen un circuito para el registro del tiempo conocido como dispositivo reloj [25, Tanenbaum].
Es un cronómetro consistente en un cristal de cuarzo de precisión sometido a una tensión eléctrica que:
• Oscila con una frecuencia bien definida que depende de:
o Al forma en que se corte el cristal.
o El tipo de cristal.
o La magnitud de la tensión.
• A cada cristal se le asocian dos registros:
o Registro contador.
o Registro mantenedor.
• Cada oscilación del cristal decrementa en “1” al contador.
• Cuando el contador llega a “0”:
o Se genera una interrupción.
o El contador se vuelve a cargar mediante el registro mantenedor.
• Se puede programar un cronómetro para que genere una interrupción “x” veces por segundo.
• Cada interrupción se denomina marca de reloj.
Para una computadora y un reloj:
• No interesan pequeños desfasajes del reloj porque:
o Todos los procesos de la máquina usan el mismo reloj y tendrán consistencia interna.
o Importan los tiempos relativos.
Para varias computadoras con sus respectivos relojes:
• Es imposible garantizar que los cristales de computadoras distintas oscilen con la misma frecuencia.
• Habrá una pérdida de sincronía en los relojes (de software), es decir que tendrán valores distintos al ser leidos.
La diferencia entre los valores del tiempo se llama distorsión del reloj y podría generar fallas en los programas dependientes del tiempo.
Lamport demostró que la sincronización de relojes es posible y presentó un algoritmo para lograrlo.
Lamport señaló que la sincronización de relojes no tiene que ser absoluta:
• Si 2 procesos no interactúan no es necesario que sus relojes estén sincronizados.
• Generalmente lo importante no es que los procesos estén de acuerdo en la hora, pero sí importa que coincidan en el orden en que ocurren los eventos.
Para ciertos algoritmos lo que importa es la consistencia interna de los relojes:
• No interesa su cercanía particular al tiempo real (oficial).
• Los relojes se denominan relojes lógicos.
Los relojes físicos son relojes que:
• Deben ser iguales (estar sincronizados).
• No deben desviarse del tiempo real más allá de cierta magnitud.
Para sincronizar los relojes lógicos, Lamport definió la relación ocurre antes de (happens-before):
• Si “a” y “b” son eventos en el mismo proceso y “a” ocurre antes de “b”, entonces “a –> b” es verdadero.
• “Ocurre antes de” es una relación transitiva:
o Si “a –> b” y “b –> c”, entonces “a –> c”.
• Si dos eventos “x” e “y” están en procesos diferentes que no intercambian mensajes, entonces “x –> y” no es verdadero, pero tampoco lo es “y –> x”:
o Se dice que son eventos concurrentes.
Necesitamos 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:
• Se debe cumplir que:
o Si “a –> b” entonces “C(a) <>
Sincronizacion de Relojes Físicos
El algoritmo de Lamport proporciona un orden de eventos sin ambigüedades, pero [25, Tanenbaum]:
• Los valores de tiempo asignados a los eventos no tienen porqué ser cercanos a los tiempos reales en los que ocurren.
• En ciertos sistemas (ej.: sistemas de tiempo real ), 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í.
La medición del tiempo real con alta precisión no es sencilla.
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.
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:
o El sistema de tiempo basado en los segundos TAI.
o 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:
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.
Algoritmos Para la Sincronización de Relojes
Si una máquina tiene un receptor de UTC, todas las máquinas deben sincronizarse con ella [25, Tanenbaum].
Si ninguna máquina tiene un receptor de UTC:
• Cada máquina lleva el registro de su propio tiempo.
• Se debe mantener el tiempo de todas las máquinas tan cercano como sea posible.
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)”:
• Lo ideal sería que “Cp(t)” = “t” para toda “p” y todo “t”:
o “dC/dt” debería ser “1”.
• Lo real es que los cronómetros no realizan interrupciones exactamente “h” veces por segundo:
o Poseen un error relativo de aproximadamente 10-5 .
o El fabricante especifica una constante “ r ” llamada tasa máxima de alejamiento que acota el error.
o El cronómetro funciona dentro de su especificación si existe una constante “ r ” y se cumple:
1 - r £dC / dt £ 1 + r.
Si dos relojes se alejan de UTC en la dirección opuesta:
• En un instante Dt luego de la sincronización podrían estar tan alejados como: 2 rDt.
• Para garantizar que no difieran más de d:
o Se deben volver a sincronizar (en software) al menos cada d / 2 r segundos.
No hay comentarios:
Publicar un comentario