Memoria compartida distribuida
En informática, la memoria compartida distribuida (DSM) es una forma de arquitectura de memoria en la que las memorias físicamente separadas se pueden abordar como un único espacio de direcciones compartido. El término "compartido" no significa que haya una única memoria centralizada, sino que el espacio de direcciones es compartido; es decir, la misma dirección física en dos procesadores se refiere a la misma ubicación en la memoria. Espacio de direcciones global distribuido (DGAS), es un término similar para una amplia clase de implementaciones de software y hardware, en las que cada nodo de un clúster tiene acceso además a la memoria compartida. a la memoria privada (es decir, no compartida) de cada nodo.
Descripción general

Un sistema de memoria distribuida, a menudo llamado multicomputadora, consta de múltiples nodos de procesamiento independientes con módulos de memoria locales que están conectados por una red de interconexión general. Los sistemas de software DSM se pueden implementar en un sistema operativo o como una biblioteca de programación y se pueden considerar como extensiones de la arquitectura de memoria virtual subyacente. Cuando se implementan en el sistema operativo, dichos sistemas son transparentes para el desarrollador; lo que significa que la memoria distribuida subyacente está completamente oculta a los usuarios. Por el contrario, los sistemas de software DSM implementados a nivel de biblioteca o lenguaje no son transparentes y los desarrolladores generalmente tienen que programarlos de manera diferente. Sin embargo, estos sistemas ofrecen un enfoque más portátil para las implementaciones de sistemas DSM. Un sistema DSM implementa el modelo de memoria compartida en un sistema de memoria físicamente distribuida.
DSM se puede lograr tanto a través de software como de hardware. Los ejemplos de hardware incluyen circuitos de coherencia de caché y controladores de interfaz de red. Hay tres formas de implementar DSM:
- Enfoque basado en la página usando memoria virtual
- Enfoque compartido-variable utilizando rutinas para acceder a variables compartidas
- Enfoque basado en objetos, acceso ideal a datos compartidos mediante disciplina orientada hacia objetos
Ventajas
- Escala bien con un gran número de nodos
- El mensaje que pasa está oculto
- Puede manejar bases de datos complejas y grandes sin replicación o enviar los datos a procesos
- Generalmente más barato que usar un sistema multiprocesador
- Proporciona gran espacio de memoria virtual
- Los programas son más portátiles debido a interfaces de programación comunes
- Los programadores escudos de enviar o recibir primitivos
Desventajas
- Generalmente más lento al acceso que la memoria compartida no distribuida
- Debe proporcionar protección adicional contra accesos simultáneos a datos compartidos
- Puede incurrir en una pena de ejecución
- Poco control programador sobre los mensajes reales generados
- Los programadores necesitan entender modelos de consistencia para escribir programas correctos
Comparación con el paso de mensajes
Mensaje que pasa | Memoria compartida distribuida |
---|---|
Las variables deben ser marshaladas | Las variables se comparten directamente |
Costo de la comunicación es obvio | Costo de la comunicación es invisible |
Los procesos están protegidos por tener espacio de dirección privada | Procesos podrían causar error alterando datos |
Los procesos deben ejecutarse al mismo tiempo | La ejecución de los procesos puede ocurrir con vidas no superpuestas |
Los sistemas de software DSM también tienen la flexibilidad de organizar la región de memoria compartida de diferentes maneras. El enfoque basado en páginas organiza la memoria compartida en páginas de tamaño fijo. Por el contrario, el enfoque basado en objetos organiza la región de memoria compartida como un espacio abstracto para almacenar objetos compartibles de tamaños variables. Otra implementación comúnmente vista utiliza un espacio de tupla, en el que la unidad de intercambio es una tupla.
La arquitectura de memoria compartida puede implicar separar la memoria en partes compartidas distribuidas entre los nodos y la memoria principal; o distribuir toda la memoria entre nodos. Un protocolo de coherencia, elegido de acuerdo con un modelo de coherencia, mantiene la coherencia de la memoria.
Coherencia de la memoria del directorio
La coherencia de la memoria es necesaria para que el sistema que organiza el DSM sea capaz de rastrear y mantener el estado de los bloques de datos en los nodos de las memorias que componen el sistema. Un directorio es uno de esos mecanismos que mantiene el estado de los bloques de caché que se mueven por el sistema.
Estados

Un DSM básico rastreará al menos tres estados entre nodos para cualquier bloque determinado en el directorio. Habrá algún estado para dictar el bloque como no almacenado en caché (U), un estado para dictar un bloque como de propiedad exclusiva o propiedad modificada (EM) y un estado para dictar un bloque como compartido (S). A medida que los bloques ingresan a la organización del directorio, pasarán de U a EM (estado de propiedad) en el nodo inicial. El estado puede pasar a S cuando otros nodos comienzan a leer el bloque.
Existen dos métodos principales para permitir que el sistema rastree dónde se almacenan en caché los bloques y en qué condiciones en cada nodo. La solicitud-respuesta centrada en el hogar utiliza el hogar para atender solicitudes y controlar estados, mientras que la centrada en el solicitante permite que cada nodo impulse y administre sus propias solicitudes a través del hogar.
Solicitud y respuesta centradas en el hogar
En un sistema centrado en el hogar, el DSM evitará tener que manejar carreras de solicitud-respuesta entre nodos al permitir que solo se realice una transacción a la vez hasta que el nodo principal haya decidido que la transacción ha finalizado, generalmente cuando el nodo principal haya decidido que la transacción ha finalizado. recibió la respuesta de cada procesador que respondió a la solicitud. Un ejemplo de esto es el modo de fuente doméstica QPI de Intel. Las ventajas de este enfoque son que es fácil de implementar, pero su estrategia de solicitud-respuesta es lenta y está amortiguada debido a las limitaciones del nodo principal.
Solicitud y respuesta centradas en el solicitante
En un sistema centrado en el solicitante, el DSM permitirá que los nodos se comuniquen a voluntad entre sí a través del hogar. Esto significa que varios nodos pueden intentar iniciar una transacción, pero esto requiere consideraciones adicionales para garantizar la coherencia. Por ejemplo: cuando un nodo está procesando un bloque, si recibe una solicitud para ese bloque de otro nodo, enviará un NAck (Reconocimiento negativo) para informarle al iniciador que el nodo de procesamiento no puede cumplir con esa solicitud de inmediato. Un ejemplo de esto es el modo de fuente de rastreo QPI de Intel. Este enfoque es rápido pero no evita naturalmente las condiciones de carrera y genera más tráfico de autobuses.
Modelos de consistencia
Did you mean:The DSM must follow certain rules to maintain consistency over how read and write order is viewed among nodes, called the system 's consistency model.
Supongamos que tenemos n procesos y Mi operaciones de memoria para cada proceso i, y que todas las operaciones se ejecutan secuencialmente. Podemos concluir que (M1 + M2 + … + Mn)!/(M1! M2 !… Mn!) son posibles entrelazamientos de las operaciones. El problema con esta conclusión es determinar la exactitud de las operaciones entrelazadas. La coherencia de la memoria para DSM define qué entrelazados están permitidos.

Replicación
Hay dos tipos de algoritmos de replicación. Lectura de replicación y escritura de replicación. En la replicación de lectura, varios nodos pueden leer al mismo tiempo, pero solo un nodo puede escribir. En la replicación de escritura, varios nodos pueden leer y escribir al mismo tiempo. Las solicitudes de escritura son manejados por un secuenciador. La replicación de datos compartidos en general tiende a:
- Reducir el tráfico de red
- Promover un mayor paralelismo
- Resultado en menos fallas de página
Sin embargo, preservar la coherencia y la coherencia puede resultar más difícil.
Coherencia de lanzamiento y entrada
- Congruencia de liberación: cuando un proceso sale de una sección crítica, se propagan nuevos valores de las variables a todos los sitios.
- Congruencia de entrada: cuando un proceso entra en una sección crítica, actualizará automáticamente los valores de las variables compartidas.
- Consistencia basada en la vista: es una variante de la consistencia de entrada, excepto las variables compartidas de una sección crítica son detectadas automáticamente por el sistema. La aplicación de la coherencia basada en la visión es la VODCA que tiene un rendimiento comparable al MPI en las computadoras de racimo.
Ejemplos
- Kerrighed
- Open SSI
- MOSIX
- TreadMarks
- VODCA
- DIPC
Contenido relacionado
Parcialidad
FX-87
Datos de paquetes digitales celulares