Relojes Logicos de Lamport y Ejemplo
Relojes Logicos de Lamport y Ejemplo
Relojes Logicos de Lamport y Ejemplo
Introducción:
Las computadoras poseen un circuito para el registro del tiempo conocido como
dispositivo “reloj”. Es un cronómetro consistente en un cristal de cuarzo de precisión
que cuando es sometido a una tensión eléctrica, oscila con frecuencia bien definida. A
cada cristal se le asocian dos registros, un contador y un registro mantenedor. Cada
oscilación del cristal disminuye en 1 a contador, cuando el contador toma el valor 0, se
genera una interrupción y el contador se vuelve a cargar mediante el registro
mantenedor. De esta forma, es posible programar un cronómetro de modo que genere
una interrupción 60 veces por segundo o con cualquier frecuencia que se desee. Cada
interrupción recibe el nombre de marca de reloj.
La sincronización de relojes está relacionada con el tiempo real. Pero también cada
nodo coincida con un tiempo actual sin importar el tiempo real. Por ejemplo, para
ejecutar make, debe ser adecuado que dos nodos acuerden que input.o sea
actualizado por una versión de input.c. (dar seguimientos a los otros eventos de cada
uno). Para lograr esto existen varios métodos o algoritmos que se programan dentro
del sistema operativo, entre los cuales tenemos
Leslie Lamport (1978) apunta a que la sincronización no necesita ser absoluta: Si dos
procesos no interactúan, no es necesario que sus relojes están sincronizados. Señaló
que lo más importante es que todos los procesos coincidan en el orden que ocurren
los eventos. El Algoritmo de Lamport sincroniza los relojes lógicos.
Definición:
Contenido:
Algoritmo de Lamport:
Fue el primer algoritmo propuesto para lograr la exclusión mutua en redes cuyos
nodos se comuniquen solamente mediante mensajes y que no comparten memoria.
Fue propuesto por Lamport en 1978. Lamport inventó un mecanismo simple con el
cual la relación sucedió antes pueda capturarse numéricamente, denominado reloj
Para sincronizar los relojes lógicos, Lamport definió la relación ocurre antes de
(ocurrencia anterior).
La expresión a → b se lee como “a ocurre antes que b”, y significa que primero ocurre
el evento “a” y luego ocurre el evento “b”. La relación puede observarse en dos
situaciones:
Asociar una marca de tiempo (timestamp) a todos los sucesos que se pueden ordenar
mediante relaciones “sucede antes que”
Se necesita una manera de medir el tiempo en un evento “a” por lo que se le asigna un
valor de tiempo C(a) en el que todos los procesos coincidan. Estos valores también
tienen las propiedades que establecimos en el principio y, además:
Las tareas para llevar a cabo en cada computadora son relativamente sencillas,
aunque afectan, en cierta manera, la forma en que se procesan los mensajes:
Debido a que m3 salió en el 60, debe llegar en el 61 o después. Por tanto, cada
mensaje lleva el tiempo de envío de acuerdo con el reloj del remitente. Cuando un
mensaje llega y el reloj del destinatario muestra un valor anterior al tiempo en que el
mensaje fue enviado, el destinatario rápidamente adelanta su reloj para estar una
unidad adelante del tiempo de envío. En la figura 6-9(b) observamos que m3 ahora
llega en el 61. De manera similar, m4 llega en el 70.
Por ejemplo, un evento en el tiempo 40 del proceso Pi será registrado como 40.i.
Observe que al asignar el tiempo del evento C(a) ← Ci(a) si a ocurrió en el proceso Pi
al tiempo Ci(a), tenemos una implementación distribuida del valor de tiempo global que
originalmente buscábamos.
Es una situación donde la base de datos se ha replicado a través de varios sitios. Para
mejorar el rendimiento de las consultas, un banco puede colocar copias de una base
de datos contable en dos ciudades diferentes, Nueva York y San Francisco. Una
consulta siempre se reenvía a la copia más cercana. El precio de una respuesta rápida
a una consulta es el de altos costos de actualización, debido a que cada operación de
actualización debe realizarse en cada réplica.
De hecho, hay un requerimiento más estricto con respecto a las actualizaciones. Por
ejemplo, un cliente en San Francisco desea agregar $100 a su cuenta, la cual
actualmente contiene $1000. Al mismo tiempo, en Nueva York un empleado del banco
inicia una actualización mediante la cual la cuenta del cliente se verá incrementada
con el 1% de interés. Ambas actualizaciones deben realizarse en ambas copias de la
base de datos. Sin embargo, debido a los retrasos en la comunicación de la red
subyacente, las actualizaciones pueden llegar en el orden que muestra la figura.
Cuando un proceso recibe un mensaje, éste se coloca en una cola local, y se ordena
de acuerdo con su registro de tiempo. El destinatario transmite un acuse de recibo a
los otros procesos. Observe que, si seguimos el algoritmo de Lamport para ajustar los
relojes locales, el registro de tiempo del mensaje recibido es menor que el registro de
tiempo del acuse. El aspecto interesante de este método es que todos los procesos
tienen, en algún momento, la misma copia de la cola local (debido a que ningún
mensaje es eliminado).
Aplicación
En la vida real, hay muchas entidades públicas y privadas que utilizan la atención
mediante tickets y es que cuando las personas entran al lugar obtienen un numero de
turno, con el cual se le atiende en su orden de llegada respectivamente.
El sistema mantiene un número (variable global) que refleja el número de turno del
cliente que se está atendiendo en el instante actual. Los clientes deben esperar en una
cola hasta que llega su turno. Una vez que se termine con un cliente, la variable global
se incrementa en uno y el cliente que tenga un boleto con ese número pasa a ser
atendido. Cuando termina una compra, el cliente se desprende de su boleto por lo que
ya no sirve.
El servidor entrega un número a cada hilo que desea acceder a este y les atiende de
uno en uno por orden de llegada. Una vez que toca le toca su turno, el proceso ingresa
a su etapa crítica y después de realizada esta, el servidor le libera y atiende al
siguiente proceso.
Ventajas
Reloj lógico totalmente ordenado: Se crea un orden, uno para el que todos los
pares de sucesos distintos están ordenados, teniendo en cuenta los
Desventajas
Conclusiones
Bibliografía
http://www.academia.edu/21420808/SISTEMAS_DISTRIBUIDOS_SISTEMAS_DISTRI
BUIDOS_Principios_y_Paradigmas