El término consistencia débil puede utilizarse en dos sentidos. En el primer sentido, estricto y más popular, la consistencia débil es uno de los modelos de consistencia utilizados en el ámbito de la programación concurrente (por ejemplo, en memoria compartida distribuida , transacciones distribuidas , etc.).
Se dice que un protocolo admite una consistencia débil si:
- Todos los accesos a las variables de sincronización son vistos por todos los procesos (o nodos, procesadores) en el mismo orden (secuencialmente); estas son operaciones de sincronización. Los accesos a las secciones críticas se ven secuencialmente.
- Todos los demás accesos pueden verse en un orden diferente en diferentes procesos (o nodos, procesadores).
- El conjunto de operaciones de lectura y escritura entre las diferentes operaciones de sincronización es el mismo en cada proceso.
Por lo tanto, no se puede acceder a una variable de sincronización si hay operaciones de escritura pendientes. Tampoco se puede iniciar ninguna operación de lectura/escritura si el sistema está realizando alguna operación de sincronización.
En el segundo sentido, más general, la consistencia débil puede aplicarse a cualquier modelo de consistencia más débil que la consistencia secuencial .
Una condición más estricta es la consistencia fuerte , donde los procesos paralelos solo pueden observar un estado consistente.
Referencias
- El artículo original sobre ordenamiento débil: M. Dubois, C. Scheurich y FA Briggs, Memory Access Buffering in Multiprocessors , en Proceedings of 13th Annual International Symposium on Computer Architecture 14, 2 (junio de 1986), 434-442.
- Sarita V. Adve , Mark D. Hill, Ordenamiento débil: una nueva definición , en Actas del 17º Simposio Internacional Anual sobre Arquitectura de Computadoras .
- Modelos de consistencia
- Esbozos de ingeniería informática