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

1

MEMORIA COMPARTIDA DISTRIBUIDA

CAP. 6

protocolos. Ser necesaria mayor investigacin antes de que podamos comprender este tema por completo. Por ltimo, es diferente la forma en que se detectan las escrituras a las variables compartidas. Munin utiliza el hardware MMU para sealar las escrituras, mientras que Midway ofrece una opcin entre un compilador especial que registra las escrituras y hace esto a la manera de Munin, con el MMU. Una ventaja definitiva de Midway es no tener que llevar un flujo de fallos de pgina, especialmente dentro de las regiones crticas. Comparemos ahora Munin y Midway con la memoria compartida basada en objetos de la variante LindaOrea. La sincronizacin y el acceso a los datos en Munin y Midway son tarea del programador, mientras que ambos estn fuertemente integrados en Linda y Orea. En Linda existe menos peligro de que un programador cometa un error de sincronizacin, puesto que inyoul controlan su propia sincronizacin de manera interna. De manera similar, cuando se llama una operacin sobre un objeto compartido en Orea, la cerradura es controlada por completo por el sistema de tiempo de ejecucin, sin que el programador tenga conciencia de ello. La sincronizacin con condiciones (opuesta a la sincronizacin con exclusin mutua) no es parte del modelo de Munin o de Midway, as que el programador debe realizar todo de manera explcita. Por el contrario, es una parte integral del modelo Linda (el bloqueo cuando no est presente una n-ada) y del modelo Orea (se bloquea en una proteccin). En resumen, los programadores en Munin y Midway deben realizar un mayor trabajo en el rea de sincronizacin y consistencia, con poco soporte, y deben tener todo correcto. No existe encapsulamicnto no existen mtodos para proteger los datos compartidos, como en Linda y Orea. Por otro lado, Munin y Midway permiten la programacin en lenguajes C o C++ ligeramente modificados, mientras que la comunicacin en Linda es poco usual y Orea es un lenguaje por completo nuevo. En trminos de eficiencia, Midway es mejoren trminos del nmero y el tamao de los mensajes transmitidos, aunque el uso de modelos de programacin fundamentalmente diferentes (cdigo C abierto, objetos y n-adas) puede conducir a algoritmos esencialmente distintos en los tres casos, loque tambin puede afectar la eficiencia.

6.8. RESUMEN Los sistemas de computo con varios CPU caen en alguna de dos categoras: los que tienen memoria compartida y los que no. Las mquinas de memoria compartida (multipro-cesadores) son ms faenes de programar pero ms difciles de construir, mientras que las mquinas sin memoria compartida (multicomputadoras) son ms difciles de programar pero ms fciles de construir. La memoria distribuida compartida es una tcnica para facilitar la programacin de las multicomputadoras, simulando la memoria compartida en ellas. Los pequeos multiprocesadores se basan con frecuencia en un bus, pero los de gran ta tiao utilizan conmutadores. Los protocolos utilizados por los de gran tamao requieren es-ructuras de datos y algoritmos complejos para mantener la consistencia de los cachs.

CAP. 6

PROBLEMAS

Los multiprocesadores NUMA evitan esta complejidad obligando al software a tomar todas las decisiones acerca de las pginas que deban colocarse en tal o cual mquina. Es posible una implantacin directa de DSM, como en IVY, pero con frecuencia tiene un desempeo mucho menor que el de un multiprocesador. Por esta razn, los investigadores han analizado varios modelos de memoria, en un intento por obtener un mejor desempeo. El estndar contra el que se miden todos los modelos es la consistencia secuencial, que significa que todos los procesos ven todas las referencias a memoria en el mismo orden. La consistencia causal, la consistencia PRAM y la consistencia del procesador debilitan el concepto de que los procesos vean a todas las referencias a memoria en el mismo orden. Otro mtodo es el de la consistencia dbil, la consistencia de liberacin y la consistencia de entrada, en donde la memoria no es consistente todo el tiempo, pero el programador puede obligarla a ser consistente mediante ciertas acciones, como entrar o salir de una regin crtica. Se han utilizado tres tcnicas generales para proporcionar DSM. La primera estimula el modelo de memoria de multiprocesador, dando a cada proceso una memoria paginada lineal. Las pginas se mueven de una mquina a otra segn sea necesario. La segunda utiliza los lenguajes de programacin ordinarios con variables compartidas anotadas. La tercera se basa en los modelos de programacin de alto nivel, como las n-adas y los objetos. En este captulo estudiamos cinco mtodos distintos de DSM. IVY opera esencialmente como una memoria virtual, donde las pginas se mueven de una mquina a otra cuando ocurren los fallos de pginas. Munin utiliza varios protocolos y la consistencia de liberacin para permitir que las variables individuales se compartan. Midway es similar a Munin, excepto que utiliza la consistencia de entrada en vez de la consistencia de liberacin como el caso normal. Linda representa el otro extremo del espectro, con un espacio de n-adas abstracto, lejos de los detalles de paginacin. Orea soporta un modelo en donde los objetos dato se duplican en varias mquinas y el acceso es mediante mtodos protegidos que hacen que los objetos parezcan secuencalmente consistentes para el programador.

PROBLEMAS

1. Un sistema Dash tiene b bytes de memoria divididos entre ti unidades. Cada unidad tiene
p procesadores en ella. El tamao del bloque cachs de c bytes. D una frmula para la cantidad total de memoria dedicada a los directorios (excluyendo los dos bits de estado por cada entrada de directorio). 2. Es realmente esencial que Dash establezca una distincin entre los estados LIMPIO y NO OCULTO? Sera posible dispensar uno de los dos? Despus de todo, en ambos casos, la memoria tiene una copia actualizada del bloque. 3. En el texto se afirma que son posibles varias variantes menores del protocolo de propiedad del cach de la figura 6-6. Describa una de tales variantes y d una ventaja de su variante sobre la del texto. 4. Por qu se necesita el concepto de "memoria de origen" en Memnet y no en Dash?

MEMORIA COMPARTIDA DISTRIBUIDA

CAP. 6

1. En un muitiprocesador NUMA, las referencias a la memoria local tardan 100 nanosegundos y las referencias remotas 800 nanosegundos. Cierto programa realiza un total de TV referencias a memoria durante su ejecucin, de las cuales 1 por ciento son a una pgina P. Esta pgina es remota inicialmente, y tarda C nanosegundos en copiarse localmente. Bajo qu condiciones debe copiarse localmente la pgina en ausencia de un uso significativo por otros procesadores? 2. Durante el anlisis de los modelos de consistencia de la memoria, con frecuencia nos referimos al contrato entre el software y la memoria. Por qu se necesita ese contrato? 3. Un muitiprocesador tiene un bus. Es posible implantar la memoria estrictamente consistente? 4. En lafigura -13(a) se muestra un ejemplo de una memoria secuencialmenteconsistente. Realice un cambio mnimo a P 2 que viole a consistencia secuencial. 5. En la figura 6-14, es 001110 una salida vlida para una memoria secuencialmente consistente? Explique su respuesta.

10.Al final de la seccin 6-2.2 analizamos un modelo formal que afirmaba que todo
conjunto de operaciones sobre una memoria secuencialmente consistente se puede modelar mediante una cadena, S, de la que se pueden derivar todas las secuencias de los procesos individuales. Para los procesos P ] y P 2 de la figura 6-16, d todos los valores posibles de S. Ignore los procesos P 3 y P A y no incluya sus referencias a memoria en S. 11. En la figura 6-20, una memoria secuencialmente consistente permite seis intercalados posibles de enunciados. Enumrelos todos.

12.Por qu W{x)\ R{x)0 R(x)\ no es vlido en la figura 6-12(b)? 13.En la figura 6-14, es 000000 una salida vlida para una memoria con consistencia
PRAM nicamente? Explique su respuesta.

14.En la mayor parte de las implantaciones de la consistencia de liberacin (fuerte) en los


sistemas DSM, las variables compartidas se sincronizan en una liberacin, pero no en una adquisicin. Por qu se necesita entonces la adquisicin de todos modos? 15.En la figura 6-27, suponga que el propietario de la pgina se localiza mediante una transmisin. En cules casos debe enviarse la pgina para una lectura? 16.En la figura 6-28, un proceso puede establecer contacto con el propietario de una pgina por medio del controador de pginas. Podra querer'la propiedad o la propia pgina, que son entes independientes. Existen los cuatro casos (excepto, por supuesto, el caso en que el solicitante no desea la pgina y no desea la propiedad)? 17.Suponga que dos variables, A y B, se localizan, por accidente, en la misma pgina en un sistema DSM basado en pginas. Sin embargo, ambas son variables no compartidas. Es posible compartir falsamente? 18.Por qu utiliza IVY un esquema de invalidacin para la consistencia en vez de un esquema de actualizacin? 19.Algunas mquinas tienen una instruccin que, en una accin atmica, intercambia un registro con una palabra en memoria. Mediante esta instruccin, es posible implantar los semforos para la proteccin de las regiones criticas. Funcionarn los programas

CAP. 6

PROBLEMAS

que utilizan esta instruccin en un sistema DSM basado en pginas? En tal caso, bajo qu circunstancias funcionar de manera eficiente? 20. Qu ocurre si un proceso de Munin modifica una variable compartida fuera de una regin crtica? 21. D un ejemplo de una operacin m en Linda que no requiera una bsqueda o la dispersin para encontrar una concordancia. 22. Cuando Linda se implanta mediante la duplicacin de n-adas en varias mquinas, se necesita un protocolo para eliminar n-adas. D un ejemplo de protocolo que no produzca competencia cuando dos procesos intentan eliminar la misma n-ada al mismo tiempo. 23. Considere un sistema Orea que se ejecuta en una red con transmisin en hardware. Por qu afecta al desempeo la proporcin entre las operaciones de lectura y las operaciones de escritura?

Вам также может понравиться