You are on page 1of 3

Estados Globales, algoritmo

de Chandy - Lamport
1 QU ES UN ESTADO GLOBAL?
El Estado Global puede definirse como el estado en que est el sistema
distribuido en su conjunto, son representados por cortes de estados donde se
representa cada proceso, dichos cortes deben ser consistentes, es decir, que si
un evento de recepcin de mensaje pertenece al corte, el evento de envo del
mismo mensaje tambin debe pertenecer al corte, esto se puede ejemplificar
con la siguiente imagen:

La figura (a) es un corte inconsistente porque el evento de P1 que le


enva el mensaje a d no pertenece al corte.
La figura (b) tiene dos cortes consistentes (slo se debe tomar en cuenta
uno a la vez), el primero es consistente debido a que el evento b enva un
mensaje y para efectos de consistencia de cortes se toma en cuenta es
que si el mensaje se recibe debe tener al emisor en el corte, pero si es
enviado en el corte no necesariamente debe estar el receptor en el
mismo; el segundo corte es consistente, d es un evento de recepcin de
mensajes y el evento emisor del mismo (que sera b) tambin est en el
corte.
Cada estado global es correspondido por un corte.

2 CUL ES SU UTILIDAD?
La principal utilidad de la determinacin de los estados globales sera
depurar errores (por ejemplo de consistencia), detectar interbloqueos o
determinar la terminacin de un conjunto de procesos.

3 ALGORITMO DE CHANDY - LAMPORT


El algoritmo de snapshots o instantneas propuesto por Chandy y
Lamport en 1985, construye un estado global a iniciativa de un proceso
cualquiera (el cual se denomina iniciador).
Se basa en una cantidad de suposiciones, nombradas a continuacin:

Existe un canal de comunicacin FIFO unidireccional entre toda


pareja de procesos emisor-receptor.
Ni los procesos ni los canales fallan durante la ejecucin del
algoritmo.
Cualquier proceso puede iniciar el algoritmo en cualquier momento.
Los procesos pueden seguir enviando y recibiendo mensajes de
aplicacin durante la ejecucin del algoritmo.

Adems de su mismo estado, cada proceso construye el estado de sus


canales de recepcin, los cuales se definen por los mensajes enviados
por un proceso y recibidos por otro cualquiera.
El algoritmo usa un mensaje especial (SNAPSHOT) para sincronizar
procesos, supongamos que partimos de P1.
1. P1 graba su estado S1 y difundo un mensaje SNAPSHOT a todos los
procesos. A partir de este momento se irn almacenando los
mensajes de aplicacin en los canales CK1 k.
2. Cuando un proceso Pi recibe un mensaje SNAPSHOT (de un proceso
Pj, ya sea el iniciador u otro), si an no se ha grabado su estado:
a. Pi graba su estado Si.
b. Graba el estado del canal Cji como vaco. En el resto de los
canales se almacenarn los mensajes de aplicacin a partir
de este momento.
c. Reenva el mensaje SNAPSHOT al resto de los procesos (entre
la recepcin del SNAPSHOT y su reenvo Pi no ejecuta ningn
otro evento).
3. Cuando el proceso Pi recibe un mensaje SNAPSHOT de un proceso
Pk (con k j, siendo Pj el proceso que le envo el primer mensaje a
Pi), y Pi ya habiendo grabado su estado, el estado del canal Cki
estar completo y se graba. Cuando Pi haya recibido los SNAPSHOT

de todos los procesos, la construccin del estado global en Pi habr


concluido.
Se debe notar que cuando se graba el estado de algn proceso, se
activa el almacenamiento de mensajes en los canales de entrada del
mismo. Los mensajes recibidos de cualquier otro proceso que an no
haya grabado su estado (lo que se reciban antes del SNAPSHOT de
dicho proceso) se almacenarn en el canal correspondiente que los
une; ya que se enviaron antes de la grabacin de dicho estado (dada
la naturaleza FIFO de los canales). El canal se grabar luego de recibir
el SNAPSHOT del proceso que enve por el mismo (paso 3).

4 REFERENCIAS

LAFUENTE. Sistemas Distribuidos: Tiempo, causalidad y estado global.


Archivo PDF [En lnea]. [Fecha de consulta: 05 de mayo de 2015].
Disponible en: http://www.sc.ehu.es/acwlaroa/SDI/Apuntes/Cap2.pdf

You might also like