Monografias.com > Computación
Descargar Imprimir Comentar Ver trabajos relacionados

Coherencia de los datos y Sincronización de procesos




Enviado por Pablo Turmero



Partes: 1, 2


    Monografias.com

    ? El uso de variables compartidas implica la utilización de copias de dichas variables en las caches de cada procesador.

    ? Esto plantea problemas nuevos en la gestión de la memoria. Por ejemplo, ¿cómo nos aseguramos de que todos los procesadores que comparten una variable “ven” en ella el valor “correcto” correspondiente a cada instante? ¿Cómo se mantiene la coherencia de los datos?
    (1) Coherencia de los datos

    Monografias.com

    ? Un sistema es coherente si los cambios que se producen en una copia de una variable van a aparecer en todas las demás “en algún momento” y en el mismo orden.

    ? Aunque manejando los mismos conceptos, las soluciones son diferentes en función del tipo de arquitectura:
    SMP ? snoopy
    DSM ? directorios
    Coherencia de los datos

    Monografias.com

    ? ¿Cómo controlar la escritura distribuida?
    (Gp:) A=2
    (Gp:) A=2
    (Gp:) A=2
    (Gp:) mem. pral.
    (Gp:) cache
    (Gp:) A=2
    (Gp:) A=3 ?

    (Gp:) I
    (Gp:) I
    (Gp:) A=3
    (Gp:) M

    ? invalidar las copias
    ? actualizar las copias
    + añadir estados al bloque de datos
    Coherencia: snoopy

    Monografias.com

    ? ¿Quién controla la cache?
    (Gp:) mem. pral.
    (Gp:) A=2
    (Gp:) A=2
    (Gp:) A=2
    (Gp:) A=2
    (Gp:) A=3 ?

    (Gp:) INV

    (Gp:) I
    (Gp:) I

    ? ¿Y la memoria principal?
    – según la política de escritura
    WT, WB
    – según el protocolo de coherencia
    hardware espía, snoopy
    Coherencia: snoopy

    Monografias.com

    El sistema distribuido es esencialmente asíncrono. ¿Cómo controlar la atomicidad de las operaciones de coherencia?

    atomicidad del bus + estados transitorios
    ? Atomicidad
    Coherencia: snoopy

    Monografias.com

    ? Cuando la red no es bus (DSM), el mecanismo de snoopy no sirve para mantener la coherencia de los datos, porque no existe un lugar común en el que aparezcan todos los accesos a memoria.
    ? Si se necesita mantener la coherencia de los datos por hardware, es necesario utilizar algún otro tipo de dispositivo: el directorio.
    Coherencia: directorios

    Monografias.com

    ? Dispositivo que contiene la información de coherencia referida a cada bloque de memoria: cuántas copias hay, dónde están, en qué estado se encuentran…
    ? Es un dispositivo distribuido, bien junto a los módulos de memoria principal asignados a cada procesador, bien en las caches.
    ? El protocolo es de invalidación. Se intercambian mensajes entre los procesos que tienen copia de la variable y el que tiene el trozo de directorio correspondien-te. El bloque de datos se mantiene en estado transitorio (busy) mientras dura la operación.
    Coherencia: directorios

    Monografias.com

    Coherencia: ejemplo
    (Gp:) 1 bit proc.
    (Gp:) estado
    (Gp:) 0 … 1 … 0 M

    (Gp:) L
    (Gp:) CC = controlador de comunic.
    D = directorio de coherencia
    L = local H = home R= remote
    (Gp:) H
    (Gp:) P
    (Gp:) C
    (Gp:)
    CC
    (Gp:)
    D
    (Gp:)
    MP
    (Gp:) R

    (Gp:) 2

    (Gp:) 3

    (Gp:) 4
    (Gp:) 5

    (Gp:) 1

    LD A
    (Gp:) 1
    (Gp:) S

    Monografias.com

    ? Los directorios de coherencia permiten mantener la coherencia de datos en un sistema DSM.

    ? Pero hay que tener cuidado con:
    – el tamaño que ocupa el directorio.
    – el tiempo de respuesta de estas operaciones, que tienen que utilizar la red de comunicación del multiprocesador.
    – habrá latencias altas en ciertas operaciones
    ? multithreading, prefetch…
    Coherencia: resumen

    Monografias.com

    ? El proceso de coherencia se aplica a las variables compartidas cuando se modifican. Aunque sea costoso, sólo se aplica a un conjunto (muy) reducido de los accesos a memoria.

    ? Pero, ojo! la coherencia de datos se mantiene por bloques. Los procesadores pueden compartir un bloque de datos aunque no compartan ninguna variable de dicho bloque.
    ? la colocación en memoria y el reparto de datos y variables a los procesadores puede tener un efecto muy grande en el rendimiento del sistema.
    Coherencia: bloques

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter