Sistemas heterogéneos y otros DSM | Sistemas distribuidos

Una memoria compartida distribuida es un sistema que permite que los procesos del usuario final accedan a datos compartidos sin necesidad de comunicación entre procesos. El paradigma de memoria compartida aplicado a los sistemas de memoria distribuida débilmente acoplados se conoce como memoria compartida distribuida (DSM). 
La memoria compartida distribuida (DSM) es un tipo de arquitectura de memoria en informática que permite abordar memorias físicamente distintas como un espacio de direcciones lógicamente compartido. Compartir aquí no se refiere a una sola memoria central, sino al espacio de direcciones. 
En otras palabras, el objetivo de un sistema DSM es hacer que las comunicaciones entre procesos sean transparentes para los usuarios finales.

Necesidad de DSM heterogéneo (HDSM):

Muchos entornos informáticos tienen heterogeneidad, lo que casi siempre es inevitable porque el hardware y el software generalmente se adaptan a un área de aplicación determinada. Las supercomputadoras y los multiprocesadores, por ejemplo, sobresalen en tareas de cómputo intensivo, pero tienen problemas con la interfaz de usuario y la E/S del dispositivo. Las computadoras personales y las estaciones de trabajo, por otro lado, suelen estar equipadas con excelentes interfaces de usuario. 

Muchas aplicaciones requieren interfaces de usuario complejas, dispositivos de E/S específicos y grandes cantidades de potencia informática. La inteligencia artificial, CAM, gráficos interactivos y simulación interactiva son ejemplos de tales aplicaciones. Como resultado, es muy deseable integrar diversas máquinas en un sistema distribuido coherente y compartir recursos entre ellas. 
HDSM es beneficioso para aplicaciones paralelas y distribuidas que necesitan acceder a recursos de numerosos hosts al mismo tiempo. 

DSM heterogéneo:

En un entorno informático heterogéneo, las aplicaciones pueden aprovechar lo mejor de varias arquitecturas informáticas. La heterogeneidad generalmente se desea en los sistemas distribuidos. Con un sistema DSM tan heterogéneo, será concebible compartir la memoria entre máquinas con diferentes arquitecturas. Los dos problemas principales en la construcción de DSM heterogéneos son: 
(i) Compatibilidad y conversión de datos
(ii) Selección del tamaño de bloque

Compatibilidad y conversión de datos:

La comparabilidad y conversión de datos es la preocupación inicial del diseño en un sistema DSM heterogéneo. Las máquinas con arquitecturas diferentes pueden utilizar diferentes representaciones de punto flotante y de ordenación de bytes. Los datos que se envían de una máquina a otra deben convertirse al formato de la máquina de destino. La unidad de transmisión de datos (bloque) debe transformarse de acuerdo con el tipo de datos de su contenido. Como resultado, los programadores de aplicaciones deben participar porque están familiarizados con el diseño de la memoria. En los sistemas DSM heterogéneos, la conversión de datos se puede lograr organizando el sistema como una colección de objetos de lenguaje de origen o permitiendo solo un tipo de bloque de datos.

  • DSM como una colección de objetos de lenguaje fuente:
    El DSM está estructurado como una colección de objetos de lenguaje fuente, de acuerdo con la primera técnica de conversión de datos. La unidad de migración de datos en esta situación es una variable compartida o un objeto. El compilador puede usar directamente los procedimientos de conversión para traducir entre diferentes arquitecturas de máquinas. El sistema DSM comprueba si el Node solicitante y el Node que tiene el objeto son compatibles antes de acceder a variables o objetos remotos. Si los Nodes son incompatibles, invoca una rutina de conversión, traduce y migra la variable u objeto compartido. 
    Este enfoque se emplea en los sistemas Agora Shared Memory y, si bien es útil para la conversión de datos, tiene un bajo rendimiento. Los escalares, arreglos y estructuras son los objetos de los lenguajes de programación. Cada uno de ellos requiere derechos de acceso, y la migración necesita sobrecarga de comunicación. Debido al tamaño de paquete limitado de los protocolos de transporte, el acceso a arreglos grandes puede dar como resultado un uso compartido y una hiperpaginación falsos, mientras que la migración implicaría la fragmentación y el reensamblaje.
  • DSM como un tipo de bloque de datos:
    solo se permite un tipo de bloque de datos en el segundo procedimiento de conversión de datos. Mermaid DSM utiliza este enfoque, que utiliza un tamaño de página igual al tamaño del bloque. La información adicional se mantiene en la entrada de la tabla de páginas, como el tipo de datos conservados en la página y la cantidad de datos asignados a la página. El método cambia la página a un formato apropiado cuando hay defectos de página o incompatibilidades.
    Hay algunos inconvenientes en este método. Debido a que el bloque solo contiene un tipo de datos, la fragmentación podría desperdiciar memoria. Los compiladores en computadoras heterogéneas también deben ser consistentes en términos de tamaño de tipo de datos y orden de campo dentro de estructuras compuestas en el código generado por el compilador. Aunque solo se puede acceder a una pequeña parte de la página, la página completa se transforma y se envía. Dado que los usuarios deben describir el proceso de conversión para el tipo de datos especificado por el usuario, así como la asignación del tipo de datos a la rutina de conversión, se reduce la transparencia. Finalmente, si los datos se traducen con demasiada frecuencia, la precisión de los números de coma flotante puede verse afectada.

Selección del tamaño del bloque:

La elección del tamaño del bloque es otra dificultad en la creación de sistemas DSM heterogéneos. En un sistema DSM, las máquinas heterogéneas pueden tener diferentes tamaños de página de memoria virtual. Como resultado, se puede usar cualquiera de los siguientes algoritmos para elegir el tamaño de bloque correcto:

  • Tamaño de página más grande : el tamaño de bloque de DSM es el tamaño de página de memoria virtual más grande entre todas las máquinas en esta técnica, como su nombre lo indica. Múltiples páginas de memoria virtual pueden caber dentro de un solo bloque DSM ya que el tamaño de la página es siempre la potencia de dos. Se reciben múltiples bloques, incluida la página requerida, en caso de una falla de página en un Node con un tamaño de página reducido. El intercambio falso y la hiperpaginación son problemas comunes que ocurren con frecuencia debido al tamaño de bloque más grande.
  • Tamaño de página más pequeño : el tamaño de bloque de DSM se selecciona como el tamaño de página de memoria virtual más pequeño disponible en todos los equipos. Se enviarán varios bloques cuando se produzca un error de página en un Node con un tamaño de página mayor. Este enfoque reduce la contención de datos, pero introduce gastos adicionales de administración de tablas de bloques debido a una mayor comunicación.
  • Tamaño de página intermedio : dados los dos procedimientos mencionados anteriormente, la opción óptima es elegir un tamaño de bloque que se encuentre entre los tamaños de página de memoria virtual más grandes y más pequeños de las máquinas. Este método se usa para equilibrar los problemas que vienen con bloques grandes y pequeños.
    En función de cómo se gestione la captura de datos, existen tres enfoques para diseñar un sistema DSM:
    1. DSM gestionado por el sistema operativo
    2. DSM gestionado por el hardware de la MMU
    3. DSM gestionado por el sistema language runtime.
  1. DSM administrado por el sistema operativo : esta área de administración de caché de datos por parte del sistema operativo incluye sistemas operativos distribuidos como Ivy y Mirage. Cada Node tiene su propia memoria, y una falla de página envía una trampa al sistema operativo, que luego emplea mensajes de intercambio para identificar y obtener el bloque requerido. El sistema operativo está a cargo de la ubicación y migración de datos.
  2. DSM administrado por el hardware de MMU : el almacenamiento en caché de memoria es administrado por el hardware de MMU y el caché en esta técnica. Para mantener la coherencia de la memoria caché, se utilizan protocolos de bus de indagación. DEC Firefly, por ejemplo, utiliza hardware de memoria. Los directorios se pueden utilizar para realizar un seguimiento de dónde se encuentran los bloques de datos y los Nodes. MMU localiza y transfiere la página solicitada en caso de falla de página.
  3. DSM administrado por el sistema language runtime : el DSM está organizado como un conjunto de elementos de lenguaje de programación, como variables compartidas, estructuras de datos y objetos compartidos, en este sistema. El lenguaje de programación y el sistema operativo manejan la ubicación y migración de estas variables u objetos compartidos en tiempo de ejecución. Las características para indicar el patrón de utilización de datos se pueden agregar al lenguaje de programación. Dicho sistema puede admitir varios protocolos de consistencia y puede aplicarse a la granularidad de los datos individuales. Pero esta técnica impone una carga adicional al programador. Ejemplos de tales sistemas son Munin y Midway, que usan variables compartidas, mientras que Orca y Linda usan Objetos compartidos.

 Ventajas de DSM:

  • Cuando se mueve un bloque, utilice la localidad de referencia.
  • El paso por referencia y el paso de estructuras de datos complejas se facilitan con un solo espacio de direcciones.
  • No hay cuello de botella de acceso a la memoria porque no hay un solo bus.
  • Debido a que los programas de DSM tienen una interfaz de programación similar, son portátiles.
  • Espacio de memoria virtual que es bastante grande.

Diferencia entre un DSM homogéneo y un DSM heterogéneo:

Cuando los componentes de aplicaciones distribuidas comparten memoria directamente a través de DSM, están más estrechamente conectados que cuando los datos se comparten a través de DSM. Como resultado, es difícil extender un DSM a un entorno de sistema heterogéneo. 

El rendimiento de un DSM homogéneo es ligeramente mejor que el de un DSM heterogéneo. A pesar de una serie de desafíos en la conversión de datos, el DSM heterogéneo se puede lograr con una transparencia funcional y de rendimiento comparable al DSM homogéneo. 

Publicación traducida automáticamente

Artículo escrito por sameekshakhandelwal1712 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *