Memoria Compartida Distribuida (DSM): fundamentos, configuraciones y coherencia de caché

Informática y TelecomunicacionesActualizado el 5,4 KB

Resumen

El texto explica la memoria compartida distribuida (DSM), que permite a varias computadoras en red compartir un espacio de direcciones virtual paginado. Compara multiprocesadores y multicomputadoras, describe configuraciones basadas en bus y el proceso de lectura de memoria, y presenta la coherencia de caché mediante protocolos de fisgoneo (snooping) y sus tipos de invalidación.

Puntos clave

  • Un multiprocesador comparte una memoria principal común, mientras que una multicomputadora tiene una memoria propia por CPU y no comparte nada directamente.
  • Las multicomputadoras son más fáciles de construir pero más difíciles de programar, porque la comunicación se basa en paso de mensajes o RPC.
  • En DSM, un acceso a una página remota provoca un fallo de página que el sistema operativo resuelve pidiendo la página a la máquina remota.
  • Una arquitectura basada en bus es la forma más sencilla de construir un multiprocesador, pero el bus se sobrecarga con tres o cuatro CPU.
  • Los protocolos de coherencia de caché evitan inconsistencias entre las cachés y la memoria principal; el más común es el de fisgoneo (snooping).
  • En la invalidación por escritura, el procesador que escribe invalida las copias de las otras cachés antes de modificar el dato.

Ponte a prueba

Memoria Compartida Distribuida (MCD): Fundamentos y Arquitecturas

Hemos visto que existen dos tipos de sistemas con múltiples CPU:

  • Multiprocesador: Dos o más CPU comparten la memoria principal común.
  • Multicomputadora: Cada CPU tiene su propia memoria; nada se comparte directamente.

Hardware: Desafíos en el Diseño de Sistemas Multiprocesador

Diseñar una máquina con múltiples CPU que compartan la misma memoria es complejo (debido a limitaciones del bus o conmutador).

Las multicomputadoras son más sencillas de construir, permitiendo un número ilimitado de unidades, cada una con su CPU y memoria, conectadas a través de una red.

Software: Programación en Entornos Multiprocesador y Multicomputadora

Existen numerosas técnicas de programación para multiprocesadores (como regiones críticas, semáforos, etc.), y se cuenta con un vasto conocimiento teórico y práctico al respecto.

Con las multicomputadoras, la situación es opuesta. La comunicación se basa en E/S de mensajes o en RPC, lo que dificulta el uso de gráficos o estructuras complejas como parámetros, así como la gestión de variables globales.

En resumen, las multicomputadoras son más fáciles de construir, pero más difíciles de programar.

Memoria Compartida Distribuida (DSM): Concepto y Funcionamiento

La Memoria Compartida Distribuida (DSM) implica tener una colección de computadoras conectadas en red que comparten un único espacio de direcciones virtuales paginado. Cada página reside en una computadora específica.

A nivel de hardware, las llamadas a páginas locales se realizan con la máxima velocidad de la memoria. Un intento de acceder a una página en una computadora diferente provoca un fallo de página en el hardware. Este fallo notifica al Sistema Operativo, que a su vez envía un mensaje a la máquina remota para localizar la página requerida y enviarla al solicitante. Una vez recibida, la instrucción detenida se reinicia y puede completarse.

Configuraciones de Memoria Compartida Distribuida (MCD)

Tipos de Configuraciones: Circuitos, Bus, Anillo y Conmutador

Circuitos

La mayoría de las computadoras poseen memoria externa, pero también existen circuitos independientes que integran un CPU y memoria (comunes en automóviles, juguetes, etc.). La sección del CPU de estos circuitos dispone de líneas de direcciones y datos que se conectan directamente con la porción de memoria.

Arquitectura Basada en Bus

La forma más sencilla y práctica de construir un multiprocesador es basarlo en un bus al que se conecten múltiples CPU.

El tráfico generado por cada procesador y el ancho de banda disponible del bus determinan el número de procesadores útiles en este tipo de multiprocesadores.

Proceso de Lectura de una Palabra de Memoria
  1. Cuando cualquiera de los CPU desea leer una palabra de la memoria, coloca la dirección de la palabra deseada en el bus y activa una señal en la línea de control para indicar una operación de lectura.
  2. Una vez que la memoria ha localizado la palabra requerida, la coloca en el bus y activa otra señal de control para anunciar su disponibilidad.
  3. Finalmente, el CPU lee la palabra.

La escritura se realiza de forma análoga.

Para evitar que dos o más CPU intenten acceder a la memoria simultáneamente, se requiere un mecanismo de arbitraje del bus.

Dado que solo existe una memoria central, las operaciones son inherentemente coherentes.

La desventaja de un bus único es que, con tres o cuatro CPU, el bus se sobrecargará, lo que provocará una disminución drástica del rendimiento.

Coherencia de Caché en un Multiprocesador

Pueden surgir inconsistencias entre la versión de los datos en la caché y la de la memoria principal. Los protocolos diseñados para mantener la coherencia entre múltiples procesadores se denominan protocolos de coherencia de caché.

El protocolo más común para mantener la coherencia de caché es el protocolo de fisgoneo o husmeo (snooping).

Mantener la coherencia implica dos componentes principales: las operaciones de lectura y las de escritura.

  • En el caso de las lecturas, tener múltiples copias no representa un problema. Sin embargo, es crucial disponer de la copia más reciente, por lo que, tras una escritura, se debe obtener el nuevo valor.
  • Para las escrituras, se requiere acceso exclusivo al bloque de memoria.
  • Ante un fallo de lectura, todas las cachés verifican si poseen una copia del bloque solicitado y, en caso afirmativo, realizan la acción correspondiente, como suministrar el dato a la caché que ha fallado.
  • Durante una escritura, todas las cachés comprueban si tienen una copia del bloque y, en consecuencia, invalidan su copia o la actualizan con el nuevo valor.

Tipos de Protocolos de Fisgoneo para Escrituras
  • Invalidación por escritura: El procesador que realiza la escritura invalida las copias existentes en las otras cachés antes de proceder con la operación. Posteriormente, puede actualizar los datos locales libremente hasta que otro procesador los requiera.

Descargar

PDF Word HTML

Preguntas frecuentes

¿Cuál es la diferencia entre multiprocesador y multicomputadora?

En un multiprocesador, dos o más CPU comparten la misma memoria principal. En una multicomputadora, cada CPU tiene su propia memoria y no se comparte nada directamente.

¿Qué ocurre cuando un procesador intenta acceder a una página remota en DSM?

Se produce un fallo de página en el hardware, que notifica al sistema operativo. Este envía un mensaje a la máquina remota para localizar la página y enviarla al solicitante, y después la instrucción se reinicia.

¿Por qué un bus único limita el número de procesadores?

Porque cada procesador genera tráfico y el ancho de banda del bus es limitado. Con tres o cuatro CPU el bus se sobrecarga y el rendimiento cae drásticamente.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Qué caracteriza a un multiprocesador?
2. ¿Por qué las multicomputadoras son más difíciles de programar?
3. ¿Qué sucede cuando se accede a una página ubicada en otra computadora en DSM?
4. ¿Cuál es la principal desventaja de un multiprocesador basado en un único bus?
5. ¿Por qué un único bus con una sola memoria central es coherente por naturaleza?
6. ¿Cuál es el protocolo más común para mantener la coherencia de caché?
7. ¿Qué hace el procesador que realiza una escritura en la invalidación por escritura?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.