Sei sulla pagina 1di 12

CONFIGURACIONES DE MCD.

Modelos de consistencia. MCD en base a pginas. MCD en base a variables. MCD en base a objetos.

COMPUTACIN PARALELA
Un computador paralelo es un conjunto de procesadores capaces de cooperar en la solucin de un problema. El problema se divide en partes. Cada parte se compone de un conjunto de instrucciones. Las instrucciones de cada parte se ejecutan simultneamente en diferentes CPUs. Tcnicas computacionales que descomponen un problema en sus tareas y pistas que pueden ser computadas en diferentes mquinas o elementos de proceso al mismo tiempo. Por qu utilizar computacin paralela? Reducir el tiempo de procesamiento Resolver problemas de gran embergadura Proveer concurrencia. Utilizar recursos remotos de cmputo cuando los locales son escasos. Reduccin de costos usando mltiples recursos baratos en lugar de costosas supercomputadoras. ampliar los lmites de memoria para resolver problemas grandes. El mayor problema de la computacin paralela radica en la complejidad de sincronizar unas tareas con otras, ya sea mediante secciones crticas, semforos o paso de mensajes, para garantizar la exclusin mutua en las zonas del cdigo en las que sea necesario. La computacin paralela est penetrando en todos los niveles de la computacin, desde computadoras masivamente paralelas usados en las ciencias de larga escala computacional, hasta servidores mltiples procesadores que soportan procesamiento de transacciones. Los principales problemas originados en cada uno de las reas bsicas de la informtica (por ejemplo, algoritmos, sistemas, lenguajes, arquitecturas, etc.) se vuelven an ms complejos dentro del contexto de computacin paralela.

MEMORIA

Una de las principales caractersticas de una computadora es la capacidad que tienen para almacenar datos e informacin. El primero en tener la idea de almacenar un programa en una computadora fue Jonh Von Neumman. l utiliz la memoria para almacenar datos y programas. El otro modelo de arquitectura de computadoras conocida como Arquitectura Harvard, existe una memoria especial para datos y otra memoria para programas. Esto hace que los circuitos sean ms eficientes pero ms costosos a la vez. La gran mayora de las computadoras (incluyendo las PC) utilizan la arquitectura Von Neumman. La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamao. Cada localidad de almacenamiento tiene asignada una direccin que la identifica. La memoria principal es el lugar donde el CPU lee las instrucciones a ejecutar, as como algunos datos a emplear. Por qu es importante la memoria? Programas = Algoritmos + Estructuras de Datos Estructuras de Datos (pilas, listas, colas, etc.) son memoria. La memoria se puede ver como un casillero en el cual se almacena informacin. La memoria puede ser esttica o dinmica dependiendo de cmo se gestione. La memoria est divida en secciones de cdigo, datos estticos, Pila y el Heap. Todo sistema operativo tiene un mapa de memoria que indica como estn administrada la memoria y que partes se pueden ocupar. La filosofa del administrador de memoria consiste en optimizar el uso de este recurso, ya que la memoria es uno de los componentes crticos de todo sistema de cmputo. La principal problemtica de la memoria principal es que no es persistente. Por este motivo se tienen que implementar estrategias de almacenamiento y recuperacin de informacin. Las operaciones bsicas que se realizan sobre una memoria son dos: lectura (r) y escritura (w).

Las operaciones anteriores son a nivel usuario. A nivel sistema se tienen llamadas al sistema como malloc, free, allocate, etc. Tambin debe proporcionar opciones de bloqueo y desbloqueo (proteccin). La ley de Parkinson dice: los programas se expanden hasta llenar la memoria disponible para contenerlos. No por tener el doble de memoria instalada en un sistema legado, este ser el doble de rpido. La memoria fsica es utilizada por muchos procesos en lugar de la memoria virtual. Todo proceso necesita memoria fsica para poderse ejecutar.

ADMINISTRADOR DE MEMORIA
Sirve para tener un control sobre los lugares donde estn almacenados los procesos y datos que actualmente se estn utilizando. Las polticas de administracin de memoria generalmente son duras, es decir no modificables, pero se pueden configurar algunos parmetros para su mejor uso.

Ejemplos de memoria:
Las tendencias actuales sobre el manejo de memoria indican el uso en diversas aplicaciones: Portapapeles: permite guardar datos y transferirlo a otros programas. Uso de base de datos en memoria. Algunas versiones de MySQL Lite permiten hacerlo Las computadoras actuales permiten guardar los datos al apagar una computadora, para tener un mejor desempeo (hibernacin, suspensin). Los punteros permiten desplazarnos por las localidades de memoria. Una variable es una localidad de memoria.

MECANISMOS DE ASIGNACIN
Un mecanismo de asignacin determina la cantidad de bloques (particiones) que sern administrados en la memoria. El esquema bsico de asignacin consiste en particionar (dividir) la memoria en diferentes partes. Existen 3 mecanismos de Asignacin:

Asignacin de una particin Asignacin de dos particiones Asignacin de Mltiples Particiones

ESTRATEGIAS DE ASIGNACIN DE MEMORIA


Una estrategia de asignacin de memoria determina el lugar donde ser cargado un nuevo proceso en base a un criterio. Las estrategias de asignacin son: Primer ajuste. Siguiente ajuste Mejor ajuste Peor ajuste

MEMORIA COMPARTIDA DISTRIBUIDA


Los sistemas de Memoria Compartida Distribuida (MCD) [50], [51] son sistemas que, mediante software, emulan semntica de memoria compartida sobre hardware que ofrece soporte solo para comunicacin mediante paso de mensajes. Este modelo permite utilizar una red de estaciones de trabajo de bajo costo como una maquina paralela con grandes capacidades de procesamiento y amplia escalabilidad, siendo a la vez fcil de programar. El objetivo principal de estos sistemas es permitir que un multicomputador pueda ejecutar programas escritos para un multiprocesador con memoria compartida Cada uno de los nodos en un sistema de MCD aporta una parte de su memoria local para construir un espacio global de direcciones virtuales que sera empleado por los procesos paralelos que se ejecuten en el sistema. El software de MCD se encarga de interceptar las referencias a memoria que hacen los procesos, y satisfacerlas, ya sea local o remotamente. Si los accesos a memoria hacen referencia a posiciones almacenadas remotamente, es necesario llevar a cabo una transferencia a travs de la red, con el consecuente overhead que esto conlleva. Por esta razn los sistemas de MCD tienen un comportamiento no uniforme respecto a los accesos a memoria. Sin embargo, a diferencia de los sistemas NUMA, en este caso los procesadores no tienen acceso a memoria remota en forma directa. Es necesario que medie un componente de software para permitir los accesos que no son locales. La principal problemtica que se presenta entre dos o ms procesos sean locales o distribuidos al compartir recursos es que cada proceso tiene su propio espacio de direcciones.

Cuando se trata de procesos locales al estar fsicamente en el mismo hardware el espacio de direcciones se vuelve sencillo la comparticin. Esto no es sencillo en procesos distribuidos. En un Sistema Operativo Distribuido, una computador ejecuta los procesos en su memoria propia, pero en caso de necesitar ms memoria utilizar los recursos disponibles de otra computadora. La Memoria compartida distribuida ayuda a que no se formen los famosos cuellos de botella, facilita el diseo y construccin de sistemas distribuidos.

Distributed shared memory

Process accessing DSM

DSM appears as memory in address space of process

Physical memory

Physical memory

Physical memory

VISIN GENERAL DE LA MCD


El esquema ms bsico de comparticin de datos en Sistemas Distribuidos es el paso de mensajes (e.g. sockets). La problemtica es la latencia y la garanta de acceso (puede llegar o no el mensaje). Existen tres formas bsicas de lograr comparticin de memoria en ambientes distribuidos: por hardware, por sistema operativo o a nivel de usuario (software).

La comparticin de memoria se da por diversos esquemas, siendo las ms comunes: por paginacin, por variables compartidas y por objetos. El diseo de la granularidad de comparticin as como la sincronizacin y manejo de consistencia son elementos importantes en el diseo de mecanismos de memoria compartida.

MODELOS DE CONSISTENCIA
La duplicidad de los bloques compartidos aumenta el rendimiento, pero produce un problema de consistencia entre las diferentes copias de la pgina en caso de una escritura. Si con cada escritura es necesario actualizar todas las copias, el envo de las pginas por la red provoca que el tiempo de espera aumente demasiado, convirtiendo este mtodo en impracticable. Para solucionar este

problema se proponen diferentes modelos de consistencia, que establezcan un nivel aceptable de acercamiento tanto a la consistencia como al rendimiento. Nombramos algunos modelos de consistencia, del ms fuerte al ms dbil: consistencia estricta, secuencial, causal, PRAM, del procesador, dbil, de liberacin y de entrada.

Estricta Causal Secuencial Dbil


Consistencia Estricta El modelo de consistencia ms restrictivo es llamado consistencia estricta y es definido por la siguiente condicin Cualquier lectura sobre un item de dato x retorna un valor correspondiente con la ms reciente escritura sobre x a) Un almacenamiento estrictamente consistente. b) Un almacenamiento que no es estrictamente consistente. Consistencia Causal El modelo de consistencia causal (Hutto and Ahamad, 1990) es un debilitamiento de la consistencia secuencial. Se hace una diferenciacin entre eventos que estn potencialmente relacionados en forma causal y aquellos que no. Las operaciones que no estn causalmente relacionadas se dicen concurrentes. La condicin a cumplir para que unos datos sean causalmente consistentes es: Escrituras que estn potencialmente relacionadas en forma causal deben ser vistas por todos los procesos en el mismo orden. Escrituras concurrentes pueden ser vistas en un orden diferente sobre diferentes mquinas. Esta secuencia es permitida con un almacenamiento causalmente consistente, pero no con un almacenamiento secuencialmente consistente o con un almacenamiento consistente en forma estricta. Consistencia secuencial La consistencia secuencial es una forma ligeramente ms dbil de la consistencia estricta. Satisface la siguiente condicin: El resultado de una ejecucin es el mismo si las operaciones (lectura y escritura) de todos los procesos sobre el dato fueron ejecutadas en algn orden secuencial y las operaciones de cada proceso individual aparecen en esta operaciones de cada proceso individual aparecen en esta secuencia en el orden especificado por su programa a) Un dato almacenado secuencialmente consistente. b) Un dato almacenado que no es secuencialmente consistente. Consistencia Dbil Los accesos a variables de sincronizacin asociadas con los datos almacenados son secuencialmente consistentes. Propiedades

No se permite operacin sobre una variable de sincronizacin hasta que todas las escrituras previas de hayan completado. No se permiten operaciones de escritura o lectura sobre tems de datos hasta que no se hayan completado operaciones previas sobre variables de sincronizacin. Consistencia liberacin El modelo de consistencia release, RC [27], se basa en el supuesto de que los accesos a variables compartidas se protegen en secciones criticas empleando primitivas de sincronizacin, como por ejemplo locks. En tal caso, todo acceso esta precedido por una operacin acquire y seguido por una operacin release. Es responsabilidad del programador que esta propiedad se cumpla en todos los programas. Puesto que ningn otro proceso, ni local ni remoto, puede acceder a las variables que han sido modificadas mientras se encuentren protegidas en la seccin critica, la actualizacin de cualquier modificacin puede postergarse hasta el momento en que se lleva a cabo la operacin release. La operacin release no se da por completada hasta que la actualizacin haya sido propagada a todos aquellos procesadores en donde haya replicas. Con RC, la propagacin de un conjunto de modificaciones a memoria compartida se lleva a cabo con un costo fijo. Propagacin de Actualizaciones bajo RC y LRC de cdigo sin proteger. En consecuencia obtuvo un valor inconsistente para la variable leda.

Mcd En Base a Pginas


El esquema de MCD propone un espacio de direcciones de memoria virtual que integre la memoria de todas las computadoras del sistema, y su uso mediante paginacin. Las pginas quedan restringidas a estar necesariamente en un nico ordenador. Cuando un programa intenta acceder a una posicin virtual de memoria, se comprueba si esa pgina se encuentra de forma local. Si no se encuentra, se provoca un fallo de pgina, y el sistema operativo solicita la pgina al resto de computadoras. El sistema funciona de forma anloga al sistema de memoria virtual tradicional, pero en este caso los fallos de pgina se propagan al resto de ordenadores, hasta que la peticin llega al ordenador que tiene la pgina virtual solicitada en su memoria local. A primera vista este sistema parece ms eficiente que el acceso a la memoria virtual en disco, pero en la realidad ha mostrado ser un sistema demasiado lento en ciertas aplicaciones, ya que provoca un trfico de pginas excesivo. Una mejora dirigida a mejorar el rendimiento sugiere dividir el espacio de direcciones en una zona local y privada y una zona de memoria compartida, que se usar nicamente por procesos que necesiten compartir datos. Esta abstraccin se acerca a la idea de programacin mediante la declaracin explcita de datos pblicos y privados, y minimiza el envo de informacin, ya que slo se enviarn los datos que realmente vayan a compartirse.

Mcd En Base a Variables


Principio del formulario

partner-pub-8555 ISO-8859-1

La comparticin falsa se produce cuando dos procesos se pelean el acceso a la misma pagina de memoria, ya que contiene variables que requieren los dos, pero estas no son las mismas. Esto pasa por un mal diseo del tamao de las paginas y por la poca relacin existente entre variables de la misma pgina. En los MCD basados en variables se busca evitar la comparticin falsa ejecutando un programa en cada CPU que se comunica con una central, la que le provee de variables compartidas, administrando este cualquier tipo de variable, poniendo variables grandes en varias pginas o en la misma pgina muchas variables del mismo tipo, en este protocolo es muy importante declarar las variables compartidas. En los MCD basados en objetos se busca el acceso a datos por medio de la encapsulacin de la info. y repartida a travs de la red, estos objetos sern definidos por el Programador y las CPUs cambiaran los estados segn procedan con los accesos.

Mcd En Base a Objetos


Una alternativa al uso de pginas es tomar el objeto como base de la transferencia de memoria. Aunque el control de la memoria resulta ms complejo, el resultado es al mismo tiempo modular y flexible, y la sincronizacin y el acceso se pueden integrar limpiamente. Otra de las restricciones de este modelo es que todos los accesos a los objetos compartidos han de realizarse mediante llamadas a los mtodos de los objetos, con lo que no se admiten programas no modulares y se consideran incompatibles.

Principio del formulario

partner-pub-8555 ISO-8859-1
Final del formulario

Final del formulario

Principio del formulario

partner-pub-8555 ISO-8859-1
Final del formulario Final del formulario

Potrebbero piacerti anche