memoria compartida distribuida

38
 Memoria Compartida Memoria Compartida Distribuida Distribuida Carina Giron Carina Giron Miguel Martínez Miguel Martínez

Transcript of memoria compartida distribuida

Page 1: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 1/38

Memoria CompartidaMemoria Compartida

DistribuidaDistribuida

Carina GironCarina Giron

Miguel MartínezMiguel Martínez

Page 2: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 2/38

De qué se trataDe qué se trata

La memoria compartida distribuida (DSM) es unaLa memoria compartida distribuida (DSM) es unaabstracción utilizada de compartir datos entreabstracción utilizada de compartir datos entrecomputadores que no comparten memoria física.computadores que no comparten memoria física.Los procesos acceden a DSM para leer yLos procesos acceden a DSM para leer y

actualizar, dentro de sus espacios de direcciones,actualizar, dentro de sus espacios de direcciones,sobre lo que aparenta ser la memoria internasobre lo que aparenta ser la memoria internanormal asignada a un proceso. Sin embargo,normal asignada a un proceso. Sin embargo,existe un sistema subyacente en tiempo deexiste un sistema subyacente en tiempo deejecución que asegura de forma transparente queejecución que asegura de forma transparente queprocesos diferentes ejecutándose enprocesos diferentes ejecutándose en

computadores diferentes observen lascomputadores diferentes observen lasactualizaciones realizadas entre ellas. Es como siactualizaciones realizadas entre ellas. Es como silos procesos accedieran a una única memorialos procesos accedieran a una única memoriacompartida, pero de hecho la memoria física estácompartida, pero de hecho la memoria física estádistribuidadistribuida..

Su principal objetivo es el procesamiento paraleloSu principal objetivo es el procesamiento paraleloy la campartición de datos.y la campartición de datos.

Page 3: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 3/38

Memoria física Memoria física Memoria física

Memoria Compartida Distribuida

DSM se muestra

como Memoria en

el espacio de

direcciones del

ProcesoProceso accediendo a DSM

Page 4: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 4/38

DSM utiliza:DSM utiliza:

Gestión de Replicas: cadaGestión de Replicas: cadacomputadora tiene una copia local decomputadora tiene una copia local deaquellos datos almacenados en DSMaquellos datos almacenados en DSM

que se usaron recientemente paraque se usaron recientemente paraacelerar su acceso.acelerar su acceso.

Pasaje de mensajes: no se eliminaPasaje de mensajes: no se elimina

completamente pues se lo utilizacompletamente pues se lo utilizapara enviar actualizaciones entre laspara enviar actualizaciones entre lascomputadoras.computadoras.

Page 5: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 5/38

DSM frente a pasaje deDSM frente a pasaje de

mensajesmensajes Son comparables por:Son comparables por:

1.1. Modelo de programaciónModelo de programación: En pasaje de: En pasaje demensaje se utiliza el empaquetamiento ymensaje se utiliza el empaquetamiento ydesempaquetamiento de datos paradesempaquetamiento de datos para

 ³compartirlos´. En DSM no es necesario. La ³compartirlos´. En DSM no es necesario. Lasincronización es implicita en pasaje de mensajesincronización es implicita en pasaje de mensajey en DSM se utilizan ecanismos como bloques yy en DSM se utilizan ecanismos como bloques ysemaforos. En DSM no es necesario la ejecuciónsemaforos. En DSM no es necesario la ejecuciónsolapada como en pasaje de mensaje.solapada como en pasaje de mensaje.

2.2. EficienciaEficiencia: en pasaje de mensaje los accesos: en pasaje de mensaje los accesosremotos son explícitos pero en DSM no pues noremotos son explícitos pero en DSM no pues nose sabe si se accede a un dato local al proceso ose sabe si se accede a un dato local al proceso ohay una comunicación por medio.hay una comunicación por medio.

Page 6: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 6/38

 Aproximaciones hacia la Aproximaciones hacia la

implementaciónimplementaciónDSM se implementa utilizando uno deDSM se implementa utilizando uno de

los siguientes métodos o bien unalos siguientes métodos o bien una

combinación de ellos:combinación de ellos: Hardware especializadoHardware especializado

Memoria virtual paginadaMemoria virtual paginadaconvencionalconvencional

MiddlewareMiddleware

Page 7: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 7/38

Hardware especializadoHardware especializado

Se basa en la arquitectura NUMA.Se basa en la arquitectura NUMA.

Gestionan las instrucciones LOAD y STOREGestionan las instrucciones LOAD y STOREpara que los procesos se comuniquen conpara que los procesos se comuniquen conla memoria remota y los módulos dela memoria remota y los módulos decaché.caché.

Se comunican mediante interconexionesSe comunican mediante interconexiones

de alta velocidad similares a una red.de alta velocidad similares a una red. Utilizan técnicas de software de alto nivelUtilizan técnicas de software de alto nivel

para minimizar la cantidad depara minimizar la cantidad decomunicaciones entre los componentes decomunicaciones entre los componentes de

una implementación DSM.una implementación DSM.

Page 8: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 8/38

Memoria virtual paginadaMemoria virtual paginada

Utiliza memoria virtual que ocupa unUtiliza memoria virtual que ocupa unmismo rango de direcciones en elmismo rango de direcciones en elespacio de direcciones de losespacio de direcciones de los

procesos participantes.procesos participantes. Solo se puede utilizar entreSolo se puede utilizar entre

computadoras homogéneas con loscomputadoras homogéneas con los

formatos de datos y de paginasformatos de datos y de paginascomunes.comunes.

Actualmente se implementan,Actualmente se implementan,mayoritariamente, a nivel de usuariomayoritariamente, a nivel de usuario

por su flexibilidad.por su flexibilidad.

Page 9: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 9/38

MiddlewareMiddleware

Se realiza mediante comunicación entreSe realiza mediante comunicación entreniveles de soporte de usuario de losniveles de soporte de usuario de loscliente y los servidores.cliente y los servidores.

Se realizan llamadas a este nivel para elSe realizan llamadas a este nivel para elacceso a datos en DSM.acceso a datos en DSM.

Capa instancia accede a los datos locales yCapa instancia accede a los datos locales yse intercambian información parase intercambian información para

mantener la consistencia.mantener la consistencia. Permite abstracción de mayor nivel sobrePermite abstracción de mayor nivel sobre

los objetos compartidos, en lugar delos objetos compartidos, en lugar dehacerlo sobre posiciones de memoriahacerlo sobre posiciones de memoria

compartida.compartida.

Page 10: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 10/38

Diseño e implementaciónDiseño e implementación

Aspectos que deben considerarse en eldiseño de una DSM.

Estructura.

Modelo de sincronización.

Modelo de consistencia.

Opciones de actualización.

Granularidad.

Thrashing

Page 11: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 11/38

Estructura del espacio de memoriaEstructura del espacio de memoria

compartidacompartida La estructura define la abstracción de la vista a losprogramadores de aplicaciones en un sistema DSM.

Puede ser vista para unos como palabra y para otros comoobjetos.

No estructurada: es un arreglo de palabras.

Por tipo de datos:1. Orientado a byte: se usa como la memoria virtual ordinaria(Mether , Ivy). Se almacena cualquier tipo de estructura en lamemoria compartida. Los objetos compartidos sondireccionables. Solo se permite operaciones de LOAD y STORE.

2. Orientado a objetos: se usa una estructura de pila odiccionario (Orca, Clouds). Los elementos de la memoriacompartida se modifican solo mediante invocaciones sobre elobjeto.

3. Datos inmutable: es una colección de datos inmutables que losprocesos pueden leer, sumar y eliminar (Agora, Linda). Porejemplo las tuplas.

Page 12: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 12/38

Modelo de sincronizaciónModelo de sincronización

Las construcciones de sincronizaciónLas construcciones de sincronizaciónse hace mediante pasaje dese hace mediante pasaje demensajes.mensajes.

La instrucción TestAndSet se puedeLa instrucción TestAndSet se puedeaplicar a sistemas DSM basados enaplicar a sistemas DSM basados enpaginas pero su implementaciónpaginas pero su implementaciónpuede ser ineficiente.puede ser ineficiente.

La sincronización es a nivel deLa sincronización es a nivel deaplicación para reducir la cantidad deaplicación para reducir la cantidad detransmisiones de actualización.transmisiones de actualización.

Incluye la sincronización comoIncluye la sincronización como

componente integrado.componente integrado.

Page 13: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 13/38

Modelos de consistenciaModelos de consistencia

Se utiliza en sistemas DSM con replicasSe utiliza en sistemas DSM con replicasde contenido.de contenido.

Cada proceso tiene un gestor de replicasCada proceso tiene un gestor de replicas

local, que se encarga de tener copias enlocal, que se encarga de tener copias enla caché de los objetos.la caché de los objetos.

La actualización de los objetos se propagaLa actualización de los objetos se propagaa los demás gestores de replicas.a los demás gestores de replicas.

Principales modelos de consistencia:Principales modelos de consistencia:1.1. Consistencia secuencial.Consistencia secuencial.

2.2. Consistencia débil.Consistencia débil.

Page 14: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 14/38

Consistencia secuencialConsistencia secuencial

Lamport (1979) : ³Un sistema soportaconsistencia secuencial si todos los procesos venel mismo orden de todas las operaciones deacceso a memoria en la DSM´.

No importa el entrelazado de las operaciones. No garantiza que una lectura devuelve el valor

mas recientemente escrito. Si un programa repite la corrida puede no

producir los mismos resultados.

Implementación: asegurar que una operaciónde memoria no comience hasta que todas lasprevias se hayan completado.

Todos los procesos que comparten la memoriasiempre ven el mismo contenido en ella.

Page 15: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 15/38

Entrelazado bajo la consistenciaEntrelazado bajo la consistencia

secuencialsecuencial TiempoProceso 1

br:= b;

ar:= a;If (ar >= br) then

 printf(´Bienµ);

LeeProceso 2

a:= a + 1;

b:= b + 1;

Escribe

Page 16: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 16/38

CoherenciaCoherencia

Cada proceso llega a acuerdos sobre el orden deCada proceso llega a acuerdos sobre el orden delas operaciones de escritura sobre la mismalas operaciones de escritura sobre la mismaposición, pero no acuerdan necesariamente elposición, pero no acuerdan necesariamente elorden de las operaciones de escritura sobreorden de las operaciones de escritura sobreposiciones diferentesposiciones diferentes

Se la puede pensar como una forma deSe la puede pensar como una forma deconsistencia secuencial realizada posición aconsistencia secuencial realizada posición aposición.posición.

Los sistemas DSM coherentes puedenLos sistemas DSM coherentes puedenimplementarse mediante un protocolo paraimplementarse mediante un protocolo para

implementar la consistencia secuencial aplicadaimplementar la consistencia secuencial aplicadade forma separada a cada unidad de datosde forma separada a cada unidad de datosreplicados (por ejemplo, a cada página). Elreplicados (por ejemplo, a cada página). Elahorro se produce del hecho de que los accesos aahorro se produce del hecho de que los accesos ados páginas diferentes se hacen de formados páginas diferentes se hacen de formaindependiente y no existe retardo entre ellos alindependiente y no existe retardo entre ellos alaplicarse el protocolo de forma separada aaplicarse el protocolo de forma separada a

Page 17: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 17/38

Consistencia débilConsistencia débil

Dubois et al 1988 Observaciones: No es necesario mostrar inmediatamente a

otros procesos cambios en la memoria hechos por cadaoperación de escritura. Los resultados de variasoperaciones de escritura pueden ser combinados y enviados

a otros procesos solo cuando ellos lo necesitan. Son raros los accesos aislados a variables compartidas. Implementación: se usa una variable de sincronización. Para soportar la consistencia débil se debe cumplir:1. Todos los accesos a las variables de sincronización deben

obedecer a la semántica de consistencia secuencial.

2. Deben completarse todas la operaciones previas deescritura, en todos lados, antes de permitir un acceso a lasvariables de sincronización.

3. No se permite realizar un acceso a los datos (lectura oescritura) hasta completar todos los accesos anteriores alas variables de sincronización.

Page 18: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 18/38

Opciones de actualizaciónOpciones de actualización

Hay dos posiblesHay dos posibles

opciones:opciones:Escritura actualizanteEscritura actualizante

Escritura invalidanteEscritura invalidante

Page 19: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 19/38

Escritura actualizanteEscritura actualizante

Las actualizaciones se hacen localmente y se envía a todosLas actualizaciones se hacen localmente y se envía a todoslos demás gestores de replicas una copia, los cualeslos demás gestores de replicas una copia, los cualesmodifican inmediatamente el dato leído por los procesosmodifican inmediatamente el dato leído por los procesoslocales.locales.

Normalmente son implementadas por hardware pero hayNormalmente son implementadas por hardware pero hay

implementaciones por software que utilizan multicastingimplementaciones por software que utilizan multicastingtotalmente ordenado.totalmente ordenado.

NodoCliente

tiene una copia

 valida del

bloque de datosdespués de la

operación de

escritura

Nodos tienen

copias validas de

bloques de datos

antes de la

escritura

Replica de bloque

Requiere bloque

 Actualiza el bloque

 Actualiza el bloque

 Actualiza el bloque

Page 20: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 20/38

Escritura invalidanteEscritura invalidante

En un instante una posición puede ser accedida para lectura por uno o másEn un instante una posición puede ser accedida para lectura por uno o másprocesos. Puede ser copiada a cualquier otro proceso.procesos. Puede ser copiada a cualquier otro proceso.

En la escritura solo un proceso puede acceder a la posición. Para hacerlo debeEn la escritura solo un proceso puede acceder a la posición. Para hacerlo debeenviar un mensaje a todas sus copias para invalidarlas y se espera unaenviar un mensaje a todas sus copias para invalidarlas y se espera unarespuesta antes que la escritura tenga lugar. Si un proceso intenta acceder alrespuesta antes que la escritura tenga lugar. Si un proceso intenta acceder aldato se bloquea. Finalmente, el control se transfiere desde el proceso escritor,dato se bloquea. Finalmente, el control se transfiere desde el proceso escritor,y se puedan realizar otros accesos una vez que la actualización haya sidoy se puedan realizar otros accesos una vez que la actualización haya sido

enviada. El resultado es que se procesan todos los accesos al dato medianteenviada. El resultado es que se procesan todos los accesos al dato medianteuna política del tipo FIFO.una política del tipo FIFO. Se adaptan mejor a sistemas DSM basados en paginas.Se adaptan mejor a sistemas DSM basados en paginas.

NodoCliente

tiene una copia

 valida del

bloque de datosdespués de la

operación de

escritura

Nodos tienen

copias validas de

bloques de datos

antes de la

escritura

Replica de bloque

Requiere bloque

Invalida bloque

Invalida bloque

Invalida bloque

Page 21: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 21/38

GranularidadGranularidad

La estructura y la granularidad estárelacionadas.

Problemas que se presentan con eltamaño del bloque:

1. Sobrecarga de paginado

2. Tamaño de directorio3. Thrashing

4. Falso compartir

Page 22: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 22/38

Falso compartir Falso compartir 

Dos o más procesos comparten zonas de una página, peroDos o más procesos comparten zonas de una página, perosolo uno de ellos realmente accede a cada zona.solo uno de ellos realmente accede a cada zona.

En el protocolo de escritura invalidante puede derivar enEn el protocolo de escritura invalidante puede derivar eninvalidaciones innecesarias.invalidaciones innecesarias.

En el protocolo de escritura actualizante puede ocurrir queEn el protocolo de escritura actualizante puede ocurrir quelas páginas sean sobrescritas con versiones antiguas.las páginas sean sobrescritas con versiones antiguas.

El proceso P1 accede

a datos de esta área

El proceso P2 accede

a datos de esta área

P1

P2

Page 23: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 23/38

GranularidadGranularidad

Ventajas de usar un tamaño de bloque iguala la página de memoria local:

Permite el uso de sistemas existentes de

falta de páginas Permite el control de derechos de acceso

Si las páginas pueden colocarse en un

 paquete no impone sobrecarga en la red El tamaño es adecuado con respecto a la

contención de memoria

Page 24: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 24/38

ThrashingThrashing

Puede ocurrir cuando se utiliza invalidación dePuede ocurrir cuando se utiliza invalidación deescritura.escritura.

Consiste en la transferencia repetida de datosConsiste en la transferencia repetida de datos

entre procesos competidores a costa delentre procesos competidores a costa delprogreso de la aplicación. Este efecto puedeprogreso de la aplicación. Este efecto puedeser reducido mediante la sincronización aser reducido mediante la sincronización anivel de aplicación, permitiendo a lasnivel de aplicación, permitiendo a lascomputadoras retener una página durantecomputadoras retener una página durante

una mínima cantidad de tiempo, o medianteuna mínima cantidad de tiempo, o medianteel etiquetado de los datos de forma que lasel etiquetado de los datos de forma que laslecturas y las escrituras sean concedidaslecturas y las escrituras sean concedidasconjuntamente.conjuntamente.

Page 25: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 25/38

Consistencia secuencial e IvyConsistencia secuencial e Ivy

El modelo de sistemaEl modelo de sistema Una colección de procesos comparten un segmento deUna colección de procesos comparten un segmento de

DSMDSM El segmento se hace corresponder sobre el mismo rangoEl segmento se hace corresponder sobre el mismo rango

de direcciones en cada proceso, de forma que sobre élde direcciones en cada proceso, de forma que sobre él

se pueden almacenar valores de punteros significativosse pueden almacenar valores de punteros significativos Los procesos se ejecutan sobre memoria paginada conLos procesos se ejecutan sobre memoria paginada con

permiso de acceso. Asumiremos que únicamente hay unpermiso de acceso. Asumiremos que únicamente hay unproceso que accede al segmento DSM en cadaproceso que accede al segmento DSM en cadacomputadora.computadora.

Ante un fallo de página el núcleo lo redirige a unAnte un fallo de página el núcleo lo redirige a un

manejador especificado por el nivel de soporte enmanejador especificado por el nivel de soporte entiempo de ejecución de DSM para cada proceso.tiempo de ejecución de DSM para cada proceso. El manejador de fallos de página realiza unEl manejador de fallos de página realiza un

procesamiento especial del mencionado fallo de página..procesamiento especial del mencionado fallo de página..

Page 26: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 26/38

Consistencia secuencial e IvyConsistencia secuencial e Ivy

Núcleo

Memoria Compartida Distribuida

Proceso accediendo alsegmento de página de DSM

El núcleo

redirige los fallos

de página al

gestor de niveles

de usuario

Page 27: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 27/38

Consistencia secuencial e IvyConsistencia secuencial e Ivy

El problema de la escrituraEl problema de la escrituraactualizanteactualizante

En sistemas DSM basados en páginasEn sistemas DSM basados en páginassolo se la utiliza si la escritura sesolo se la utiliza si la escritura sepuede ser almacenada en buffers ypuede ser almacenada en buffers yla pagina tenga permiso de escriturala pagina tenga permiso de escrituradespués de un fallo de página inicialdespués de un fallo de página inicialy se permite hacer varias escriturasy se permite hacer varias escriturasantes que la pagina sea propagada.antes que la pagina sea propagada.

Page 28: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 28/38

Invalidación de escrituraInvalidación de escritura

Estos algoritmos utilizan protección de páginaEstos algoritmos utilizan protección de páginapara forzar la consistencia en la compartición depara forzar la consistencia en la compartición dedatos.datos.

En la actualización de la página el proceso tieneEn la actualización de la página el proceso tiene

localmente permiso lectura y escritura y el restolocalmente permiso lectura y escritura y el restono tiene permiso de acceso a la página.no tiene permiso de acceso a la página. Si uno o más procesos leen de una página soloSi uno o más procesos leen de una página solo

tiene permiso de lectura y el reto no tienetiene permiso de lectura y el reto no tienepermiso de acceso.permiso de acceso.

Proceso P: es el proceso que tiene la versiónProceso P: es el proceso que tiene la versiónactualizada de la pagina. Es el propietario(P):actualizada de la pagina. Es el propietario(P):

Proceso C: son los procesos que tienen una copiaProceso C: son los procesos que tienen una copiade una página P. Conjuntocopia(P).de una página P. Conjuntocopia(P).

Page 29: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 29/38

Invalidación de escrituraInvalidación de escritura

Si un proceso propietario Pw en una páginaSi un proceso propietario Pw en una páginadonde no tiene acceso o tiene permiso dedonde no tiene acceso o tiene permiso delectura se genera un fallo y el manejador siguelectura se genera un fallo y el manejador sigueestos pasos:estos pasos:

1.1. Si Pw no tiene copia actualizada de p se leSi Pw no tiene copia actualizada de p se letransfiere.transfiere.

2.2. Se invalidad el resto de las copias.Se invalidad el resto de las copias.

3.3. Conjuntocopia(p):= {Pw}Conjuntocopia(p):= {Pw}

4.4. Propietario(p):= PwPropietario(p):= Pw5.5. Sitúa la página en el espacio de direcciones deSitúa la página en el espacio de direcciones de

Pw y reinicia la instrucción que genero el fallo.Pw y reinicia la instrucción que genero el fallo.

Page 30: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 30/38

Invalidación de escrituraInvalidación de escritura

Si un proceso Pr intenta leer una página sobreSi un proceso Pr intenta leer una página sobrela que no tiene acceso se genera un fallo dela que no tiene acceso se genera un fallo depágina de lectura y el manejador sigue estospágina de lectura y el manejador sigue estospasos:pasos:

1.1. Se copia la página del propietario(p) a Pr.Se copia la página del propietario(p) a Pr.2.2. Si el propietario e un único escrito entoncesSi el propietario e un único escrito entonces

mantiene la propiedad y se coloca su permisomantiene la propiedad y se coloca su permisode acceso en solo lectura.de acceso en solo lectura.

3.3.

Conjuntocopia(p):= conjuntocopia(p) U {Pr}Conjuntocopia(p):= conjuntocopia(p) U {Pr}4.4. Sitúa la página en el espacio de direcciones deSitúa la página en el espacio de direcciones de

Pr y reinicia la instrucción donde se produjo elPr y reinicia la instrucción donde se produjo elfallo.fallo.

Page 31: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 31/38

Protocolos de invalidación.Protocolos de invalidación.

Dos problemas importantes:Dos problemas importantes:

1.1. Cómo localizar el propietario de unaCómo localizar el propietario de unapágina p.página p.

2.2. Dónde almacenar conjuntocopia(p)Dónde almacenar conjuntocopia(p)Li y Hudak proponen tener un gestor paraLi y Hudak proponen tener un gestor para

almacenar la dirección (a nivel dealmacenar la dirección (a nivel detransporte) de propietario(p) para cadatransporte) de propietario(p) para cada

página p más las direcciones depágina p más las direcciones detransporte de los miembros detransporte de los miembros deconjuntocopia(p).conjuntocopia(p).

Page 32: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 32/38

Protocolos de invalidación.Protocolos de invalidación.

1.1. Al producirse la falla de página el proceso localAl producirse la falla de página el proceso localenvía al gestor el numero de página y el tipo deenvía al gestor el numero de página y el tipo deacceso.acceso.

2.2. El gestor busca la dirección de propietario(p) yEl gestor busca la dirección de propietario(p) y

le reenvía la solicitud. Si el fallo es de escriturale reenvía la solicitud. Si el fallo es de escriturale gestor lo coloca como nuevo propietario de p.le gestor lo coloca como nuevo propietario de p.las siguientes solicitudes se encolan en ellas siguientes solicitudes se encolan en elproceso.proceso.

3.3. El anterior propietario envía la pagina. Si fueEl anterior propietario envía la pagina. Si fuefallo por escritura envía también el conjunto defallo por escritura envía también el conjunto de

copias. Se auto invalida.copias. Se auto invalida.4.4. El proceso realiza la invalidación. Espera laEl proceso realiza la invalidación. Espera la

confirmación de la invalidación.confirmación de la invalidación.

Page 33: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 33/38

 Alternativas para el gestor  Alternativas para el gestor 

Gestiones de páginas distribuida fija: múltiples gestores que seGestiones de páginas distribuida fija: múltiples gestores que sedividen en forma estática las páginas entre ellosdividen en forma estática las páginas entre ellos

Gestión distribuida basada en multidifusión: al producirse un falloGestión distribuida basada en multidifusión: al producirse un fallose envía una multidifusión con la solicitud de la página. Solose envía una multidifusión con la solicitud de la página. Soloresponde el propietario de la misma.responde el propietario de la misma.

Gestión distribuida dinámica: se divide la sobrecarga deGestión distribuida dinámica: se divide la sobrecarga de

localización de páginas entre las computadoras que los utilizan.localización de páginas entre las computadoras que los utilizan.Cada proceso tiene una marca del propietario actual de la páginaCada proceso tiene una marca del propietario actual de la páginap (propietario portable de p). Procesos para la actualización dep (propietario portable de p). Procesos para la actualización demarcas:marcas:

1.1. Al transferir la propiedad de p a otro proceso, este se agregaAl transferir la propiedad de p a otro proceso, este se agregacomo propietarioPortable(p).como propietarioPortable(p).

2.2. En una solicitud de invalidación se marca comoEn una solicitud de invalidación se marca como

propietarioProtable(p) al solicitante.propietarioProtable(p) al solicitante.3.3. En la solicitud de lectura se marca como propietarioPortable(p) alEn la solicitud de lectura se marca como propietarioPortable(p) al

que la proporcionó.que la proporcionó.4.4. Si no es el propietario de p, se reenvía la solicitud alSi no es el propietario de p, se reenvía la solicitud al

propietarioPortable(p) y se marca como nuevo al solicitante.propietarioPortable(p) y se marca como nuevo al solicitante.

Page 34: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 34/38

Thrashing. Como evitarloThrashing. Como evitarlo

Mirage asocia a cada página unMirage asocia a cada página unintervalo de tiempo. Una vez que haintervalo de tiempo. Una vez que haaccedido a una página retiene elaccedido a una página retiene elacceso por ese intervalo. Cualquieracceso por ese intervalo. Cualquierotra solicitud durante des tiempo esotra solicitud durante des tiempo esrechazada. Es difícil determinar elrechazada. Es difícil determinar el

intervalo (estático o dinámico).intervalo (estático o dinámico).

Page 35: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 35/38

Liberación de consistencia y MuninLiberación de consistencia y Munin

Accesos a memoria:Accesos a memoria:

1.1. Accesos competitivosAccesos competitivos

2.2. Accesos no competitivos.Accesos no competitivos.

Page 36: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 36/38

 Acceso competitivo Acceso competitivo

Puede ocurrir en forma concurrentePuede ocurrir en forma concurrentey uno de los procesos involucradosy uno de los procesos involucradoses de escritura.es de escritura.

Accesos de sincronización:Accesos de sincronización:

1.1. Acceso de adquisiciónAcceso de adquisición

2.2.

Acceso de liberaciónAcceso de liberación Acceso de no sincronizaciónAcceso de no sincronización

Page 37: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 37/38

Realización de operacionesRealización de operaciones

asincrónicasasincrónicas

Operaciones para incrementar laOperaciones para incrementar lavelocidad a la que se ejecutan losvelocidad a la que se ejecutan losproceosos:proceosos:

1.1. Las escrituras pueden serLas escrituras pueden serasincrónicas.asincrónicas.

2.2. Búsqueda anticipada de valores.Búsqueda anticipada de valores.

3.3. Ejecución fuera de orden.Ejecución fuera de orden.

Page 38: memoria compartida distribuida

5/12/2018 memoria compartida distribuida - slidepdf.com

http://slidepdf.com/reader/full/memoria-compartida-distribuida-55a4d18c6f26e 38/38

Otros modelos de consistenciaOtros modelos de consistencia

Los modelos de consistencia de memoria se puedenLos modelos de consistencia de memoria se puedendividir entre modelos uniformes, caracterizados por nodividir entre modelos uniformes, caracterizados por nodistinguir entre diferentes tipos de accesos a memoria ydistinguir entre diferentes tipos de accesos a memoria ymodelos híbridos, los cuales distinguen entre accesosmodelos híbridos, los cuales distinguen entre accesosordinarios y de sincronización (al igual que otros tipos deordinarios y de sincronización (al igual que otros tipos deaccesos).accesos).

Otros modelos de consistencia uniforme son:Otros modelos de consistencia uniforme son:1.1. Consistencia causal Consistencia causal 2.2. Consistencia de procesador Consistencia de procesador 3.3. RAM encauzadaRAM encauzada Además de la consistencia relajada, otros modelosAdemás de la consistencia relajada, otros modelos

híbridos son los siguienteshíbridos son los siguientes1.1. Consistencia con admisiónConsistencia con admisión2.2. Consistencia de ámbitoConsistencia de ámbito3.3. Consistencia débil Consistencia débil