Memoria compartida distribuida Protocolo de manejo de bloques de cache. Propiedades: La consistencia se logra haciendo que todos los cachés husmen el bus. El protocolo se integra dentro de la unidad de administración de memoria. Todo el algoritmo se realiza en un ciclo de memoria. 12
Modelos de consistencia ¿Cómo se trabaja con la memoria en un sistema de memoria compartida distribuida? Copias de lectura. Copias de escritura. Consideraciones. 13
Modelos de consistencia “Un modelo de consistencia es en esencia un contrato entre el software y la memoria” (Adve y Hill, 1990). ¿Qué ocurre si se obedecen las reglas? ¿Qué ocurre si se violan las reglas? 14
Modelos de consistencia Estricta. Secuencial. Causal. PRAM. Débil. Liberación. Entrada. 15
Consistencia estricta Cualquier lectura a una localidad de memoria x regresa el valor guardado por la operación de escritura más reciente en x. Consideraciones. 16
Consistencia estricta 17
Consistencia secuencial “El resultado de cualquier ejecución es el mismo que si las operaciones de todos los procesos fueran ejecutadas en algún orden secuencial, y las operaciones de cada proceso individual aparecen en el orden especificado por su programa” (Lamport 1979). Cuando los procesos se ejecutan en paralelo en diferentes máquinas, cualquier intercalado valido es aceptable, pero los procesos deben ver las mismas referencias a memoria en el mismo orden.
18
Consistencia secuencial 19
Consistencia secuencial 20
Consistencia secuencial Método formal para expresar la consistencia secuencial. (Ahamad et al., 1993). La serie de operaciones de lectura y escritura de un proceso i se denotan por Hi. Para obtener el orden relativo se fusionan las cadenas de operación de cada Hi en una nueva cada S. En S se deben cumplir dos condiciones: Mantenerse el orden del programa. Debe ser respetada la coherencia en la memoria. 21
Consistencia causal “Las escrituras potencialmente relacionadas de forma causal son vistas por todos los procesos en el mismo orden. Las escrituras concurrentes pueden ser vistas en un orden diferente en máquinas diferentes” (Hutto y Ahamad, 1990). 22
Consistencia causal 23
Consistencia causal 24
Consistencia PRAM PRAM (Pipelined RAM). “Las escrituras realizadas por un proceso son recibidas por los otros procesos en el orden en que son realizadas, pero las escrituras de procesos diferentes pueden verse en un orden diferente por procesos diferentes” (Lipton y Sandberg, 1988). 25
Consistencia PRAM 26
Consistencia débil Según Dubois et al., 1986: Los accesos a las variables de sincronización son secuencialmente consistentes. No se permite realizar un acceso a una variable de sincronización hasta que las escrituras hayan terminado en todas partes. No se permite realizar un acceso a los datos (lectura o escritura) hasta realizar todos los accesos anteriores a las variables de sincronización. 27
Consistencia débil No es necesario mostrar inmediatamente a otros procesos cambios en la memoria hechos por cada operación de escritura. Los resultados de varias operaciones de escritura pueden ser combinados y enviados a otros procesos sólo cuando ellos lo necesitan. Implementación. Se usa una variable de sincronización. 28
Consistencia débil 29
Consistencia de liberación Gharachorlo et al., 1990. Distingue dos tipos de acciones de sincronización: Las que preceden a la entrada en secciones críticas. Las que se desarrollan después de completarse una sección crítica. Estas acciones de sincronización son conocidas comúnmente como: acquire access ( acceso de adquisición ). release access ( acceso de liberación ). 30
Página anterior | Volver al principio del trabajo | Página siguiente |