Вы находитесь на странице: 1из 6

Sistemas Operativos Distribuidos

ndice

Sistemas Operativos Distribuidos

Memoria
compartida
distribuida
(DSM, Distributed
Shared Memory)

Introduccin
Estrategias de implementacin
Mediante memoria virtual (VM-DSM)
Por compilador y entorno en tiempo de ejecucin (RT-DSM)

Aspectos de diseo de DSM

Esquema de gestin y poltica de actualizacin de copias


Sincronizacin
Localizacin de copias
False-sharing y thrashing

Modelos de coherencia de memoria

Sistemas Operativos Distribuidos


2

Prembulo: clasificacin de sis. paralelos

Fernando Prez Costoya

Memoria centralizada y compartida

2 Factores:
mem. centralizada versus distribuida
mem. privada versus compartida

Clasificacin:

Mem. centralizada y compartida multiprocesadores


Mem. distribuida y privada sistemas distribuidos
Mem. distribuida y compartida Distributed Shared Memory (DSM)

Distributed Shared Memory (DSM)

escalable

Mediante hardware:
Multiprocesadores NUMA (acceso a memoria no uniforme)

Mediante software Objetivo de la presentacin (DSM Software )

programacin

Incluir software en SD para ofrecer DSM


Sistemas Operativos Distribuidos
3

Fernando Prez Costoya

6- Memoria Compartida Distribuida

Sistemas Operativos Distribuidos


4

Fernando Prez Costoya

Sistemas Operativos Distribuidos


SD: Memoria distribuida y privada
P

escalable

DSM HW: Memoria distribuida y compartida


P

M
NUMA

programacin
P

Red

Sistemas Operativos Distribuidos


5

Fernando Prez Costoya

DSM SW: Memoria distribuida y compartida

Red

Sistemas Operativos Distribuidos


6

Fernando Prez Costoya

Introduccin (1/2)
Multiprocesadores con mem. compartida vs. s. distribuidos:

P
M

HW ms complejo y difcilmente ampliable


SW ms sencillo y mejor conocido

Modelo de programacin en sistemas con mem. compartida


Red

DSM

DSM

DSM

Llamadas a procedimiento (o invocacin de mtodos)


Comunicacin mediante datos compartidos
Sincronizacin mediante semforos o mecanismos equivalentes

Modelo de programacin tradicional en s. distribuidos


Paso de mensajes para comunicacin y sincronizacin

DSM

Querra ejecutar en SD aplicacin paralela basada en m.comp.


Nuevo modelo de programacin en s. distribuidos

RPC (o RMI) + DSM


Sistemas Operativos Distribuidos
7

Fernando Prez Costoya

6- Memoria Compartida Distribuida

Sistemas Operativos Distribuidos


8

Fernando Prez Costoya

Sistemas Operativos Distribuidos


Introduccin (2/2)

Implementacin VM-DSM

Memoria compartida distribuida (DSM)

Memoria compartida implementada por software


Simulada mediante paso de mensajes
Comunicacin con datos compartidos y sincronizacin con semforos

Objetivo:

Sistemas fciles de construir y programar


Especialmente adecuada para aplicaciones paralelas

Programa concurrente con estructuras de datos compartidas

Limitada aplicacin para cliente-servidor

Proveedor y consumidor de servicios no deberan compartir memoria

Problemas:

Rendimiento aceptable requiere mltiples copias en distintos nodos


Problema de coherencia: Similar a multiprocesadores pero por SW

Difcil manejar heterogeneidad


Sistemas Operativos Distribuidos
9

Extensin de m. virtual que permite solicitar pginas remotas


Accesos a DSM convencionales (LOAD/STORE)
Fallo de pgina no local, se solicita a mquina remota

Normalmente implementada en modo usuario

Se impide acceso a pgina no presente en mquina local (mprotect)


En tratamiento de excepcin (SEGV), solicita pgina remota
Se instala la pgina en mapa de proceso con permiso de acceso
Proceso reanuda ejecucin de forma transparente

Caractersticas:

Dificulta tratamiento de heterogeneidad


No sobrecarga en accesos pero s por tratamiento de fallos
False sharing

Ejemplos:

Ivy, TreadMarks, Munin

Fernando Prez Costoya

Implementacin RT-DSM

Sistemas Operativos Distribuidos


10

Fernando Prez Costoya

Gestin y actualizacin de copias

Extensin del compilador + biblioteca DSM en t. ejecucn


Acceso dato compartido, compilador traduce en LOAD/STORE
Pero adems en llamada a DSM

Por cada dato compartido, el compilador asigna espacio extra:


Por ejemplo, bits de modificado y validez, n de versin, timestamp, ...

Caractersticas:

Alternativas:
Write-invalidate:
Actualizacin genera invalidacin de copias
Mltiples copias de lectura (read-replication)
Mltiples lectores/nico escritor

Ivy, Treadmarks, Munin (configurable)

Write-update:
Actualizacin se propaga a copias
Mltiples copias tanto de lectura como de escritura (full-replication)

Facilita tratamiento de heterogeneidad


Sobrecarga en cada acceso
No False sharing

Mltiples lectores/mltiples escritores

Midway, Munin (configurable)

En ambas opciones puede usarse multicast

Ejemplos:
Midway
Sistemas Operativos Distribuidos
11

Fernando Prez Costoya

6- Memoria Compartida Distribuida

Sistemas Operativos Distribuidos


12

Fernando Prez Costoya

Sistemas Operativos Distribuidos


Sincronizacin y localizacin de copias
Sincronizacin

False-sharing y thrashing
False- sharing

Aplicaciones usan mecanismos tradicionales

Puede ocurrir si tamao(unidad de transferencia) > tamao(dato)

cerrojos, barreras, semforos, ...

S en VM-DSM; No en RT-DSM
Pgina puede contener datos independientes que se escriben a la vez
Se puede reducir con asignacin inteligente de datos

Factible pero ineficiente implementacin basada en TestAndSet


Genera mucho trfico de accesos e invalidaciones superfluas

Implementacin basada directamente en mensajes explcitos

Localizacin de copias
Mediante broadcast
Poco escalable

Gestor mantiene informacin sobre copias de todos los datos


Cuello de botella, falta de escalabilidad y punto nico de fallo

Varios gestores: cada uno guarda info. sobre subconjunto de datos


DSM basada en pginas: Reparto dependiendo de nmero de pgina

Solucin extrema: dato ocupa n entero de pginas (fragmentacin)

Mayor trfico en la red


Write-invalidate invalidaciones innecesarias
Write-update posible sobrescritura errnea de datos
Uso de twins y diffs para paliar problemas (TreadMarks, Munin)

Thrashing

Procesos compitiendo por dato (realmente o por false-sharing)


Pgina viaja continuamente entre procesadores (ping-pong)
Suele existir un intervalo mnimo de permanencia en un nodo

Manteniendo cadena de dueos probables


Sistemas Operativos Distribuidos
13

Fernando Prez Costoya

Modelo de coherencia de memoria


Compromiso del s. memoria respecto a accesos de programa
Qu garantiza s. memoria compartida HW o SW a las aplicaciones
Qu valor devuelve cada acceso de lectura

Obviamente, programador querra coherencia estricta:


Lectura devuelve valor de escritura ms reciente

Ineficiente incluso en sistemas de memoria compartida

Adems, aunque HW de memoria la asegure hay otros factores:


Procesador y compilador reordenan instrucciones
Compilador guarda variables en registros

Fernando Prez Costoya

Modelos de coherencia uniformes


Coherencia secuencial (Lamport 1979):

Resultado equivalente a que los accesos a memoria de procesadores


se ejecutaran en algn orden secuencial apareciendo las operaciones
de cada uno en el orden especificado por su programa.
Definicin similar a la seriabilidad de las transacciones
Todos los procesadores ven accesos a memoria en el mismo orden
Aunque puede ser del tiempo real exacto de emisin de los accesos

Coherencia secuencial permite muy pocas optimizaciones


Escritura debe esperar hasta que se complete propagacin
No escalable

Modelo de memoria de Java no es estricto

Modelo de memoria: compromiso coherencia y rendimiento


Garantas de coherencia menos estricta mayor rendimiento
Permiten optimizaciones (p.e. retardar propagacin de cambios)
Pero ofrecen modelo de programacin menos intuitivo

Sistemas Operativos Distribuidos


15

Sistemas Operativos Distribuidos


14

Fernando Prez Costoya

6- Memoria Compartida Distribuida

Uso de modelos de coherencia ms relajados (vase figura)


Modelos presentados hasta ahora son de tipo uniforme
Tratan igual todos los accesos a memoria
No suficientemente relajados para DSM

Sistemas Operativos Distribuidos


16

Fernando Prez Costoya

Sistemas Operativos Distribuidos


Modelos de coherencia ms relajados

Modelos de coherencia hbridos


Programa bien construido no condiciones de carrera
Accesos conflictivos a datos deben usar seccin crtica (SC)

Modelos de coherencia hbridos


Obviados en la presentacin
por no usarse en DSM

Memory Consistency Models . David Mosberger, 1993


Sistemas Operativos Distribuidos
17

Fernando Prez Costoya

M. coherencia hbridos: ERC|LRC|EC

Distinguen operaciones de accesos a datos y de sincronizacin


Tienen en cuenta sincronizacin para mantener coherencia de datos
No se requiere propagar escrituras sobre datos inmediatamente
Necesario gestionar un bit de modificado

Si no condiciones de carrera equivalencia a c. secuencial


Accesos conflictivos sin sincronizacin: resultado impredecible
Varios modelos: de liberacin, de entrada, de mbito, ...
Distinguir dos tipos de operaciones de sincronizacin:

Por pgina en VM-DSM; Por variable en RT-DSM

Entrada en SC (acquire)
Salida de SC (release)

Sistemas Operativos Distribuidos


18

Fernando Prez Costoya

ERC vs. LRC

Coherencia de liberacin impaciente (ERC): Munin


Al salir SC: Cambios realizados durante SC se propagan a copias

Se invalidan (si write-invalidate) o se envan cambios (si write-update)

Coherencia de liberacin perezosa (LRC): TreadMarks


No propagar cambios hasta que otro proceso los necesite
P entra SC cerrojo C: obtiene cambios de ltimo proceso Q que tuvo C
P debe ver cambios hechos por Q y previos que tengan relacin causal
Sucesin de SC sobre un cerrojo establecen un orden causal

Coherencia de entrada (EC): Midway


Todo dato compartido asociado al menos a una v. sincro (cerrojo)
P entra SC cerrojo C: pide cambios a ltimo proceso Q que tuvo C

P debe ver cambios hechos por Q y previos que tengan relacin causal
Pero slo cambios de los datos asociados a C

Lazy Release Consistency for Distributed Shared Memory.


Tesis de Peter Keleher, 1995

Sistemas Operativos Distribuidos


19

Fernando Prez Costoya

6- Memoria Compartida Distribuida

Sistemas Operativos Distribuidos


20

Fernando Prez Costoya

Sistemas Operativos Distribuidos


False sharing en VM-DSM con m. hbridos

Orden causal en LRC

Procesos pueden acceder a datos disjuntos en misma pgina


No necesitan SC entre ellos ya que no hay condicin de carrera

Al propagar copias se sobrescriben cambios


Solucin: twins y diffs
Se prohbe modificar la pgina
Cuando se produce una excepcin (STORE)
Se hace una copia de trabajo (twin)

Al salir SC (Munin) o cuando otro proc. pida cambios (ThreadMarks)


Se calcula diferencias (diff)
Se propaga (mediante invalidacin o actualizacin) slo diff
El receptor mezcla diffs con su copia de la pgina

Elimina problema de sobrescritura y reduce trfico


Coste de copias y clculo de diferencias

Lazy Release Consistency for Distributed Shared Memory.


Tesis de Peter Keleher, 1995
Sistemas Operativos Distribuidos
21

Fernando Prez Costoya

Twins y Diffs en Munin

Fernando Prez Costoya

Mltiples escritores sobre misma pgina

Design of the Munin Distributed Shared Memory System.

Lazy Release Consistency for Distributed Shared Memory.

John B. Carter
Sistemas Operativos Distribuidos
23

Sistemas Operativos Distribuidos


22

Tesis de Peter Keleher, 1995


Fernando Prez Costoya

6- Memoria Compartida Distribuida

Sistemas Operativos Distribuidos


24

Fernando Prez Costoya