Un reloj lógico es un mecanismo para capturar relaciones cronológicas y causales en un sistema distribuido . A menudo, los sistemas distribuidos pueden no tener un reloj global físicamente síncrono. En muchas aplicaciones (como GNU make distribuido ), si dos procesos nunca interactúan, la falta de sincronización es inobservable y en estas aplicaciones es suficiente que los procesos se pongan de acuerdo en el orden de los eventos (es decir, el reloj lógico) en lugar del tiempo real. [ 1 ] La idea de los relojes lógicos se debe a Leslie Lamport , quien la introdujo en 1978 con su sistema de marcas de tiempo .
Hora local frente a hora global
En los sistemas de reloj lógico, cada proceso tiene dos estructuras de datos: tiempo local lógico y tiempo global lógico . El tiempo local lógico es utilizado por el proceso para marcar sus propios eventos, y el tiempo global lógico es la información local sobre el tiempo global. Se utiliza un protocolo especial para actualizar el tiempo local lógico después de cada evento local, y el tiempo global lógico cuando los procesos intercambian datos. [ 2 ]
Aplicaciones
Los relojes lógicos son útiles en el análisis computacional, el diseño de algoritmos distribuidos, el seguimiento de eventos individuales y la exploración del progreso computacional.
Algoritmos
Algunos algoritmos de reloj lógico destacables son:
- Las marcas de tiempo de Lamport son contadores de software que aumentan monótonamente.
- Relojes vectoriales , que permiten la ordenación parcial de eventos en un sistema distribuido.
- Vectores de versión , réplicas de orden, según las actualizaciones, en un sistema replicado optimista .
- Los relojes matriciales son una extensión de los relojes vectoriales que también contienen información sobre la visión que otros procesos tienen del sistema.
Referencias
- ↑ "Sistemas distribuidos, 3.ª edición (2017)" . DISTRIBUTED-SYSTEMS.NET . Archivado del original el 12 de agosto de 2020. Consultado el 20 de marzo de 2021 .
- ↑ Capítulo 3: Tiempo lógico Archivado el 23/09/2015 en Wayback Machine // Ajay Kshemkalyani y Mukesh Singhal, Computación distribuida: principios, algoritmos y sistemas, Cambridge University Press, 2008
Enlaces externos
- Tiempo Lógico del Sistema Distribuido // Roberto Baldoni, Silvia Bonomi. MIDLAB, Universidad La Sapienza de Roma
- Capítulo 3: Tiempo lógico // Ajay Kshemkalyani y Mukesh Singhal, Computación distribuida: principios, algoritmos y sistemas, Cambridge University Press, 2008
- Sistemas distribuidos 06. Relojes lógicos // Paul Krzyzanowski, Universidad de Rutgers, otoño de 2014
- Algoritmos de reloj lógico
- Causalidad
- Algoritmos distribuidos