Aquí hay un ejemplo de computación distribuida:
1. Antecedentes
1.1 Modelo asíncrono de memoria compartida
Consideremos una colección de nodos distribuidos que se comunican usando variables de memoria compartida. Hay un adversario que controla cuándo un nodo toma medidas y cuándo entregar mensajes. El cálculo es asíncrono , es decir, el adversario puede retrasar los pasos de los nodos por cualquier cantidad de tiempo (finito).
Puede pensar en un paso de un nodo como una transición de estado de su autómata local (de acuerdo con el algoritmo) donde el siguiente estado está determinado por el estado actual y las observaciones del nodo desde el último paso.
1.2 Seguridad y vida
Cuando razonamos formalmente sobre las propiedades de un algoritmo asíncrono, distinguimos entre propiedades de seguridad y de vida. Informalmente, una
propiedad de seguridad puede interpretarse como una garantía de que algo "malo" nunca sucede. (Por ejemplo, para la exclusión mutua, una propiedad de seguridad sería que no hay dos nodos que ingresen a la sección crítica simultáneamente). La vida , por otro lado, puede interpretarse como "algo bueno eventualmente sucederá", por ejemplo: cada nodo finalmente termina.
METROMETROα , β∈ M2- nnorteαβ
SPAG⊆ MPAGMETRO∖ P
Aplicando el Lema Infinito de Koenig
No siempre es sencillo ver si una propiedad específica es una propiedad de seguridad: considere la implementación de objetos atómicos de lectura / escritura sobre las variables básicas de memoria compartida. Dicha implementación debe manejar las solicitudes y sus respuestas de manera que parezca que suceden en algún momento y no violan su orden de invocación. (Debido a la operación asincrónica, la duración real entre la solicitud y la respuesta puede ser distinta de cero). La atomicidad también se conoce como linealización . La Sección 13.1 de [A] da una prueba de que la Atomicidad es una propiedad de seguridad. La prueba utiliza el lema de Koenig para mostrar que el límite de cualquier secuencia infinita de ejecuciones (cada una de las cuales satisface la Atomicidad) también satisface la Atomicidad.
[A] N. Lynch. Algoritmos Distribuidos. Morgan Kaufmann, 1996.