26
Sincronización de relojes Sistemas Distribuidos

Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Embed Size (px)

Citation preview

Page 1: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Sincronización de relojesSistemas Distribuidos

Page 2: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Algoritmos distribuidos y la sincronización

Generalmente los algoritmos distribuidos tienen las siguientes propiedades:

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

• Los procesos toman las decisiones sólo con base en la información disponible en forma local.

• Debe evitarse un único punto de fallo en el sistema.

• No existe un reloj común o alguna otra fuente precisa del tiempo global.

Page 3: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Algoritmos distribuidos y la sincronización

El último punto es crucial pues:

• En un sistema centralizado el tiempo no es ambiguo.

• En un sistema distribuido no es trivial poner de acuerdo a todas las máquinas en la hora.

• Se requiere un acuerdo global en el tiempo, pues la falta de sincronización en los relojes puede ser drástica en procesos dependientes del tiempo.

Page 4: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Algoritmos distribuidos y la sincronización

Ejemplo: Comando make.

Cuando el programador termina de modificar todos los archivos fuentes, inicia make, el cual examina las horas en que todos los archivos fuentes y objetos fueron modificados por última vez. Si el archivo fuente input.c tiene la hora 5456 y el correspondiente archivo objeto input.o tiene la hora 5455, make sabe que input.c tiene modificaciones desde la creación de input.o, por lo que entonces hay que volver a compilar input.c.

Por otro lado, si output.c tiene la hora 2144 y output.o tiene la hora 2145, entonces no es necesario volver a compilar. Así, make revisa todos los archivos fuentes para determinar aquellos que deban volverse a compilar y llama al compilador para que realice esta tarea.

Page 5: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Registro de Tiempo en Computadoras

Para la mayoría de los fines, basta que todas las máquinas coincidan en la misma hora. No es esencial que esta hora también coincida con la hora real. Por ejemplo, para ejecutar make, es adecuado que todas las máquinas estén de acuerdo en que sean las 10:00, aunque en realidad sean las 11:00.

Así, para una cierta clase de algoritmos, lo que importa es la consistencia interna de los relojes, no su particular cercanía al tiempo real. Para estos algoritmos, conviene hablar de los relojes como relojes lógicos. Cuando existe la restricción adicional de que los relojes no sólo deben ser iguales, sino que además no se desvíen del tiempo real más allá de cierta magnitud, los relojes reciben el nombre de relojes físicos.

Page 6: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Registro de Tiempo en Computadoras

Reloj Lógicos:

Las computadoras poseen un circuito para el registro del tiempo conocido como dispositivo reloj. Este es un cronómetro que 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 la forma en que se corte el cristal, el tipo de cristal, la magnitud de la tensión. A cada cristal se le Asocian dos registros:

• Registro contador.

• Registro mantenedor.

Page 7: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Registro de Tiempo en Computadoras

Problema:

Para varias computadoras con sus respectivos relojes es imposible garantizar que los cristales de computadoras distintas oscilen con la misma frecuencia.

Lamport demostró que la sincronización de relojes es posible y presentó un algoritmo para lograrlo. Este señaló que la sincronización de relojes no tiene que ser absoluta ya que si dos procesos no interactúan no es necesario que sus relojes están sincronizados.

Page 8: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Sincronización de relojes lógicosAlgoritmo de Lamport:

Lamport definió una relación llamada “ocurre antes de”. La expresión A -> B se lee: A ocurre antes de B. La relación "ocurre antes de" cumple con las siguientes propiedades:

• Si A y B son eventos en el mismo proceso y A ocurre antes de B, entonces A -> B es verdadero.

• 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. Se dice que son eventos concurrentes.

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

Page 9: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Sincronización de relojes lógicos

Algoritmo de Lamport:

Page 10: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Relojes físicos

Aunque el algoritmo de Lamport proporciona un orden de eventos sin 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 (por ejemplo, los sistemas de tiempo real), es importante la hora real del reloj.

Para estos sistemas se necesitan relojes físicos externos. Por razones de eficiencia y redundancia, por lo general son recomendables varios relojes físicos, lo cual implica dos problemas:

• ¿Cómo los sincronizamos con los relojes del mundo real?

• ¿Cómo sincronizamos los relojes entre sí?

Page 11: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Historia de las referencias de tiempo

Desde la invención de los relojes mecánicos en el siglo XVII, el tiempo se ha medido de manera astronómica. El evento en que el sol alcanza su punto aparentemente más alto en el cielo se llama tránsito 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 el 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 del día solar.

Page 12: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Historia de las referencias de tiempo Con la invención del reloj atómico en 1948, fue posible medir el tiempo de manera mucho más exacta y en forma independiente de todo el ir y venir de la Tierra, al contar las transiciones del átomo de cesio 133. Dada la precisión de los relojes atómicos se redefinió el segundo como:

“El tiempo que tarda el átomo de cesio 133 en hacer exactamente 9.192.631.770 transiciones”.

La elección de 9.192.631.770 fue hecha para que el segundo atómico fuera igual al segundo solar promedio en el año de su introducción. Actualmente, más de 50 laboratorios en el mundo tienen relojes de cesio 133. En forma periódica, cada laboratorio le indica a la oficina internacional de la hora en París (BlH) el número de marcas de su reloj. La oficina hace un promedio de estos números para producir el tiempo atómico internacional, que se abrevia TAI.

Page 13: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Historia de las referencias de tiempo Aunque TAl es muy estable y disponible para todos los que quieran comprarse un reloj de cesio, existe un serio problema con él; 86400 segundos TAl son ahora cerca de 3 milisegundos menos que un día solar medio (puesto que este día solar promedio es cada vez más grande).El uso de TAl para el registro del tiempo significaría que, con el paso de los años, el mediodía sería cada vez más temprano, hasta llegar al momento en que el mediodía ocurriría en la mañana.

La BIH resolvió el problema mediante la introducción de segundos de salto, siempre que la discrepancia entre TAl y el tiempo solar creciera hasta 800 miliseg. Esta corrección da lugar a un sistema de tiempo basado en los segundos constantes TAl, pero que permanece en fase con el movimiento aparente del Sol. Se le llama tiempo coordinado universal, UTC, el cual es la base de todo el sistema de mantenimiento moderno de la hora. El número total de segundos de salto introducidos en UTC basta ahora es cercano a 30.

Page 14: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Algoritmos para la sincronización de relojes

Algoritmo de  Cristian:

Consiste en un servidor conectado a una fuente de UTC y unos clientes que se sincronizan con dicho servidor. Su funcionamiento es el siguiente:

• Un proceso hace una petición de tiempo al servidor en un mensaje A.

• El servidor responde con un mensaje B en el que incluye su tiempo T-UTC actual.

• El proceso que recibe el mensaje B actualiza su reloj con el tiempo recibido, pero hay que considerar el error cometido pues se ha requerido un tiempo para la transmisión del mensaje desde el servidor.

Page 15: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Algoritmos para la sincronización de relojes

Algoritmo de  Cristian:

Para corregir el error se mide el tiempo que se tarda en recibir la respuesta, desde que se envía el mensaje de petición A. Ese tiempo se conoce como tiempo de viaje (T-viaje). El tiempo estimado de propagación, en ausencia de otra información, será T-viaje/2 por lo que el cliente sincroniza su reloj a T-UTC + T-viaje/2.

Page 16: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Algoritmos para la sincronización de relojes

Algoritmo de  Cristian:

Page 17: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Algoritmos para la sincronización de relojes

Algoritmo de Berkeley:

En el algoritmo de Cristian, el servidor de tiempo es pasivo. Otras máquinas le piden el tiempo de manera periódica y todo lo que hace es responder a sus solicitudes. En el algoritmo de Berkeley, se sigue el método opuesto. En este caso, el servidor del tiempo (en realidad, un demonio para el tiempo) está activo y realiza un muestreo periódico de todas las máquinas para preguntarles el tiempo. El proceso es el siguiente:

• El demonio del tiempo envía un mensaje con su hora actual a todas las máquinas del sistema, incluyendo su misma maquina.

• Las máquinas responden enviando la diferencia de su reloj con la hora recibida.

• El demonio del calcula un tiempo promedio y le indica a todas las demás máquinas que avancen su reloj a la nueva hora o que disminuyan la velocidad del mismo hasta lograr cierta reducción específica.

Page 18: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Algoritmos para la sincronización de relojes

Algoritmo de Berkeley:

Page 19: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Algoritmos para la sincronización de relojes

Algoritmo de Promedios:

Los anteriores son algoritmos centralizados. Una clase de algoritmos descentralizados divide el tiempo en intervalos de re-sincronización de longitud fija:

• El i -ésimo intervalo:

• Inicia en T0 + i*R y va hasta T0 + (i + 1)*R.

• T0 es un momento ya acordado en el pasado.

• R es un parámetro del sistema.

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. Una mejora al algoritmo considera la corrección por tiempos de propagación.

Page 20: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

NTP (Network Time Protocol)

Es un protocolo de Internet para sincronizar los relojes de los sistemas informáticos a través del enrutamiento de paquetes en redes con latencia variable. NTP utiliza UDP como su capa de transporte, usando el puerto 123. Está diseñado para resistir los efectos de la latencia variable.

NTP utiliza el Algoritmo de Marzullo con la escala de tiempo UTC, incluyendo soporte para características como segundos intercalares. NTPv4 puede mantenerse sincronizado con una diferencia máxima de 10 milisegundos (1/100 seg) a través de Internet, y puede llegar a acercarse hasta 200 microsegundos (1/5000 seg) o más en redes de área local sobre condiciones ideales.

Page 21: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

NTP (Network Time Protocol)

● Algoritmo de Marzullo:– Se trata de encontrar un intervalo de tiempo que tenga el máximo número

de solapamientos con las respuestas de los servidores.● Inicializar: Mejor=0, Contador=0● Recorrer la figura de izquierda a derecha.● Cada vez que se abre o cierra un intervalohacer: – Sumar 1 a Contador

si se abre, restar 1 si se cierra.– Si Contador>Mejor ● Izquierda=punto actual● Derecha=punto siguiente (abra o cierre)● Mejor=Contador ● Resultado: – Intervalo solución: [Izquierda, Derecha]● Solapamientos conseguidos: Mejor

Page 22: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

NTP (Network Time Protocol)

Page 23: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

NTP (Network Time Protocol)

NTP es uno de los protocolos de internet más viejos que siguen en uso (desde antes de 1985). NTP fue diseñado originalmente por David L. Mills de la Universidad de Delaware, el cual lo sigue manteniendo, en conjunto con un equipo de voluntarios. El demonio NTP de Unix es un proceso de nivel de usuario que se ejecuta continuamente en la máquina que soporta NTP, y la mayor parte del protocolo está implementado en este proceso de usuario.

NTP utiliza un sistema de jerarquía de estratos de reloj, como se muestra en la figura:

Page 24: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

NTP (Network Time Protocol)

Page 25: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

NTP (Network Time Protocol)

En donde los sistemas de estrato 1 están sincronizados con un reloj externo tal como un reloj atómico. Los sistemas de estrato 2 de NTP derivan su tiempo de uno ó más de los sistemas de estrato 1, y así consecutivamente.

Hay una forma menos compleja de NTP que no requiere almacenar la información respecto a las comunicaciones previas que se conoce como Protocolo Simple de Tiempo de Red' ó SNTP. Ha ganado popularidad en dispositivos incrustados y en aplicaciones en las que no se necesita una gran precisión.

Page 26: Sincronización de relojes - LDC Noticias - Universidad ...yudith/docencia/ci-4821/Temas/Sincronizacionde... · absoluta ya que si dos procesos no interactúan no es necesario que

Bibliografía

● http://www.atc.uniovi.es/inf_superior/atc/DISTRIBUIDAS/05-L11-Sincronizacion.pdf

● Andrew Tanenbaum & Maarten van Steen "Distributed Systems Principles and Paradigms". Prentice-Hall. Segunda Edición, 2008.

● Mills, David L. (2005), NTP Clock Discipline Modelling and Analysis.