Sei sulla pagina 1di 5

Algortimos de Sincronizacion

aplicados a relojes en Sistemas Distribuidos

Daniel Corzo, Juan Pablo Duque, Stefania Garzon, Diego Aguilar, Marilyn Ruiz.
Universidad Católica de Colombia.
decorzo73@ucatolica.edu.co, jpduque86@ucatolica.edu.co, tsgarzon15@ucatolica.edu.co,
dfaguilar24@ucatolica.edu.com, druiz52@ucatolica.edu.co

Abstract. Algorithms are defined as processes that were executed in an orderly manner and with a
chronological time within a team, these allowed processes to be carried out periodically in all the
components that work within the system. In the last decade different points of view have been seen, the
comparison to the synchronization of the algorithms, from the point of view of balanced communication,
to advance the times in the clocks and adjust with synchronization for the rest of the components. The
concepts of signaling, CTU or central time reference, physical clocks, deviation, time, are concepts that
should be clear when venturing into synchronization algorithms.

Keywords: synchronization, logical clocks, physical clocks, memory management, threading, process,
LAN,

1 Introduction probability of synchronization, indicating if the time


is sufficient, short with the maximum precision. This
An example of synchronization algorithm are the algorithm advances in its connection with CTU that
computer clocks that make balanced communication will be a unique guide to obtain a signal in
possible and an order in the relation between synchrony. This linking that must be measured the
components, it is like a mechanism, a network with time it takes to get the message to the receiver,
the control of the actions that must be followed and through the ease of creating a cycle of sending and
taking the chronological times which takes every receiving.
action. At the beginning measure the time between
the clocks of the computers and get synchrony in the 2 Estado del arte
communication of components, this indicating that
Con la implementación de los sistemas centralizados,
they know the only language between them,
estos procesan en una localización central, usando
maintaining the integrity of the information and using
terminales conectados a una computadora central. Es
protocols to achieve the complete synchronization of
decir, la computadora en sí misma puede controlar
the process between components.
todos los periféricos directamente, o pueden ser
Several researchers implemented their own algorithm conectados vía un servidor de terminal. Si los
and studied what can happen between the relationship terminales tienen la capacidad, pueden ser conectados
between the messages sent and the time it takes to con la computadora central sobre la red, los
respond in relation to another component, terminales pueden ser terminales de texto o clientes
establishing algorithms of logical clocks, where there ligeros. Entonces surge la necesidad de interconectar
will always be an order in the relation of sending or los equipos, y se desarrollaron las redes de área local
receiving messages, solving characteristics of (LAN), como Ethernet. En la actualidad, Internet es
chronological, coordination, or the periodicity and la red de mayor tamaño y la más usada, gracias a esta
synchronism that take when processing your signal. se pueden prestar diversos servicios a los usuarios de
la red.
Others for example related the internal
synchronization, in which they could place many Aunque los actuales sistemas en red solucionan parte
clocks regardless of the time, but internally all are in de las necesidades actuales de comunicación entre
the same group of hours, this is known as the computadoras, tienen importantes limitaciones, y no
permiten desarrollar gran cantidad de aplicaciones, Es imposible garantizar que los cristales de
principalmente aquellas que por sus características, computadoras distintas oscilen con la misma
requieren estar disponibles de forma ininterrumpida. frecuencia.
Es en estos casos dónde los sistemas distribuidos se
Habrá una pérdida de sincronía en los relojes (de
incorporan, además, que ofrece tolerancia a fallos.
software), es decir que tendrán valores distintos al ser
El proceso es el concepto básico para expresar leidos. Procesos concurrentes con estructuras de
concurrencia, tanto en un sistema centralizado como datos compartidas generan problemas de
en uno distribuido. Con la introducción de los sincronización de procesos.
procesos se permite dividir el software en módulos,
cada uno de los cuales expresa una actividad
lógicamente concurrente con el resto. Relojes de HW y SW
La diferencia más importante entre un sistema
distribuido y uno centralizado es precisamente cómo
Relojes de HW Constan de un oscilador electrónico,
se realiza la comunicación entre procesos. En un
estabilizado por lo general con un cristal de cuarzo y
sistema centralizado, las interacciones entre procesos
se hacen sobre memoria compartida, [9] mientras que un contador de ciclos
en un sistema distribuido se necesita intercambio de Relojes SW son dispositivos derivados a partir de los
mensajes. de HW, a través de operaciones matemáticas sobre
los datos suministrados por los mismos, tomando
3 Marco Teórico como referencia una o más señales emitidas por los
Algoritmos de Sincronización relojes de HW.

La sincronización en sistemas distribuidos consiste en


garantizar que los procesos se ejecuten en forma 3.1 Tipos de Algoritmos de Sincronización
cronológica y a la misma vez respetar el orden de los
eventos dentro del sistema. En el caso de sistemas de 3.1.1 Algoritmo de Cristian
una sola CPU, este problema se resuelve usando Este algoritmo está pensado para entornos donde un
semáforos, pero en sistemas de múltiples CPUs la computador hace el trabajo de servidor de tiempo,
solución ya implica el uso de otros métodos o sincronizándose con la hora UTC y el resto de las
algoritmos, para garantizar no solo la comunicación estaciones quieren sincronizarse con él.
entre procesos sino también la forma como estos Periódicamente, cada computador cliente envía un
cooperan entre sí. mensaje al Servidor de Tiempo solicitando la hora
Esta sincronización, en sistemas distribuidos, se hace actual. El Servidor de Tiempo envía un mensaje que
más compleja que en los sistemas centralizados contiene la hora actual TUTC. Cuando se recibe el
puesto que la información y el procesamiento se mensaje, el computador debe ajustar su reloj. Ahora
mantienen en diferentes nodos. La sincronización de se debe considerar el error cometido, ya se que tomó
relojes en sistemas distribuidos nos permite un tiempo en la transmisión del mensaje con la hora
garantizar que los procesos se ejecutan UTC desde el servidor hasta el computador cliente,
cronológicamente y además respetar el orden de los siendo éste un retardo variable, dependiendo de la
eventos dentro del sistema. demora en la red. El cálculo del retraso mide el
tiempo que se tarda en recibir la respuesta desde que
Las computadoras poseen un circuito para el registro se envía el mensaje de petición, para ello se anota la
del tiempo conocido como dispositivo reloj. Es un hora de envío TE y de recepción TR. En ausencia de
cronómetro consistente en un cristal de cuarzo de otra información, el tiempo estimado de propagación
precisión sometido a una tensión eléctrica. del mensaje será:
Para una computadora y un reloj no interesan (TR - TE) / 2
pequeños desfasajes del reloj porque:
Así, cuando el computador cliente recibe el mensaje
Todos los procesos de la máquina usan el mismo con la hora actual, tiene que añadirle el retardo
reloj y tendrán consistencia interna. calculado. La duración estimada del retardo puede
Importan los tiempos relativos. mejorarse si se sabe lo que tarda el servidor de
tiempo en tratar la interrupción que genera la llegada
Para varias computadoras con sus respectivos relojes: del mensaje y atender la petición. Si a este tiempo lo
llamamos I, el tiempo estimado de propagación del 3.1.3 Algoritmos Distribuidos
mensaje será:
(TR – TE - I) / 2
En este algoritmo, todos los equipos conectados al
Tenemos un problema, el que se presenta en todos los sistema deben sincronizarse cada cierto intervalo de
servicios ofrecidos por un único servidor: la tiempo I, de tal manera que el enésimo intervalo o
posibilidad de fallo. Cristian sugiere que la hora debe momento de sincronización tiene lugar en el
ser suministrada por varios servidores de tiempo momento:
sincronizados mediante receptores de tiempo UTC; el
cliente envía su petición a todos los servidores y toma
la primera respuesta recibida. T0 + n · I

Este algoritmo no contempla problemas de fraude o Donde T0 es el momento en el que los equipos
malfuncionamiento por parte del servidor. Hay comienzan a sincronizarse tras su arranque.
algoritmos (Marzullo [1984]) para distinguir los
servidores válidos de los que funcionan mal o son
impostores. Cada nodo debe conocer cuál es el tiempo de
propagación del mensaje desde cada origen a cada
3.1.2 Algoritmo de Berkeley
destino, para lo cual debe conocerse bien la topología
El algoritmo de Berkeley (Gusella y Zatti [1989]) de la red, o calcularlo mediante mensajes que se
está diseñado para entornos en los que no hay ningún envían y se devuelven para calcular simplemente el
receptor de tiempo UTC y el único objetivo es que tiempo de propagación.
todos los computadores se mantengan sincronizados
con una misma hora. Entre todos los equipos del
sistema distribuido eligen un coordinador que hará el En cada intervalo, cada computador envía un mensaje
rol de maestro o Servidor de Tiempo. En este caso el a todo el grupo, incluido él mismo, indicando su hora
coordinador elegido pregunta la hora, periódicamente local. Como todos los relojes son distintos y la
al resto de las estaciones. Cuando las estaciones velocidad es diferente, la difusión no se produce
responden, cada una con su hora local, el coordinador exactamente de una manera simultánea. Para cada
estima los retardos de propagación de los mensajes uno de los mensajes que se recibe, sabiendo el tiempo
con cada uno de las estaciones y calcula un tiempo de propagación desde su nodo y comparando con la
promedio con las horas recibidas y la suya propia. hora local, se calcula la desviación propia respecto
Queda por actualizar los relojes de las estaciones. al nodo del mensaje recibido. Cuando un computador
ha enviado el mensaje de difusión de su hora,
Ahora el coordinador, no envía la hora coordinada
porque introduciría un cierto error debido al tiempo arranca un temporizador y se pone a esperar los
de transmisión, sino que envía a cada uno el desfase mensajes de difusión del resto de los equipos, los
cuales deberán llegar dentro de un cierto intervalo de
que tiene con la hora promedio calculada. Recibido
tiempo. Cuando han llegado todos los mensajes del
este desfase, cada equipo actualiza su reloj.
resto de las computadores ó ha vencido la
Aunque no se está teniendo en cuenta el tiempo de temporización, se calcula el valor medio de las
propagación en el envío del mensaje desde la estación desviaciones y se ajusta el tiempo local.
al coordinador, no importa, pues lo que se quiere
calcular es la hora promedio de entre las recibidas de
todas las estaciones. El algoritmo realiza un Como todos los nodos reciben el mismo conjunto de
“promedio tolerante a fallos” con los tiempos mensajes, después de cada sincronización todos
recibidos de las estaciones, es decir, que considera deben tener la misma hora. Pueden descartarse los
solamente el subconjunto de relojes que no difieren valores más extremos recibidos, por suponer que
entre sí más de una cierta cantidad, considerando que puedan deberse a relojes que están fallando o
los demás no están funcionando bien. mintiendo.
Si el coordinador falla (no pregunta, no envía
modificaciones de tiempos, o éstas son “demasiado
extrañas”), simplemente se elige otro coordinador. 3.1.4 Relojes Lógicos
No es fácil, sincronizar múltiples relojes distribuidos Lo que se necesita entonces, es una forma de
para mantener una única hora estándar con la medir el tiempo tal que para todo evento a, se
suficiente precisión. le pueda asignar un valor de tiempo R(a) en el
que todos los procesos estén de acuerdo.
Lamport señaló que la sincronización de relojes no
necesita ser absoluta. Por una parte, si dos procesos Dichos valores deben tener la propiedad que si:
no interactúan, no tienen ninguna necesidad de que
a → b ⇒ R(a) < R(b).
sus relojes respectivos estén sincronizados, pues la
no interacción no requiere sincronización, ésta no Además, como ya sabemos, el reloj R siempre
será observable y no causará problemas. Por otra debe ir hacia delante, nunca hacia atrás.
parte, lo realmente importante es todos estén de
acuerdo sobre el orden en el que se suceden y
producen los eventos y no que todos los procesos Lamport inventó un mecanismo denominado reloj
estén sincronizados según una misma hora exacta lógico, el cual es un contador de software
monótono creciente, cuyo valor no requiere tener
ninguna relación concreta con ningún reloj físico.
Como ejemplo, podemos tener dos eventos, un En cada ordenador hay un reloj lógico R que se
ocurrido después del otro pero con diferencia en la utiliza para poner marcas de tiempo a los eventos que
hora local, lo significativo es saber cuál ocurrió se producen (stamp), tal que Rp(a) indica la marca de
primero, sin tener en cuenta la hora local, que puede tiempo del evento a en el proceso p.
estar desfasada.
Para algunos entornos en los que no se requiere una
sincronización exacta con una hora externa de Así, las dos situaciones en las que se observa la
referencia (tiempo UTC), en lugar de tratar con los relación “sucedió antes” se tratan de la siguiente
relojes físicos se trabaja con relojes lógicos, en los manera con los relojes lógicos:
que solamente tiene importancia el orden de los 1. Rp se incrementa en una unidad antes de que
eventos y no la medida del momento exacto en el se produzca cada evento en el proceso, es
que se producen. decir, Rp = Rp + 1
Para sincronizar relojes lógicos, Lamport definió 2. a) Cuando un proceso p envía un mensaje m,
la relación “sucedió antes”, según la cual, la se le pega al mensaje el valor t = Rp.
expresión a → b quiere decir “a sucedió antes que b) Cuando el proceso q recibe el mensaje
(m, t ), calcula Rq := max(Rq, t), y
b”, y significa que todos los procesos coinciden aplica el paso 1 antes de marcar el evento
en que primero sucedió el evento a y de recepción del mensaje (m,t).
posteriormente el evento b. Esta relación se observa
directamente en dos situaciones:
1. Si dos eventos se producen en el mismo 4 Conclusiones
proceso, tiene lugar en el orden que indica su
reloj común.
2. Cuando dos procesos se comunican mediante un La sincronización de procesos en ambientes
mensaje, el evento de enviarlo se produce siempre distribuidos es muy importante, ya que garantiza que
antes del evento de recibirlo. los eventos o marcas de tiempo ocurrirán y se
marcarán en el respectivo orden. Dependiendo del
Si dos eventos, x e y, se producen en procesos tipo de problema a solucionar, dependerá el algoritmo
diferentes que no intercambian mensajes (ni directa seleccionado para sincronizar. Existen muchos más
ni indirectamente), entonces no es cierto x → y, ni algoritmos que solucionan problemas de
y → x. En este caso se dice que tales eventos son sincronización, de los vistos en este artículo y cada
concurrentes, lo que significa que sencillamente no se uno merece más revisión y un estudio más detallado.
sabe nada y para el caso ni se necesita saber, sobre Comparar o decir cuál es mejor, no sería lo adecuado
cuál de ellos sucedió primero. porque cada uno puede aplicarse y solucionar un
problema específico.
Se debe observar que la relación “sucedió antes”
es transitiva, es decir, si a → b y b → c,
entonces a → c.
Apéndice I
En caso de ser necesario, los apéndices irán ubicados
después de las Conclusiones, y antes de los
Agradecimientos y las Referencias. Se numerarán
con números romanos, tal como en el título de esta
sección.

Agradecimientos
Si los hay, los agradecimientos deberán ubicarse al
final del trabajo, justo antes de las referencias. Esta
sección no llevará numeración.
Utilice el formato estándar de IEEE Computer o
Communications of the ACM para las referencias, es
decir, una lista numerada, ordenada alfabéticamente
por apellido del primer autor y referenciada en el
texto por un número entre corchetes (ejem., “[1]”).
Todas las referencias deben ser documentos
accesibles públicamente.
Finalmente, note que el título de esta sección no lleva
numeración. Considere el siguiente ejemplo:

Referencias
[1] Anderson, R.E. Social impacts of
computing: Codes of professional ethics. Social
Science Computing Review. Vol. 10, No. 2,
(Winter 1992), pp.453-469.
[2] Harmon, J.E. The Structure of Scientific and
Engineering Papers: A Historical Perspective.
IEEE Trans. On Professional Communication.
Vol 32, No. 2, (September, 1989), pp. 132-138.
[3] Pierson, M.M. and Pierson, B.L. Beginnings
and Endings: Keys to Better Engineering
Technical Writing. IEEE Trans. On
Professional Communication. Vol 40, No. 4,
(December, 1997), pp. 299-304.
[4] Strunk, W. and White, E.B. The Elements of
Style. Fourth Edition, Boston: Allyn and Bacon.
2000.