El sistema distribuido es una colección de computadoras conectadas a través de la red de comunicación de alta velocidad. En el sistema distribuido, los componentes de hardware y software se comunican y coordinan sus acciones mediante el paso de mensajes. Cada Node en los sistemas distribuidos puede compartir sus recursos con otros Nodes. Por lo tanto, existe la necesidad de una asignación adecuada de recursos para preservar el estado de los recursos y ayudar a coordinar entre los diversos procesos. Para resolver tales conflictos, se utiliza la sincronización. La sincronización en los sistemas distribuidos se logra a través de relojes.
Los relojes físicos se utilizan para ajustar la hora de los Nodes. Cada Node del sistema puede compartir su hora local con otros Nodes del sistema. La hora se establece en base a UTC (Universal Time Coordination). UTC se utiliza como reloj de tiempo de referencia para los Nodes del sistema.
La sincronización del reloj se puede lograr de 2 maneras: Sincronización de reloj externa e interna.
- La sincronización de reloj externo es aquella en la que está presente un reloj de referencia externo. Se utiliza como referencia y los Nodes del sistema pueden establecer y ajustar su tiempo en consecuencia.
- La sincronización del reloj interno es aquella en la que cada Node comparte su tiempo con otros Nodes y todos los Nodes configuran y ajustan sus tiempos en consecuencia.
Existen 2 tipos de algoritmos de sincronización de relojes: Centralizados y Distribuidos.
- Centralizado es aquel en el que se utiliza como referencia un servidor horario. El servidor de tiempo único propaga su tiempo a los Nodes y todos los Nodes ajustan el tiempo en consecuencia. Depende de un solo servidor de tiempo, por lo que si ese Node falla, todo el sistema perderá la sincronización. Ejemplos de centralizados son: algoritmo de Berkeley, servidor de tiempo pasivo, servidor de tiempo activo, etc.
- Distribuido es aquel en el que no hay un servidor de tiempo centralizado presente. En cambio, los Nodes ajustan su tiempo usando su hora local y luego, tomando el promedio de las diferencias de tiempo con otros Nodes. Los algoritmos distribuidos superan el problema de los algoritmos centralizados como la escalabilidad y la falla de un solo punto. Ejemplos de algoritmos distribuidos son: algoritmo de promedio global, algoritmo de promedio localizado, NTP (protocolo de tiempo de red), etc.
Publicación traducida automáticamente
Artículo escrito por Maleeha_Yasvi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA