7
MEMORIA GLOBAL DISTRIBUIDA

Memoria Global

Embed Size (px)

DESCRIPTION

memoria global, trabajo para computadoras

Citation preview

Page 1: Memoria Global

MEMORIA GLOBAL DISTRIBUIDA

Page 2: Memoria Global

En computación,  la Distributed Shared Memory (DSM,  o  memoria  distribuida compartida)  una  abstracción  utilizada  para  la compartición  de  datos  entre  procesos  en computadores  que  no  comparten  memoria física. Los   procesos acceden a DSM para  leer y actualizar, dentro de sus espacios y direcciones, sobre  lo  que  aparenta  ser  la  memoria  interna normal asignada a un proceso.

Page 3: Memoria Global

CONCEPTOS• 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.• Estos  sistemas  son  transparentes al  desarrollador,  lo que  significa que  la 

memoria  distribuida  subyacente  está  completamente  oculta  para  los usuarios.

• 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.

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

Page 4: Memoria Global

MODELOS DE SINCRONIZACION

• Para poder utilizar DSM se debe construir un servicio de sincronización distribuida que incluya construcciones como bloqueos o semáforos. 

• La sincronización se realiza a nivel de la aplicación. 

• La implementación de DSM debe incluir los mecanismos de sincronización como un componente integrado. 

Page 5: Memoria Global

MODELOS DE COHERENCIA

•  La  replicación  de  datos  por  motivos  de  rendimiento  implica  que  debemos  controlarlos  accesos  concurrentes  para  evitar  se  ejecuten  en  un  orden  diferente  delesperado.•  Informalmente,  se  dice  que  una  memoria  es  coherente  si  el  valor  devuelto  comoresultado  de  una  operación  de  lectura  es  siempre  el  valor  que  el  programadorespera.

Para obtener un buen rendimiento se requiere múltiples copias de los datos• Coherencia atómica:• Lectura devuelve valor de escritura más reciente• Difícil de implementar en sistemas distribuidos• Compromiso entre coherencia y rendimiento:• Modelos de coherencia más “relajados”• Modelo de coherencia:• Qué garantiza el sistema de memoria a las aplicaciones• Modelos propuestosprovienen de coherencia de cachémultiprocesadores• Similitud con semántica de uso concurrente en FSD

Page 6: Memoria Global

Aproximaciones a la Implementación 

• Hardware: Hardware especializado para proveer a los procesadores una visión consistente de la memoria compartida. Requieren de sistemas de conexión  de  alta  velocidad.  Ejemplo:  El  prototipo del multiprocesador Dash tiene 64 nodos conectados mediante una arquitectura NUMA. 

• Memoria Virtual Paginada: sistemas como Ivy, Munin, Mirage, Clouds, Choices y Mether implementan  DSM  como  una  región  de  memoria virtual  que  ocupa  el  mismo  espacio  de  direcciones  en  el  espacio  de direcciones de cada proceso participante. Esta  implementación sólo es factible  sobre  una  colección  de  computadores  homogéneos  con formatos de datos y paginación comunes. 

Page 7: Memoria Global

• Middleware: algunos lenguajes del tipo de ORCA o sistemas como  Linda,  JavaSpaces  o  Tspaces  proporcionan  DSM  sin necesidad de soporte de hardware o de paginación. Cuando un proceso accede a un dato compartido, realiza una llamada que es interceptada por un proceso en un nivel más bajo, el cual  realiza  el  acceso  local  o  una  llamada  remota  según  se necesite.  No  está  pensado  para  utilizar  código  existente  de memoria  compartida.  No  se  comparten  posiciones  de memoria sino abstracciones de mayor nivel como objetos.