fbpx
Wikipedia

Algoritmo de Chandy-Lamport

El algoritmo de Chandy-Lamport es un algoritmo de instantáneas para sistemas asíncronos desarrollado por Leslie Lamport y K. Mani Chandy.

El algoritmo de Chandy-Lamport se utiliza en sistemas distribuidos con el objetivo de obtener una instantánea (conjunto de estados de proceso y canal de comunicación) global y consistente para registrarlo como un estado global consistente. El estado global se construye a partir de la iniciativa de un proceso cualquiera del sistema distribuido (iniciador). El mismo Leslie Lamport recoge en su página web cómo surgió la idea, citando textualmente en su página web personal: "El algoritmo de instantáneas distribuidas que se describe aquí surgió cuando visité a Chandy, que entonces estaba en la Universidad de Texas en Austin. Me planteó el problema durante la cena, pero ambos tuvimos demasiado vino para pensarlo en ese momento. A la mañana siguiente, en la ducha, se me ocurrió la solución. Cuando llegué a la oficina de Chandy, él me estaba esperando con la misma solución."

Consideraciones Previas

Tiempos lógicos y Relojes vectoriales

Ante la imposibilidad de sincronizar perfectamente los relojes en un sistema distribuido, no se puede usar en ellos el tiempo físico para obtener el orden de cualquier suceso que ocurra. Para evitar este problema, Lamport sugiere la utilización de tiempos lógicos para conseguir sincronización. El objetivo es asociar a todos los sucesos una marca de tiempo independiente del reloj físico y poder ordenarlos mediante relaciones “ocurre antes que”. Con tiempos lógicos, si a sucede antes que b, el reloj es menor, pero si el reloj de a es menor que el de b, no implica que a haya ocurrido antes que b. Los relojes vectoriales sí consiguen hacer ciertas ambas suposiciones. Un reloj vectorial para un sistema de N procesos es un vector de N enteros. Cada proceso mantiene su propio reloj vectorial Vi, donde coloca sus propias marcas de tiempo de sus sucesos locales. Para compartirlos, existen 4 reglas básicas para actualizar los relojes:

  • RV1: Inicialmente Vi[j]=0 para j=1, 2, …, N.
  • RV2: Antes de que ocurra un evento en Pi: Vi[i]=Vi[i]+1.
  • RV3: Pi incluye el timestamp t=Vi en cada mensaje que envía.
  • RV4: Cuando Pi tiene un evento de recepción con timestamp t, Vi[j]=max(Vi[j], t[j]) para j=1,2,…,N.

Estado global y cortes consistentes

Un estado global consistente es aquel que corresponde con un corte consistente. Podemos caracterizar la ejecución de un sistema distribuido como una serie de transacciones entre los estados globales del sistema: s0-s1-s2-s3…

Corte consistente: si el evento de recepción de un mensaje está “dentro” del corte, entonces el evento de envío de dicho mensaje también debe estar. Un corte c es consistente si, para cada suceso que contiene, también contiene todos los sucesos que “sucedieron antes que”.

Corte consistente para relojes lógicos vectoriales: Un corte c es consistente si, para cada proceso P, su reloj lógico en ese momento es mayor o igual que los valores que tienen almacenados el resto de procesos del reloj de P.

Precondiciones

El algoritmo supone que:

  • No fallan ni los canales ni los procesos: la comunicación es fiable por lo que todos los mensajes se reciben intactos y una única vez.
  • Los canales son unidireccionales con entrega de tipo FIFO.
  • El grafo de los procesos y canales está fuertemente conectado, hay canal de comunicación directa entre todos los estados.
  • Cualquier proceso puede tomar una instantánea global en cualquier instante.
  • Mientras tiene lugar una instantánea los procesos pueden continuar su ejecución y comunicación.

El algoritmo

El algoritmo utiliza mensajes especiales, llamados ‘mark’, que son distintos a todo el resto de mensajes en el sistema durante su ejecución normal. Estos ´mark´ tienen doble funcionalidad: como aviso para que el receptor guarde su propio estado si no lo ha hecho aún, y como un medio para decidir qué mensajes incluir en el estado del canal.

Pseudocódigo basado en la diferenciación de dos reglas principales: 1) Regla de recepción del mark para el proceso Pi por el canal C:

 Si (Pi no ha registrado su estado todavía) Registra su estado de proceso ahora; Registra el estado del canal C como vacío; Activa el registro de mensajes que lleguen por otros canales entrantes; Sino Pi registra el estado de c como el conjunto de mensajes que ha recibido sobre c desde que guardó su estado (mensajes posteriores a la instantánea). FinSi 

2) Regla de envío del mark para el proceso Pi:

 Después de registrar su propio estado, para canal de salida de C, Pi envía un mensaje de instantánea por el canal c 

El algoritmo de instantánea selecciona un corte de la historia de la ejecución. El corte, y por tanto, el estado global buscado, es consistente. Para ejemplificar esta afirmación: Sean si y sj sucesos que ocurren en pi y pj respectivamente, tal que si->sj. Afirmamos que si sj está en el corte entonces si también lo está. Esto es, si sj sucedió antes de que pj registrara su estado, entonces si debe haber sucedido antes de que pi registrara el suyo.

Referencias

  • Chandy, K. M., & Lamport, L. (1985). Distributed snapshots: Determining global states of distributed systems. ACM Transactions on Computer Systems (TOCS), 3(1), 63-75.[1]
  • Tel, G. (2000). Introduction to Distributed Algorithms (2ª ed.). New York: Cambridge University Press.
  • Coulouris, G. (2001). Sistemas distribuidos: Conceptos y diseños. (P. de la F. Redondo & C. L. Bello, Trads.) (Edición: 3). Madrid: ADDISON WESLEY.


  •   Datos: Q2247012

algoritmo, chandy, lamport, algoritmo, chandy, lamport, algoritmo, instantáneas, para, sistemas, asíncronos, desarrollado, leslie, lamport, mani, chandy, algoritmo, chandy, lamport, utiliza, sistemas, distribuidos, objetivo, obtener, instantánea, conjunto, est. El algoritmo de Chandy Lamport es un algoritmo de instantaneas para sistemas asincronos desarrollado por Leslie Lamport y K Mani Chandy El algoritmo de Chandy Lamport se utiliza en sistemas distribuidos con el objetivo de obtener una instantanea conjunto de estados de proceso y canal de comunicacion global y consistente para registrarlo como un estado global consistente El estado global se construye a partir de la iniciativa de un proceso cualquiera del sistema distribuido iniciador El mismo Leslie Lamport recoge en su pagina web como surgio la idea citando textualmente en su pagina web personal El algoritmo de instantaneas distribuidas que se describe aqui surgio cuando visite a Chandy que entonces estaba en la Universidad de Texas en Austin Me planteo el problema durante la cena pero ambos tuvimos demasiado vino para pensarlo en ese momento A la manana siguiente en la ducha se me ocurrio la solucion Cuando llegue a la oficina de Chandy el me estaba esperando con la misma solucion Indice 1 Consideraciones Previas 1 1 Tiempos logicos y Relojes vectoriales 1 2 Estado global y cortes consistentes 2 Precondiciones 3 El algoritmo 4 ReferenciasConsideraciones Previas EditarTiempos logicos y Relojes vectoriales Editar Ante la imposibilidad de sincronizar perfectamente los relojes en un sistema distribuido no se puede usar en ellos el tiempo fisico para obtener el orden de cualquier suceso que ocurra Para evitar este problema Lamport sugiere la utilizacion de tiempos logicos para conseguir sincronizacion El objetivo es asociar a todos los sucesos una marca de tiempo independiente del reloj fisico y poder ordenarlos mediante relaciones ocurre antes que Con tiempos logicos si a sucede antes que b el reloj es menor pero si el reloj de a es menor que el de b no implica que a haya ocurrido antes que b Los relojes vectoriales si consiguen hacer ciertas ambas suposiciones Un reloj vectorial para un sistema de N procesos es un vector de N enteros Cada proceso mantiene su propio reloj vectorial Vi donde coloca sus propias marcas de tiempo de sus sucesos locales Para compartirlos existen 4 reglas basicas para actualizar los relojes RV1 Inicialmente Vi j 0 para j 1 2 N RV2 Antes de que ocurra un evento en Pi Vi i Vi i 1 RV3 Pi incluye el timestamp t Vi en cada mensaje que envia RV4 Cuando Pi tiene un evento de recepcion con timestamp t Vi j max Vi j t j para j 1 2 N Estado global y cortes consistentes Editar Un estado global consistente es aquel que corresponde con un corte consistente Podemos caracterizar la ejecucion de un sistema distribuido como una serie de transacciones entre los estados globales del sistema s0 s1 s2 s3 Corte consistente si el evento de recepcion de un mensaje esta dentro del corte entonces el evento de envio de dicho mensaje tambien debe estar Un corte c es consistente si para cada suceso que contiene tambien contiene todos los sucesos que sucedieron antes que Corte consistente para relojes logicos vectoriales Un corte c es consistente si para cada proceso P su reloj logico en ese momento es mayor o igual que los valores que tienen almacenados el resto de procesos del reloj de P Precondiciones EditarEl algoritmo supone que No fallan ni los canales ni los procesos la comunicacion es fiable por lo que todos los mensajes se reciben intactos y una unica vez Los canales son unidireccionales con entrega de tipo FIFO El grafo de los procesos y canales esta fuertemente conectado hay canal de comunicacion directa entre todos los estados Cualquier proceso puede tomar una instantanea global en cualquier instante Mientras tiene lugar una instantanea los procesos pueden continuar su ejecucion y comunicacion El algoritmo EditarEl algoritmo utiliza mensajes especiales llamados mark que son distintos a todo el resto de mensajes en el sistema durante su ejecucion normal Estos mark tienen doble funcionalidad como aviso para que el receptor guarde su propio estado si no lo ha hecho aun y como un medio para decidir que mensajes incluir en el estado del canal Pseudocodigo basado en la diferenciacion de dos reglas principales 1 Regla de recepcion del mark para el proceso Pi por el canal C Si Pi no ha registrado su estado todavia Registra su estado de proceso ahora Registra el estado del canal C como vacio Activa el registro de mensajes que lleguen por otros canales entrantes Sino Pi registra el estado de c como el conjunto de mensajes que ha recibido sobre c desde que guardo su estado mensajes posteriores a la instantanea FinSi 2 Regla de envio del mark para el proceso Pi Despues de registrar su propio estado para canal de salida de C Pi envia un mensaje de instantanea por el canal c El algoritmo de instantanea selecciona un corte de la historia de la ejecucion El corte y por tanto el estado global buscado es consistente Para ejemplificar esta afirmacion Sean si y sj sucesos que ocurren en pi y pj respectivamente tal que si gt sj Afirmamos que si sj esta en el corte entonces si tambien lo esta Esto es si sj sucedio antes de que pj registrara su estado entonces si debe haber sucedido antes de que pi registrara el suyo Referencias EditarChandy K M amp Lamport L 1985 Distributed snapshots Determining global states of distributed systems ACM Transactions on Computer Systems TOCS 3 1 63 75 1 Tel G 2000 Introduction to Distributed Algorithms 2ª ed New York Cambridge University Press Coulouris G 2001 Sistemas distribuidos Conceptos y disenos P de la F Redondo amp C L Bello Trads Edicion 3 Madrid ADDISON WESLEY Datos Q2247012Obtenido de https es wikipedia org w index php title Algoritmo de Chandy Lamport amp oldid 137018228, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos