MODELOS DE CONSISTENCIA


La duplicidad de los bloques compartidos aumenta el rendimiento, pero produce un problema de consistencia entre las diferentes copias de la página en caso de una escritura. Si con cada escritura es necesario actualizar todas las copias, el envío de las páginas por la red provoca que el tiempo de espera aumente demasiado, convirtiendo este método en impracticable. Para solucionar este problema se proponen diferentes modelos de consistencia, que establezcan.

Nombramos algunos modelos de consistencia, del más fuerte al más débil: consistencia estricta, secuencial, causal, PRAM, del procesador, débil, de liberación y de entrada

ESTRICTA, CASUAL, SECUENCIAL, DEBIL, DE LIBERACION Y DE ENTRADA.

CONSISTENCIA CASUAL: La condición a cumplir para que unos datos sean causalmente consistentes es:
• Escrituras que están potencialmente relacionadas en forma causal deben ser vistas por todos los procesos en el mismo orden.
• Escrituras concurrentes pueden ser vistas en un orden diferente sobre diferentes máquinas.

Es permitida con un almacenamiento causalmente consistente, pero no con un almacenamiento secuencialmente consistente o con un almacenamiento consistente en forma estricta.

CONSISTENCIA SECUENCIAL: La consistencia secuencial es una forma ligeramente más débil de la consistencia estricta. Satisface la siguiente condición:

El resultado de una ejecución es el mismo si las operaciones (lectura y escritura) de todos los procesos sobre el dato fueron ejecutadas en algún orden secuencial
a) Un dato almacenado secuencialmente consistente.
b) Un dato almacenado que no es secuencialmente consistente.
CONSISTENCIA DÉBIL: Los accesos a variables de sincronización asociadas con los datos almacenados son secuencialmente consistentes.

Propiedades
No se permite operación sobre una variable de sincronización hasta que todas las escrituras previas de hayan completado.

 No se permiten operaciones de escritura o lectura sobre  datos hasta que no se hayan completado operaciones previas sobre variables de sincronización.

CONSISTECIA DE LIBERACION: Se basa en el supuesto de que los accesos a variables compartidas se protegen en secciones críticas empleando primitivas de sincronización, como por ejemplo locks. En tal caso, todo acceso esta precedido por una operación adquiere y seguido por una operación release. Es responsabilidad del programador que esta propiedad se cumpla en todos los programas.

No hay comentarios:

Publicar un comentario