89
MEMORIA COMPARTIDA DISTRIBUIDA BAUTISTA HERNANDEZ JORGE RAMIREZ HERNANDEZ IVONE VALENCIA GARCIA EMMA VAZQUEZ GARCIA JULIO CESAR

Memoria Compartida Distribuida Expo

Embed Size (px)

Citation preview

Page 1: Memoria Compartida Distribuida Expo

MEMORIA COMPARTIDA DISTRIBUIDA

BAUTISTA HERNANDEZ JORGE

RAMIREZ HERNANDEZ IVONE

VALENCIA GARCIA EMMA

VAZQUEZ GARCIA JULIO CESAR

Page 2: Memoria Compartida Distribuida Expo

INTRODUCCIÓN

En 1986 Li propuso un esquema diferente conocido como memoria compartida distribuida (DSM).

Page 3: Memoria Compartida Distribuida Expo

En 1989 li y hudak propusieron tener una colección de estaciones de trabajo conectadas por una LAN compartiendo un solo espacio de direcciones virtuales con paginas.

En la variante mas simple cada pagina esta presente en una maquina.

Page 4: Memoria Compartida Distribuida Expo

El sistema operativo envía un mensaje a la maquina remota, quien encuentra la pagina necesaria y la envía al procesador solicitante, se reinicia la instrucción detenida y se puede concluir.

Page 5: Memoria Compartida Distribuida Expo

Li y hudak diseñaron un sistema que es fácil de programar ( memoria compartida lógicamente ) y fácil de construir.

En los últimos años, un área de investigación intensa ha sido la de hacer que estos sistemas de memoria compartida distribuidas sean mas eficientes.

Page 6: Memoria Compartida Distribuida Expo

Objetivo:

*minimizar el trafico de la red

*reducir la latencia entre el momento de una solicitud a memoria y el momento que se satisface esta.

Page 7: Memoria Compartida Distribuida Expo

¿QUE ES LA MEMORIA COMPARTIDA?

es un tipo de implementación hardware y software, en la que cada nodo de un cluster tiene acceso a una amplia memoria compartida que se añade a la memoria limitada privada

Page 8: Memoria Compartida Distribuida Expo

Los sistemas de software DSM pueden ser implementados bajo un sistema operativo (SO), o como una biblioteca de programación.

Los sistemas de software DSM implementados en el SO pueden concebirse como extensiones de la arquitectura de memoria virtual subyacente.

Page 9: Memoria Compartida Distribuida Expo

 DSM tienen capacidad para:

*organizar la región de memoria compartida de manera flexible.

* Las aproximaciones basadas en páginas organizan la memoria compartida en páginas de tamaño fijo.

Page 10: Memoria Compartida Distribuida Expo

*Las aproximaciones basadas en objetos organizan la región como un espacio abstracto en el que se pueden almacenar objetos compartidos de tamaño variable.

Page 11: Memoria Compartida Distribuida Expo

La arquitectura de memoria compartida puede suponer la separación de la memoria en partes compartidas distribuidas entre los nodos y la memoria principal;  o la distribución de toda la memoria en los distintos nodos.

Page 12: Memoria Compartida Distribuida Expo

En la memoria compartida, los procesos utilizan variables que pueden leer/escribir para poder comunicarse.

Page 13: Memoria Compartida Distribuida Expo

Memoria en Circuitos

Page 14: Memoria Compartida Distribuida Expo
Page 15: Memoria Compartida Distribuida Expo

Multiprocesadores basados en bus

Page 16: Memoria Compartida Distribuida Expo

Bus La conexión entre el CPU y la memoria es una conexión de cables paralelos, algunos con la dirección a la que desea leer o escribir el CPU, algunos para enviar o recibir datos y el resto para controlar las transferencias.

Page 17: Memoria Compartida Distribuida Expo

Multiprocesador La forma simple de

construir un multiprocesador es basarlo en un bus al que se conecte mas de un CPU.

Page 18: Memoria Compartida Distribuida Expo

La desventaja de tener un solo bus es que con tres o cuatro CPU , este de seguro se sobrecargara.

El método usual para reducir la carga del bus es equipará cada CPU con un cache husmeador.

Page 19: Memoria Compartida Distribuida Expo
Page 20: Memoria Compartida Distribuida Expo
Page 21: Memoria Compartida Distribuida Expo

Un protocolo en particular común es el de escritura a través del caché. Cuando un CPU lee por primera vez una palabra de memoria, esa palabra es llevada por el bus y guardada en el caché del CPU solicitante.

Page 22: Memoria Compartida Distribuida Expo

Operación de lectura. Si la palabra no esta en el caché, entonces

buscarla en la memoria y copiarla a su caché. Si la palabra esta en el caché, tomar el dato de

ahí.

Page 23: Memoria Compartida Distribuida Expo

Operación de escritura Si ningún CPU tiene la palabra en su caché,

entonces la palabra es actualizada en memoria, como si el ocultamiento no hubiera sido utilizado.

Si el CPU (que realiza la escritura) tiene la única copia de la palabra, se actualiza su caché y también la memoria mediante el bus.

Page 24: Memoria Compartida Distribuida Expo

Existe otro tipo de protocolos como el protocolo de membresía. Una versión de este protocolo plantea lo siguiente. Se manejan bloques de caché, cada uno de los cuales puede estar en uno de los siguientes estados:

INVALIDO LIMPIO SUCIO

Page 25: Memoria Compartida Distribuida Expo

Estado inicial. La palabra W que contiene el valor w1 esta en la memoria y también está en el caché de B

Page 26: Memoria Compartida Distribuida Expo

A lee la palabra W y obtiene W1. B no responde a la lectura, pero la memoria si.

Page 27: Memoria Compartida Distribuida Expo

A escribe un valor W2. B husmea en el bus, ve la escritura e invalida su entrada. La copia de A se marca como sucio.

Page 28: Memoria Compartida Distribuida Expo

A escribe W de nuevo. Esta y las escrituras posteriores por A se realizan de manera local, sin tráfico en el bus.

Page 29: Memoria Compartida Distribuida Expo

C lee o escribe W. A ve la solicitud al husmear en el bus, proporciona el valor e invalida su propia entrada. C tiene ahora la única copia válida.

Page 30: Memoria Compartida Distribuida Expo

La palabra permanece el estado SUCIO hasta que se elimine del caché donde se encuentra en la actualidad por razones de espacio. En este momento, desaparece de todos los cachés y se escribe en la memoria.

Page 31: Memoria Compartida Distribuida Expo

Este protocolo (membresia) tiene 3 propiedades importantes:

La consistencia se logra haciendo que todos los cachés husmeen 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.

Page 32: Memoria Compartida Distribuida Expo

La desventaja es que no funciona para multiprocesadores de mayor tamaño y nada es válido para la memoria compartida distribuida.

Page 33: Memoria Compartida Distribuida Expo

6.2.3 multiprocesadores basados en anillo

Page 34: Memoria Compartida Distribuida Expo

En Memnet, un espacio de direcciones se divide en una parte privada y una compartida.

La parte compartida se divide en bloques de 32 bytes, unidad mediante la cual se realizan las transferencias entre las máquinas.

Page 35: Memoria Compartida Distribuida Expo

Las máquinas Memnet están conectadas mediante un anillo de fichas modificado. El anillo consta de 20 cables paralelos, que juntos permiten enviar 16 bits de datos y 4 bits de control cada 100 nanosegundos, para una velocidad de datos de 160 Mb/seg.

Page 36: Memoria Compartida Distribuida Expo

En la siguiente figura se observa el anillo Memnet.

Page 37: Memoria Compartida Distribuida Expo

La interfaz de anillo, MMU(Unidad de Administrador de memoria), el chache. Y una parte de la memoria se intregran en el dispositivo Memnet

Page 38: Memoria Compartida Distribuida Expo

Un bloque exclusivo de lectura puede estar presente en varias máquinas, uno de lectura-escritura debe estar presente en una sola máquina.

Los bits en el dispositivo Memnet indican uno o más de los siguientes estados:

Page 39: Memoria Compartida Distribuida Expo

VALIDO: El bloque esta presente en el caché y está actualizado.EXCLUSIVO: La copia local es la única.ORIGEN: Se activa si ésta es la máquina origen del bloque.INTERRUPCION: Se utiliza para forzar interrupciones.POSICION: Indica la localización del bloque en el caché si esta presente y es válido. 

Page 40: Memoria Compartida Distribuida Expo

Protocolo Memnet.

Lectura.Cuando un CPU desea leer una palabra de la memoria compartida, la dirección de memoria por leer se transfiere al dispositivo Memnet, el cual verifica la tabla del bloque para ver si está presente. Si es así, la solicitud es satisfecha de inmediato.

Page 41: Memoria Compartida Distribuida Expo

En caso contrario, el dispositivo Memnet espera hasta capturar la ficha que circula:• Coloca un paquete de solicitud en el anillo y

suspende el CPU. • El paquete de solicitud contiene la dirección

deseada y un campo vacío de 32 bytes.

Page 42: Memoria Compartida Distribuida Expo

Cada dispositivo Memnet en el anillo verifica si tiene el bloque. De ser así, coloca el bloque en el campo vacío y modifica el encabezado del paquete para inhibir la acción de las máquinas posteriores.

Page 43: Memoria Compartida Distribuida Expo

Si el bit exclusivo del bloque está activo, se limpia. Cuando el paquete regresa al emisor, se garantiza que contiene al bloque solicitado. El CPU que envía la solicitud guarda el bloque, satisface la solicitud y libera al CPU.

Si la máquina solicitante no tiene espacio libre en su caché para contener el bloque recibido, entonces toma al azar un bloque oculto y lo envía a su origen, con lo que libera un espacio de caché.

Page 44: Memoria Compartida Distribuida Expo

Escritura.Se presentan 3 casos:

1. Si el bloque contiene la palabra por escribir está presente y es la única copia en el sistema, el bit exclusivo esta activado, la palabra solo se escribe de manera local.

Page 45: Memoria Compartida Distribuida Expo

2. Si esta presente el bloque, pero no es la única copia, se envía primero un paquete de invalidación por el anillo para que las otras máquinas desechen sus copias del bloque por escribir. Cuando el paquete de invalidación regresa al solicitante, el bit exclusivo se activa para ese

bloque y se procede a la escritura local.

Page 46: Memoria Compartida Distribuida Expo

3. Si el bloque no está presente, se envía un paquete que combina una solicitud de lectura y una de invalidación. La primera máquina que tenga el bloque lo copia en el paquete y desecha su copia. Todas las máquinas posteriores solo desechan el bloque de sus cachés. Cuando el paquete regresa al emisor, éste lo guarda y escribe en él.

Page 47: Memoria Compartida Distribuida Expo

6.2.4 Multiprocesadores con conmutadores

Page 48: Memoria Compartida Distribuida Expo

Los multiprocesadores basados en bus y los basados en anillo trabajan bien para sistemas pequeños menores a 64 CPU, no se escalan bien a sistemas con cientos o miles de CPU, al agregar CPU en algún punto se satura el ancho de banda del bus o anillo.

Añadir mas CPU no mejora el desempeño del sistema

Page 49: Memoria Compartida Distribuida Expo

Se tienen dos métodos para atacar el problema de ancho de banda insuficiente:

1. Reducir la cantidad de comunicación

2. Incrementar la capacidad de comunicación

Page 50: Memoria Compartida Distribuida Expo

Un método consiste en construir el sistema como una jerarquía. Se continúan colocando algunos CPU en un bus, pero ahora se considera todo esto como unidad.

Se construye el sistema como varias unidades y se conectan estas mediante un bus entre ella.

Page 51: Memoria Compartida Distribuida Expo

Mientras mas CPU se comuniquen principalmente desde de su unidad, habrá relativamente menos trafico entre la unidades.

Si en un bus la unidades es inadecuado, se añade un segundo bus de este tipo, o se ordenan las unidades en un árbol o cuadricula.

Page 52: Memoria Compartida Distribuida Expo

Si se necesitan mayor ancho de banda, se reúne un bus, un árbol o una cuadricula de unidades en una súper unidad y se separa al sistema en varias súper unidades.

Page 53: Memoria Compartida Distribuida Expo

Las superunidades se pueden conectar mediante un bus, árbol, o cuadricula y así en lo sucesivo.

Page 54: Memoria Compartida Distribuida Expo

Como diseño jerárquico basado en cuadricula de unidades tenemos la maquina llamada DASH, que fue construido como n proyecto de investigación de la universidad de Stanford

Consta de 16 unidades, cada una de la cuales contiene un bus, cuatro CPU; 16 megas de memoria y algunos equipos de entrada y salida los cuales fueron omitidos para evitar confusiones.

Page 55: Memoria Compartida Distribuida Expo

El espacio total disponible de directorios en el prototipo es de 256M, dividido en 16 regiones de 16M cada uno. La memoria global de la unidad 0 contiene la direcciones 0 a 16M. La memoria global de la unidad 1 contiene las direcciones de 16 a 32, etcétera.

Page 56: Memoria Compartida Distribuida Expo

La memoria es oculta y transferida en bloques de 16 bytes, de modo que cada unidad tiene bloques de memoria de 1M dentro de su espacio de direcciones.

Page 57: Memoria Compartida Distribuida Expo

Vista simplificada de la arquitectura DASH

Page 58: Memoria Compartida Distribuida Expo

Directorios

Cada unidad tiene un directorio con un registro de las unidades que tienen copias de sus bloques, como cada unidad tiene 1M cloques de memoria, tiene 1M de entradas en su directorio, una por bloque.Cada entrada contiene un mapa de bits, con un bit por unidad, que dice si esa unidad tiene el bloque oculto.

Page 59: Memoria Compartida Distribuida Expo

Los directorios son esenciales para la operación DASH Directory Architecture for Shared memory(arquitectura de directorios para memoria compartida)

Cada unidad DASH se conecta a una interfaz que le permite comunicarse con otras unidades. Las interfaces se conectan mediante enlaces entre las unidades (buses primitivos) en una cuadricula rectangular.

Page 60: Memoria Compartida Distribuida Expo

El sistema de enlaces entre las unidades utiliza el ruteo de seguimiento de tuneles.

• significa que la primera parte de un paquete puede adelantarse aun antes de recibir todo el paquete, lo que reduce la espera en cada salto.

Page 61: Memoria Compartida Distribuida Expo

Directorio DASH

Page 62: Memoria Compartida Distribuida Expo

Ocultamiento

Se lleva a cabo en dos niveles: un cache de primer nivel y un cache mayor de segundo nivel .

Cada cache de segundo nivel monitprea el bus local utilizando un protocolo.

Page 63: Memoria Compartida Distribuida Expo

Cada bloque de cache puede estar en alguno de los siguientes estados:

1. NO OCULTO: la unica copia del bloque esta en esta memoria.

2. LIMPIO: la memoria esta actualizada; el bloque puede encontrarse en carios caches.

3. SUCIO: la memoria es incorrecta; solo un cache contiene al bloque.

Page 64: Memoria Compartida Distribuida Expo

El protocolo DASH se basa en la membrecía y la invalidación. En cada momento, cada bloque de cache tiene un propietario.

Para un bloque NO COLUTO o LIMPIO la unidad de origen de bloques es el propietario.

Page 65: Memoria Compartida Distribuida Expo

Para un bloque SUCIO la unidad que contiene la única copia es el propietario.

Para escribir en un bloque LIMPIO primero hay que encontrar e invalidar todas las copias existentes.

Page 66: Memoria Compartida Distribuida Expo

Consideremos como leer un CPU una palabra en memoria.

Primero verifica sus propias caches, si ningún cache tiene la palabra, se hace una solicitud en el bus de la unidad local para ver si otro CPU de La unidad tiene el bloque con dicha palabra.Si uno la tiene, se ejecuta una transferencia del bloque entre los caches, para colocar el bloque en el cache del CPU solicitante.

Page 67: Memoria Compartida Distribuida Expo

Si el bloque esta LIMPIO, se hace una copia; si esta SUCIO, el directorio de origen es informado de que el bloque se encuentra ahora LIMPIO y compartido.

Un éxito de uno de los caches satisface la instrucción pero no afecta ningún mapa de bits de directorio.

Page 68: Memoria Compartida Distribuida Expo

6.2.5PROCESADORES NUMA

Page 69: Memoria Compartida Distribuida Expo

Procesadores NUMA (acceso no uniforme a memoria) Tradicional, una maquina NUMA tiene un espacio de direcciones virtuales visible para todos los CPU. Cuando cualquier CPU escribe un valor en la localidad “a”, una lectura posterior por un procesador diferente regresara el valor recién escrito.

Page 70: Memoria Compartida Distribuida Expo

En una maquina NUMA El acceso a una memoria remota es mucho más lento el acceso que a una local y no se intenta ocultar este echo mediante un ocultamiento en hardware.

Page 71: Memoria Compartida Distribuida Expo

Así, un CPU ejecuta de forma directa un programa que resida en una memoria remota, pero el programa puede ejecutarse en orden de magnitud mas lento que si estuviera en la memoria local

Page 72: Memoria Compartida Distribuida Expo

La primera maquina NUMA estaba conformada por varias unidades cada una con un CPU, un MMU micro programable, un modulo de memoria y posiblemente algunos dispositivos de E/S todos conectados mediante un bus, no había caches.

Page 73: Memoria Compartida Distribuida Expo

La unidad de manejo de memoria (MMU) es un dispositivo de Hardware formado por un grupo de circuitos integrados, responsable del manejo de los accesos a la memoria por parte de la Unidad de Procesamiento Central (CPU).

Page 74: Memoria Compartida Distribuida Expo

Cuando un CPU hacia una llamada a memoria la solicitud llegaba al MMU de CPU que examinaba los bits superiores de la dirección para ver cual memoria se solicitaba..

Page 75: Memoria Compartida Distribuida Expo

Si la dirección era local, el MMU solo hacia la solicitud en el bus local, si correspondía a una memoria distante, el MMU construir un paquete de solicitud con la dirección y lo enviaba a la unidad destino mediante un bus entre las unidades

Page 76: Memoria Compartida Distribuida Expo

Al recibir el paquete el MMU destino llevaba acabo la operación y regresaba la palabra o un reconocimiento. Aunque era posible ejecutar un CPU por completo desde una memoria remota el envió de un paquete por cada palabra leída y cada palabra escrita reducía la velocidad de la operación.

Page 77: Memoria Compartida Distribuida Expo
Page 78: Memoria Compartida Distribuida Expo

Propiedades de los multiprocesadores numa Las maquinas numa tienen tres propiedades claves: Es posible el acceso a la memoria remota El acceso a la memoria remota es mas

lento que el de la memoria local El tiempo del acceso remoto no se oculta

mediante el uso de los caches

Page 79: Memoria Compartida Distribuida Expo

Cuando se toca una palabra remota, se trae un bloque de memoria alrededor de ella hacia el cache del procesador solicitante, de modo que las llamadas posteriores tengan gran velocidad aun que haya un ligero retraso para manejar la falta de cache.

Page 80: Memoria Compartida Distribuida Expo

Las maquinas NUMA no tienen esta propiedad, de modo que si importa cual pagina esta localizada en cual memoria, es decir, en cual maquina. El problema clave en el software de NUMA es la decisión de donde colocar cada pagina para maximizar el desempeño

Page 81: Memoria Compartida Distribuida Expo

6.2.6COMPARACION DE LOS SISTEMAS CON MEMORIA COMPARTIDA

Page 82: Memoria Compartida Distribuida Expo

Multiprocesadores con bus con caches en hardware y que mantienen la consistencia al husmear en el bus estas son las maquinas de memoria compartida mas sencillas y operan por completo en hardware.

Page 83: Memoria Compartida Distribuida Expo

Después vienen los multiprocesadores conmutadores como son la maquina de Stanford Dash y la maquina Alewife de M.I.T estas también tienen ocultamiento de hardware pero utilizan directorios y otras estructuras de datos para llevar un registro de los CPU o unidades que tienen ciertos bloques de cache.

Page 84: Memoria Compartida Distribuida Expo

Después vienen las maquinas de NUMA estas son hibridas entre el control de hardware o del software. Como en los microprocesadores, cada CPU NUMA tiene acceso a cada palabra del espacio de direcciones virtuales común solo al leerlo o escribir en el.

Page 85: Memoria Compartida Distribuida Expo

Continuando llagamos a las maquinas que ejecutan un sistema de memoria compartida distribuida, cada uno de los CPU en este sistema tiene su memoria privada y a diferencia de las maquinas NUMA y los multiprocesadores UMA no pueden hacer llamadas a memoria remotas de forma directa

Page 86: Memoria Compartida Distribuida Expo

Después llagamos a la maquinas que comparten solo una porción selecta de sus espacios de direcciones, como las variables comapartidas y otras estructuras de datos. Se requiere información adicional del usuario para determinar cuales variables son compartidas y cuales no

Page 87: Memoria Compartida Distribuida Expo

Por ultimo tenemos a los sistemas que trabajan con memoria compartida distribuida basada en objetos a diferencia de los demás aquí los programas no pueden solo tener acceso a los datos compartidos, tienen que recorrer métodos protegidos lo que significa que el sistema de ejecución puede tener siempre el control de cada acceso

Page 88: Memoria Compartida Distribuida Expo
Page 89: Memoria Compartida Distribuida Expo

BIBLIOGRAFÌA http://

www.google.com.mx/imgres?q=memoria+cache

Sistemas operativos distribuidos Andrew Tanenbaum