Está en la página 1de 9

UNIVERSIDAD NACIONAL AMAZÓNICA DE MADRE DE DIOS

FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E
INFORMÁTICA

“ALGORITMOS PARA LA SINCRONIZACIÓN DE RELOJES”


CURSO: SISTEMAS DISTRIBUIDOS
Alumnos: Naomi Odagawa Aragón
David Huaricancha Abad
Pedro Molero Velásquez

Docente: Jair Ferreiros Yucra

Puerto Maldonado, Enero del 2022.


Contenido
Algoritmos para la sincronización de Relojes.........................................................................1
Algoritmos Centralizados..................................................................................................2
 Algoritmo de Cristian..............................................................................................2
 Algoritmo de Berkeley............................................................................................3
 Algoritmo de Lamport............................................................................................4
 Uso de la Sincronización.........................................................................................5
Algoritmos Distribuidos.....................................................................................................5
 Algoritmos con promedio.......................................................................................5
 Exclusión mutua.....................................................................................................6
Conclusión.........................................................................................................................7
Algoritmos para la sincronización de Relojes

La sincronización de procesos de los sistemas distribuidos resulta más compleja que los
centralizados, debido a que la información y el procesamiento se mantienen en nodos.
Un sistema distribuido debe mantener vistas parciales y consistentes de todos los
procesos cooperativos y de cómputo. Tales vistas pueden ser provistas por los
mecanismos de sincronización.
Para la sincronización de relojes existen dos posibilidades:

 De forma centralizada.
 De forma distribuida.
Para ello también se puede diferenciar a los Sistemas Distribuidos con receptores UTC
(Tiempo Coordenado Universal), donde todas las maquinas deben sincronizarse a este,
de los Sistemas Distribuidos sin receptores UTC, donde cada máquina debe tener el
registro de su propia hora y mantener esa hora lo más cerca posible de las otras
máquinas.
En forma general una maquina posee un cronómetro que provoca una interrupción
“h” veces por segundo, cuando se detiene el manejador de interrupciones agrega “1” a
un reloj en software, este reloj mantiene un registro del número de interrupciones a
partir de una fecha antes acordada, al valor de este reloj se llama “C”.
Si el tiempo UTC es “t”, el valor del reloj de la maquina “p” es “Cp(t)”
Algoritmos Centralizados
 Algoritmo de Cristian
El Algoritmo de Cristian propone realizar la sincronización de los relojes de múltiples
máquinas utilizando una máquina externa que cuente con un reloj más preciso,
posiblemente sincronizado otros aún más precisos. Partimos de un sistema distribuido
con varios nodos i, cada uno de ellos cuenta con un reloj local Ci. En cualquier instante
t se cumple para todos los nodos Ci(t) = t, es decir, todos los relojes locales tienen la
misma hora y coinciden con la hora “verdadera”. El algoritmo de Cristian sirve para
sincronizar el reloj local de un ordenador cliente (CC) con el reloj local de un ordenador
servidor (CS).
El servidor de tiempo es pasivo y pide sincronización a las maquinas receptoras a su
hora.
La hora se asigna de forma global según el numero de interrupciones que arroje el
cronometro.
 Algoritmo de Berkeley
En el algoritmo de Berkeley, se procede a elegir un coordinador el cual tendrá el rol de
maestro o lo que será lo mismo de servidor de tiempo. El coordinador en este
algoritmo en diferencia con otros algoritmos de sincronización como es el caso del
algoritmo de Cristian, no se mantendrá pasivo, se encargará de solicitar la hora del
resto de equipos, los cuales tienen un rol de esclavos, dicha solicitud de hora se
realizará de una forma periódica.
Una vez los esclavos hayan respondido con su hora local, el maestro realiza una
estimación media de los retardos con los tiempos recibidos en los mensajes con cada
uno de los equipos esclavos, obteniendo así un tiempo medio que relaciona las horas
recibidas durante la solicitud y la hora propia del maestro.
La máquina que asume el papel de servidor es activa y envía un mensaje indicando su
hora y solicitando la hora de las maquinas clientes.
De la respuesta del mensaje se obtiene un promedio y de ahí se le impone la hora a las
maquinas clientes.
 Algoritmo de Lamport
En un Sistema Distribuido no es posible sincronizar en la práctica a través de procesos
en el sistema, por lo tanto, dichos procesos utilizan un reloj lógico basado en eventos
para comunicarse. Si dos procesos no intercambian mensajes, entonces no necesitan
un reloj común, los eventos que ocurren en estos procesos se denominan eventos
concurrentes.
Los procesos de la misma máquina se pueden ordenar basándose en el reloj del
sistema. Cuando dos procesos se comunican mediante el envío de un mensaje, se
puede decir que el evento que realiza el envío ocurre antes que el evento de
recepción. Se debe establecer un orden lógico entre los eventos
Se dice que un Sistema Distribuido tiene un orden parcial si existe una relación de
orden parcial entre los eventos de dicho sistema. Si se puede establecer una relación
causal entre todos los eventos del sistema, entonces se dice que el sistema tiene un
orden total.
Dos eventos del mismo proceso no pueden ocurrir simultáneamente. Si el sistema
tiene un orden total, podemos determinar el orden entre todos los eventos del
sistema. Si el sistema tiene un orden parcial entre los procesos, que es el orden que
proporciona el reloj lógico de Lamport, entonces solo podremos determinar el orden
entre los procesos que interactúan. Lamport trató la ordenación de dos eventos con la
misma marca de tiempo. De este modo, dos marcas de tiempo pueden ser iguales en
un Sistema Distribuido, pero si aplicamos el algoritmo del reloj lógico los eventos
ocurrirán manteniendo un orden parcial estricto.

 Uso de la Sincronización
En general la sincronización en procesos distribuidos tiene muchas aplicaciones,
especialmente en aplicaciones en tiempo real, simulación, líneas de producción,
sistemas de tramites complejos, etc.
Esto se define en un ámbito particular de aplicaciones necesariamente caen en el
concepto de aplicaciones en tiempo real, pero esto no es tan estricto, ya que la
sincronización puede trabajar a otra escala.

Algoritmos Distribuidos
 Algoritmos con promedio
Se basa en dividir el tiempo en intervalos de resincronización de longitud fija.
El i-ésimo intervalo:
Inicia en “T0 + iR” y va hasta “T0 + (i+1)R” donde:
“T0“es un momento ya acordado en el pasado.
“R” es un parámetro de sistema.
Al iniciar cada intervalo cada máquina del sistema transmite el tiempo actual según su
reloj, debido a que cada máquina trabaja con relojes de diferente velocidad las
transmisiones no son simultánea.
Después de transmitir el tiempo, la máquina inicializa un cronómetro local para reunir
las transmisiones de las demás máquinas que lleguen en cierto intervalo “S”.
Cuando se reciben todas las transmisiones se ejecuta un algoritmo para calcular la
nueva hora para los relojes. Una variante de este algoritmo es promedia los valores de
todas las demás máquinas. Otra variante es eliminar los extremos ya sea el estrecho
mayo y el estrecho menor.

 Exclusión mutua
La exclusión mutua es cuando un proceso entra en una región crítica, esto se hace
cuando un proceso necesita leer o actualizar una estructura de datos compartida y
requiere impedir que otro proceso utilice dicha estructura. A diferencia de los sistemas
mono-procesadores la exclusión mutua se hace de forma más compleja.
Conclusión
Un sistema distribuido comparte recursos tales como aplicaciones, sistemas de
información, entre otros de forma tal que permita distribución del uso de
componentes hardware o software entre todos o parte de los componentes de la red.
Cuando en un sistema distribuido existe un acceso recurrente de usuarios afecta
directamente el uso de recursos lo cual implica eficiencia en la escalabilidad ofreciendo
las mismas funcionalidades con la mínima perdida de características de uso.
Las ventajas principales de utilizar sistemas distribuidos es la de poder acceder a un sin
numero de recursos de los sistemas sin extralimitar el uso interno de cada estación o
terminal.

También podría gustarte