Registro compartido


En la informática distribuida, los sistemas de memoria compartida y los sistemas de paso de mensajes son dos medios de comunicación entre procesos que han sido muy estudiados. En los sistemas de memoria compartida , los procesos se comunican accediendo a estructuras de datos compartidas. Un registro compartido (lectura / escritura) , a veces simplemente llamado registro, es un tipo fundamental de estructura de datos compartidos que almacena un valor y tiene dos operaciones: leer , que devuelve el valor almacenado en el registro, y escribir , que actualiza el valor. almacenado. Otros tipos de estructuras de datos compartidos incluyen lectura, modificación, escritura, prueba y configuración, comparación e intercambio, etc. La ubicación de la memoria a la que se accede simultáneamente a veces se denomina registro.

Los registros se pueden clasificar de acuerdo con la condición de consistencia que cumplen cuando se accede simultáneamente, el dominio de valores posibles que se pueden almacenar y cuántos procesos pueden acceder con la operación de lectura o escritura , lo que lleva a un total de 24 tipos de registros. [1]

Cuando la lectura y la escritura ocurren al mismo tiempo, es posible que el valor devuelto por lectura no se determine de forma única. Lamport definió tres tipos de registros: registros seguros , registros regulares y registros atómicos . [1] Una operación de lectura de un registro seguro puede devolver cualquier valor si es concurrente con una operación de escritura, y devuelve el valor escrito por la operación de escritura más reciente si la operación de lectura no se superpone con ninguna operación de escritura.. Un registro regular se diferencia de un registro seguro en que la operación de lectura puede devolver el valor escrito por la operación de escritura completada más reciente o una operación de escritura con la que se superpone. Un registro atómico satisface la condición más fuerte de ser linealizable .

Los registros se pueden caracterizar por la cantidad de procesos a los que se puede acceder con una operación de lectura o escritura . Un registro de un solo escritor (SW) solo puede ser escrito por un proceso y un registro de múltiples escritores (MW) puede ser escrito por múltiples procesos. De manera similar, el registro de lector único (SR) solo puede ser leído por un proceso y el registro de lector múltiple (MR) puede ser leído por múltiples procesos. Para un registro SWSR, no es necesario que el proceso de escritura y el proceso de lectura sean los mismos.

La siguiente figura ilustra las construcciones etapa por etapa desde la implementación del registro SWSR en un sistema de paso de mensajes asíncrono hasta la implementación del registro MWMR utilizando un objeto SW Snapshot . Este tipo de construcción a veces se denomina simulación o emulación. [2] En cada etapa (excepto la etapa 3), el tipo de objeto de la derecha se puede implementar mediante el tipo de objeto más simple de la izquierda. Las construcciones de cada etapa (excepto la Etapa 3) se presentan brevemente a continuación. Hay un artículo que analiza los detalles de la construcción de objetos instantáneos .

Una implementación es linealizable si, para cada ejecución, hay un orden de linealización que satisface las siguientes dos propiedades:




 
Etapas de registro compartido de construcciones
Implementación del registro atómico SWSR en el sistema MP