SlideShare uma empresa Scribd logo
1 de 10
4.1.- Configuraciones memoria compartida distribuida




Computación paralela
Un computador paralelo es un conjunto de procesadores capaces de cooperar en la solución
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 simultáneamente en diferentes CPUs.

Técnicas computacionales que descomponen un problema en sus tareas y pistas que pueden
ser computadas en diferentes máquinas o elementos de proceso al mismo tiempo.

¿Por qué utilizar computación paralela?

Reducir el tiempo de procesamiento.

Resolver problemas de gran envergadura.

Proveer concurrencia.

Utilizar recursos remotos de cómputo cuando los locales son escasos.

Reducción de costos usando múltiples recursos ”baratos” en lugar de costosas
supercomputadoras.

Ampliar los límites de memoria para resolver problemas grandes.

El mayor problema de la computación paralela radica en la complejidad de sincronizar unas
tareas con otras, ya sea mediante secciones críticas, semáforos o paso de mensajes, para
garantizar la exclusión mutua en las zonas del código en las que sea necesario.

La computación paralela está penetrando en todos los niveles de la computación, desde
computadoras masivamente paralelas usados en las ciencias de larga escala computacional,
hasta servidores múltiples procesadores que soportan procesamiento de transacciones. Los
principales problemas originados en cada uno de las áreas básicas de la informática (por
ejemplo, algoritmos, sistemas, lenguajes, arquitecturas, etc.) se vuelven aún más complejos
dentro del contexto de computación paralela.




        4.1.1.- De circuitos basados en bus, anillo o con
conmutador



En la topología de bus todos los nodos (computadoras) están conectadas a un circuito
común (bus).

La información que se envía de una computadora a otra viaja directamente o
indirectamente, si existe un controlador que en ruta los datos al destino correcto.

La información viaja por el cable en ambos sentidos a una velocidad aproximada de 10/100
Mbps y tiene en sus dos extremos una resistencia (terminador).

Se pueden conectar una gran cantidad de computadores al bus, si un computador falla, la
comunicación se mantiene, no sucede lo mismo si el bus es el que falla.
El tipo de cableado que se usa puede ser coaxial, par trenzado o fibra óptica.




Topología de anillo:
En la topología de anillo los nodos computadoras (nodos) están conectadas a la siguiente,
formando un anillo. Cada computadora tiene una dirección única.

Cuando un mensaje es enviado, este viaja a través del lazo de computadora en
computadora. Cada una de ellas examina la dirección de destino.
Si el mensaje no está direccionado a ella, reenvía el mensaje a la próxima computadora, y
así hasta que el mensaje encuentre la computadora destino.
Si se daña el cable, la comunicación no es posible.
4.2.- Modelos de consistencia




La duplicidad de los bloques compartidos aumenta el rendimiento, pero produce un
problema de consistencia entre las diferentes copias de la página en caso de una escritura.
Si con cada escritura es necesario actualizar todas las copias, el envío de las páginas por la
red provoca que el tiempo de espera aumente demasiado, convirtiendo este método 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 más fuerte al más
débil: consistencia estricta, secuencial, causal, PRAM, del procesador, débil, de liberación
y de entrada.




 4.2.1.- Estricta, causal, secuencial, débil, de liberación y
                          de entrada



Consistencia Estricta
El modelo de consistencia más restrictivo es llamado consistencia estricta y es definido por
la siguiente condición Cualquier lectura sobre un ítem de dato x retorna un valor
correspondiente con la más 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 diferenciación entre eventos que están potencialmente
relacionados en forma causal y aquellos que no. Las operaciones que no están causalmente
relacionadas se dicen concurrentes.

La condición a cumplir para que unos datos sean causalmente consistentes es:
Escrituras que están 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 máquinas.
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 más débil de la consistencia estricta.

Satisface la siguiente condición:
El resultado de una ejecución es el mismo si las operaciones (lectura y escritura) de todos
los procesos sobre el dato fueron ejecutadas en algún 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 Débil:
Los accesos a variables de sincronización asociadas con los datos almacenados son
secuencialmente consistentes.

Propiedades:
No se permite operación sobre una variable de sincronización 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
sincronización.

Consistencia liberación (Release):
El modelo de consistencia release, se basa en el supuesto de que los accesos a variables
compartidas se protegen en secciones críticas empleando primitivas de sincronización,
como por ejemplo locks. En tal caso, todo acceso esta precedido por una operación
adquiere y seguido por una operación release. Es responsabilidad del programador que esta
propiedad se cumpla en todos los programas.

Puesto que ningún otro proceso, ni local ni remoto, puede acceder a las variables que han
sido modificadas mientras se encuentren protegidas en la sección crítica, la actualización de
cualquier modificación puede postergarse hasta el momento en que se lleva a cabo la
operación release.

La operación release no se da por completada hasta que la actualización haya sido
propagada a todos aquellos procesadores en donde haya replicas. Con RC, la propagación
de un conjunto de modificaciones a memoria compartida se lleva a cabo con un costo fijo.

Propagación de Actualizaciones bajo RC y LRC de código sin proteger. En consecuencia
obtuvo un valor inconsistente para la variable leída.
4.3.- Mcd en base a páginas



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 paginación. Las páginas
quedan restringidas a estar necesariamente en un único ordenador. Cuando un programa intenta
acceder a una posición virtual de memoria, se comprueba si esa página se encuentra de forma
local. Si no se encuentra, se provoca un fallo de página, y el sistema operativo solicita la página al
resto de computadoras. El sistema funciona de forma análoga al sistema de memoria virtual
tradicional, pero en este caso los fallos de página se propagan al resto de ordenadores, hasta que
la petición llega al ordenador que tiene la página virtual solicitada en su memoria local. A primera
vista este sistema parece más 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
tráfico de páginas 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 abstracción se acerca a la idea de
programación mediante la declaración explícita de datos públicos y privados, y minimiza el
envío de información, ya que sólo se enviarán los datos que realmente vayan a compartirse.



           4.3.1.- Diseño, replica, granularidad, consistencia, propietario y copias

Diseño
De la descripción del sistema DSM-PEPE, es evidente que la especificación de los
protocolos que implementan los distintos modelos de consistencia de memoria se encuentra
dispersa entre los componentes del sistema. Esto está relacionado con el hecho que los
protocolos implementados desencadenan sus acciones de consistencia bajo distintas
condiciones. En el caso del protocolo de consistencia secuencial, las acciones de
consistencia se desencadenan a partir de faltas de página detectadas por el sistema
operativo, y en el caso del protocolo de consistencia de entrada, por acciones de
sincronización explícitas dentro del código del usuario.

El hecho que la especificación se encuentre dispersa dificulta tanto la incorporación de
nuevos protocolos de consistencia como la modificación de los ya existentes, debido a que
los componentes tienen además de su funcionalidad básica responsabilidades que no les
corresponden. Por ejemplo, los objetos DSMPage y DSMLock se encargan de ejecutar
acciones de consistencia, a pesar que no es función de ellos manejar este tipo de acciones.

Específicamente la clase DSMPage debería encargarse de realizar actualizaciones de las
páginas y mantener el estado de ellas; la clase DSMLock debería manejar únicamente
acciones de sincronización como el envío y recepción del token de exclusión mutua. Sería
deseable con el propósito de tener un mejor diseño que estas clases no incluyeran acciones
ligadas a los protocolos de consistencia como ocurre en este momento.
Para mejorar el diseño de este sistema es necesario extraer y luego encapsular la
especificación de los protocolos de consistencia de manera que sea el aspecto quien tome
las acciones de consistencia necesaria. Más aún, a partir del hecho que los protocolos de
consistencia dependiendo de su tipo toman acciones de consistencia en diferentes
componentes se propone que cada modelo de consistencia de memoria en DSM-PEPE sea
considerado como un aspecto.
A partir del análisis de los protocolos de consistencia de DSM-PEPE ya explicados
ejemplificaremos nuestra propuesta, detallando las modificaciones que se deben realizar
para conseguir un mejor diseño.

Replica

                  1. Replicar los bloques de sólo lectura
                  2. Replicar todos los bloques: en este caso se tienen que tomar acciones
                     para mantener la consistencia de los datos.




Granularidad

Los distintos tipos de grafo se diferencian por la granularidad de sus nodos y la información
contenida en las aristas. En todos los casos, los nodos del grafo contienen un apuntador a
una operación de la representación en WHIRL. A su vez, las operaciones de la
representación intermedia también tienen asociado un apuntador que les va a permitir
acceder al nodo correspondiente del grafo de dependencias. En el grafo de dependencias
entre arrays, los nodos apuntan a operaciones de load y store sobre arrays, mientras que en
el grafo de niveles de dependencia, los nodos apuntan a sentencias, que son elementos de
mayor granularidad.

Respecto a las aristas, estas van a contener vectores de dependencia en el grafo de
dependencias entre arrays o una etiqueta indicando el nivel de la dependencia en el caso del
grafo de niveles de dependencia.
La figura muestra de forma esquemática como se guardan los grafos. La estructura de datos
que se utiliza es la clase ARRAY DIRECTED GRAPH16, que se declara en /be/com/dep
graph.h. El tipo de dato que se utiliza para declarar las aristas es una unión de tres tipos
distintos, que son DEPV ARRAY para el grafo de dependencias entre arrays, LEVEL
STRUCT para el de niveles de dependencia y DEP STRUCT para el utilizado en
generación de código.

La clase DEPV ARRAY contiene una lista de vectores de dependencia, cada uno de ellos
de tipo DEPV. Cada dimensión de un vector de dependencia guarda un elemento de tipo
DEP, que es un entero de dieciséis bits organizado de la siguiente forma:

Bit 15: indica si la distancia es constante.
Bits 12-14: señalan la dirección de la dependencia.
Bits 0-11: indica la distancia, en caso que esta sea constante, o un límite en caso contrario.

Consistencia

*Un modelo de consistencia de memoria (Mosberger 1993) especifica las garantías de
consistencia que un sistema otorga sobre los valores que los procesos leen de los objetos,
dado que en realidad acceden a una réplica de cada objeto y que múltiples procesos pueden
actualizar los objetos.

*La principal interrogante que se plantea al caracterizar un modelo de consistencia de
memoria es: cuándo se realiza un acceso de lectura sobre una posición de memoria, qué
accesos de escritura son candidatos para que sus valores sean proporcionados en la lectura.

*Cualquier lectura realizada antes.

*La ultimo lectura.

*Etc.

Propietario

El modelo de consistencia secuencial dice que todos los nodos deben ver las escrituras
sobre una variable en el mismo orden. El protocolo secuencial implementado en DSM-
PEPE funciona sobre la base de que en todo momento un nodo es el propietario (owner) de
una página y es sólo él quien puede escribir en ella. En caso que alguien más desee escribir
en ella, primero debe encontrar al propietario y solicitarle la página, en cuyo caso el nodo
receptor pasa a ser el nuevo propietario. La información de los propietarios de cada página
se mantiene como un atributo del objeto DSMPage, llamado probOwner, el cual indica
quién es su probable propietario.

Las acciones de consistencia se generan en cuatro tipos de eventos, que corresponden a
métodos del objeto.

DSMPage: faltas de páginas locales para lectura (ReadFault), faltas de página locales para
escritura (WriteFault), faltas de página remotas para lectura (RemoteReadFault), y faltas de
página remotas para escritura (RemoteWriteFault). En cada uno de esos casos se toman las
acciones necesarias para invalidar páginas, enviar copias actualizadas a quien las pide, y
actualizar los propietarios. La figura 1 muestra una descripción parcial de los objetos
involucrados con el protocolo de consistencia secuencial.

En el caso de la falta de lectura local, se envía una petición al probable propietario de la
página utilizando el atributo probOwner; eventualmente el mensaje llegará al propietario
actual, y éste enviará un mensaje con la copia actualizada de la página. En el caso de la
falta de escritura local, se realiza el mismo procedimiento para hallar al propietario actual
de la página, pero éste junto con enviar la copia actualizada, además invalida su copia local
y todas las copias que ha distribuido entre los demás nodos mientras fue propietario, y
entrega la propiedad de la página al nodo receptor. Las faltas remotas se utilizan para ubicar
al propietario de la página. Cuando llega una falta remota, el nodo evalúa si él es el
propietario de la página; si es así, contesta con la acción de copia o invalidación
correspondiente, y si no es así, reenvía la petición a quien él cree que es el probable
propietario utilizando su atributo probOwner. La recepción de faltas remotas se hace a
través de un objeto receptor de mensajes llamado msgMgrThread, el cual transmite el
evento de falta de página al objeto DSMPage correspondiente.

Copias

En el caso del protocolo de consistencia secuencial, se propone extraer de la especificación
del objeto DSMPage la información relativa al probable propietario de la página y de los
nodos que poseen copias de ella, ya que ésta es únicamente utilizada por el protocolo de
consistencia secuencial, y extraer del msgMgrThread la funcionalidad relativa al protocolo
de consistencia. Esto significa eliminar de la especificación del objeto DSMPage el atributo
probOwner, y también los métodos que manejan la consistencia actualmente, ReadFault,
WriteFault, RemoteReadFault, y RemoteWriteFault.

El sistema operativo y el objeto msgMgrThread generan los puntos de entrada a las
acciones de consistencia. La detección de una falta de página por el sistema operativo o la
recepción de un mensaje por el msgMgrThread corresponden a los puntos de unión del
aspecto encargado del protocolo de consistencia secuencial con el resto del sistema. El
aspecto recibirá el nombre de sequentialAspect. La figura muestra las modificaciones
propuestas y los puntos de unión para el aspecto sequentialAspect.

El aspecto sequentialAspect será el encargado de invalidar las páginas y enviar las copias
actualizadas cuando reciba un mensaje de falta de página remota y el nodo sea el
propietario de la página, o bien de redirigir mensajes de consistencia hacia los probables
propietarios de las páginas cuando no lo sea y reciba este mismo mensaje. Además, tendrá
que generar mensajes solicitando la página que se requiera cuando se produzca una falta de
página local.

Con esto el diseño del objeto DSMPage se hace más cohesionado, ya que ahora contiene
sólo la funcionalidad referente a la representación de una página de memoria y el
msgMgrThread se encarga sólo de la recepción de mensajes entre los nodos y transmisión
de estos mensajes hacia los objetos.
4.4.- Mcd en base a variables




La compartición falsa se produce cuando dos procesos se pelean el acceso a la misma
página de memoria, ya que contiene variables que requieren los dos, pero estas no son las
mismas. Esto pasa por un mal diseño del tamaño de las páginas y por la poca relación
existente entre variables de la misma página.

En los MCD basados en variables se busca evitar la compartición 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 páginas o en la misma página 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 encapsulación
de la info. Y repartida a través de la red, estos objetos serán definidos por el Programador y
las CPU´s cambiaran los estados según procedan con los accesos.




                         4.5.- Mcd en base a objetos



Una alternativa al uso de páginas es tomar el objeto como base de la transferencia de
memoria. Aunque el control de la memoria resulta más complejo, el resultado es al mismo
tiempo modular y flexible, y la sincronización 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 métodos de los objetos, con lo que no se admiten
programas no modulares y se consideran incompatibles.

Mais conteúdo relacionado

Mais procurados (20)

Modelo de referencia osi
Modelo de referencia osiModelo de referencia osi
Modelo de referencia osi
 
Capas del modelo osi tcp-ip
Capas del modelo osi tcp-ipCapas del modelo osi tcp-ip
Capas del modelo osi tcp-ip
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Unidad 2 clasificacion de arquitectura paralela
Unidad 2 clasificacion de arquitectura paralelaUnidad 2 clasificacion de arquitectura paralela
Unidad 2 clasificacion de arquitectura paralela
 
Capas del modelo osi
Capas del modelo osiCapas del modelo osi
Capas del modelo osi
 
computación paralela
computación paralelacomputación paralela
computación paralela
 
Modelos y Lenguajes Para Computación Paralela
Modelos y Lenguajes Para Computación ParalelaModelos y Lenguajes Para Computación Paralela
Modelos y Lenguajes Para Computación Paralela
 
Modelo osi1
Modelo osi1Modelo osi1
Modelo osi1
 
Las capas de osi
Las capas de osi Las capas de osi
Las capas de osi
 
Computacion paralela
Computacion paralelaComputacion paralela
Computacion paralela
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSI
 
Capa de osi mafe
Capa de osi mafeCapa de osi mafe
Capa de osi mafe
 
Capas de Enlace y Red
Capas de Enlace y RedCapas de Enlace y Red
Capas de Enlace y Red
 
Capas del modelo osi d
Capas del modelo osi dCapas del modelo osi d
Capas del modelo osi d
 
Que es la capa osi
Que es la capa osiQue es la capa osi
Que es la capa osi
 
Semana 13
Semana 13Semana 13
Semana 13
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
El modelo jerárquico de 3 capas de
El modelo jerárquico de 3 capas deEl modelo jerárquico de 3 capas de
El modelo jerárquico de 3 capas de
 
El modelo jerárquico de 3 capas de
El modelo jerárquico de 3 capas deEl modelo jerárquico de 3 capas de
El modelo jerárquico de 3 capas de
 
Capa De Sesion
Capa De SesionCapa De Sesion
Capa De Sesion
 

Semelhante a Unidad iv

Sistemas Distribuidos
Sistemas  DistribuidosSistemas  Distribuidos
Sistemas Distribuidossantiago
 
COMERCIO ELECTRONICO UNIDAD III
COMERCIO ELECTRONICO UNIDAD IIICOMERCIO ELECTRONICO UNIDAD III
COMERCIO ELECTRONICO UNIDAD IIIALBAYCOTA
 
unidad III comercio electronico 1.1
unidad III comercio electronico 1.1unidad III comercio electronico 1.1
unidad III comercio electronico 1.1Shavauabc
 
unidad 3 comercio electronico
unidad 3 comercio electronicounidad 3 comercio electronico
unidad 3 comercio electronicoShavauabc
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidoscarlosmax10
 
Modelo osi, capas, protocolos y componentes.
Modelo osi, capas, protocolos y componentes. Modelo osi, capas, protocolos y componentes.
Modelo osi, capas, protocolos y componentes. Miguel Diaz
 
Sistemas Distribuidos
Sistemas DistribuidosSistemas Distribuidos
Sistemas DistribuidosPrisciña
 
Sistemas Operativos Distribuidos.
Sistemas Operativos Distribuidos.Sistemas Operativos Distribuidos.
Sistemas Operativos Distribuidos.argentm
 
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)Liz Ocampo
 
UNIDAD 1: SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOS
UNIDAD 1: SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOSUNIDAD 1: SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOS
UNIDAD 1: SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOShoneyjimenez
 

Semelhante a Unidad iv (20)

Expo unidad 4
Expo unidad 4Expo unidad 4
Expo unidad 4
 
Sistemas Distribuidos
Sistemas  DistribuidosSistemas  Distribuidos
Sistemas Distribuidos
 
Shavaaaaaa
ShavaaaaaaShavaaaaaa
Shavaaaaaa
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
COMERCIO ELECTRONICO UNIDAD III
COMERCIO ELECTRONICO UNIDAD IIICOMERCIO ELECTRONICO UNIDAD III
COMERCIO ELECTRONICO UNIDAD III
 
unidad III comercio electronico 1.1
unidad III comercio electronico 1.1unidad III comercio electronico 1.1
unidad III comercio electronico 1.1
 
unidad 3 comercio electronico
unidad 3 comercio electronicounidad 3 comercio electronico
unidad 3 comercio electronico
 
unidad 3
unidad 3unidad 3
unidad 3
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSI
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
sistemas distribuidos 4
sistemas distribuidos 4sistemas distribuidos 4
sistemas distribuidos 4
 
Modelo osi, capas, protocolos y componentes.
Modelo osi, capas, protocolos y componentes. Modelo osi, capas, protocolos y componentes.
Modelo osi, capas, protocolos y componentes.
 
Modelo osi y sus 7 capas
Modelo osi y sus 7 capasModelo osi y sus 7 capas
Modelo osi y sus 7 capas
 
Sistemas Distribuidos
Sistemas DistribuidosSistemas Distribuidos
Sistemas Distribuidos
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Sistemas Operativos Distribuidos.
Sistemas Operativos Distribuidos.Sistemas Operativos Distribuidos.
Sistemas Operativos Distribuidos.
 
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
Capítulo 25 (Base de datos distribuidas y arquitectura cliente-servidor)
 
UNIDAD 1: SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOS
UNIDAD 1: SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOSUNIDAD 1: SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOS
UNIDAD 1: SISTEMAS OPERATIVOS EN AMBIENTES DISTRIBUIDOS
 
S. o. 2 unidad 1
S. o. 2 unidad 1S. o. 2 unidad 1
S. o. 2 unidad 1
 

Último

TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 

Último (20)

TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 

Unidad iv

  • 1. 4.1.- Configuraciones memoria compartida distribuida Computación paralela Un computador paralelo es un conjunto de procesadores capaces de cooperar en la solución 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 simultáneamente en diferentes CPUs. Técnicas computacionales que descomponen un problema en sus tareas y pistas que pueden ser computadas en diferentes máquinas o elementos de proceso al mismo tiempo. ¿Por qué utilizar computación paralela? Reducir el tiempo de procesamiento. Resolver problemas de gran envergadura. Proveer concurrencia. Utilizar recursos remotos de cómputo cuando los locales son escasos. Reducción de costos usando múltiples recursos ”baratos” en lugar de costosas supercomputadoras. Ampliar los límites de memoria para resolver problemas grandes. El mayor problema de la computación paralela radica en la complejidad de sincronizar unas tareas con otras, ya sea mediante secciones críticas, semáforos o paso de mensajes, para garantizar la exclusión mutua en las zonas del código en las que sea necesario. La computación paralela está penetrando en todos los niveles de la computación, desde computadoras masivamente paralelas usados en las ciencias de larga escala computacional, hasta servidores múltiples procesadores que soportan procesamiento de transacciones. Los principales problemas originados en cada uno de las áreas básicas de la informática (por ejemplo, algoritmos, sistemas, lenguajes, arquitecturas, etc.) se vuelven aún más complejos dentro del contexto de computación paralela. 4.1.1.- De circuitos basados en bus, anillo o con
  • 2. conmutador En la topología de bus todos los nodos (computadoras) están conectadas a un circuito común (bus). La información que se envía de una computadora a otra viaja directamente o indirectamente, si existe un controlador que en ruta los datos al destino correcto. La información viaja por el cable en ambos sentidos a una velocidad aproximada de 10/100 Mbps y tiene en sus dos extremos una resistencia (terminador). Se pueden conectar una gran cantidad de computadores al bus, si un computador falla, la comunicación se mantiene, no sucede lo mismo si el bus es el que falla. El tipo de cableado que se usa puede ser coaxial, par trenzado o fibra óptica. Topología de anillo: En la topología de anillo los nodos computadoras (nodos) están conectadas a la siguiente, formando un anillo. Cada computadora tiene una dirección única. Cuando un mensaje es enviado, este viaja a través del lazo de computadora en computadora. Cada una de ellas examina la dirección de destino.
  • 3. Si el mensaje no está direccionado a ella, reenvía el mensaje a la próxima computadora, y así hasta que el mensaje encuentre la computadora destino. Si se daña el cable, la comunicación no es posible.
  • 4. 4.2.- Modelos de consistencia La duplicidad de los bloques compartidos aumenta el rendimiento, pero produce un problema de consistencia entre las diferentes copias de la página en caso de una escritura. Si con cada escritura es necesario actualizar todas las copias, el envío de las páginas por la red provoca que el tiempo de espera aumente demasiado, convirtiendo este método 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 más fuerte al más débil: consistencia estricta, secuencial, causal, PRAM, del procesador, débil, de liberación y de entrada. 4.2.1.- Estricta, causal, secuencial, débil, de liberación y de entrada Consistencia Estricta El modelo de consistencia más restrictivo es llamado consistencia estricta y es definido por la siguiente condición Cualquier lectura sobre un ítem de dato x retorna un valor correspondiente con la más 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 diferenciación entre eventos que están potencialmente relacionados en forma causal y aquellos que no. Las operaciones que no están causalmente relacionadas se dicen concurrentes. La condición a cumplir para que unos datos sean causalmente consistentes es: Escrituras que están 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 máquinas.
  • 5. 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 más débil de la consistencia estricta. Satisface la siguiente condición: El resultado de una ejecución es el mismo si las operaciones (lectura y escritura) de todos los procesos sobre el dato fueron ejecutadas en algún 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 Débil: Los accesos a variables de sincronización asociadas con los datos almacenados son secuencialmente consistentes. Propiedades: No se permite operación sobre una variable de sincronización 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 sincronización. Consistencia liberación (Release): El modelo de consistencia release, se basa en el supuesto de que los accesos a variables compartidas se protegen en secciones críticas empleando primitivas de sincronización, como por ejemplo locks. En tal caso, todo acceso esta precedido por una operación adquiere y seguido por una operación release. Es responsabilidad del programador que esta propiedad se cumpla en todos los programas. Puesto que ningún otro proceso, ni local ni remoto, puede acceder a las variables que han sido modificadas mientras se encuentren protegidas en la sección crítica, la actualización de cualquier modificación puede postergarse hasta el momento en que se lleva a cabo la operación release. La operación release no se da por completada hasta que la actualización haya sido propagada a todos aquellos procesadores en donde haya replicas. Con RC, la propagación de un conjunto de modificaciones a memoria compartida se lleva a cabo con un costo fijo. Propagación de Actualizaciones bajo RC y LRC de código sin proteger. En consecuencia obtuvo un valor inconsistente para la variable leída.
  • 6. 4.3.- Mcd en base a páginas 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 paginación. Las páginas quedan restringidas a estar necesariamente en un único ordenador. Cuando un programa intenta acceder a una posición virtual de memoria, se comprueba si esa página se encuentra de forma local. Si no se encuentra, se provoca un fallo de página, y el sistema operativo solicita la página al resto de computadoras. El sistema funciona de forma análoga al sistema de memoria virtual tradicional, pero en este caso los fallos de página se propagan al resto de ordenadores, hasta que la petición llega al ordenador que tiene la página virtual solicitada en su memoria local. A primera vista este sistema parece más 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 tráfico de páginas 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 abstracción se acerca a la idea de programación mediante la declaración explícita de datos públicos y privados, y minimiza el envío de información, ya que sólo se enviarán los datos que realmente vayan a compartirse. 4.3.1.- Diseño, replica, granularidad, consistencia, propietario y copias Diseño De la descripción del sistema DSM-PEPE, es evidente que la especificación de los protocolos que implementan los distintos modelos de consistencia de memoria se encuentra dispersa entre los componentes del sistema. Esto está relacionado con el hecho que los protocolos implementados desencadenan sus acciones de consistencia bajo distintas condiciones. En el caso del protocolo de consistencia secuencial, las acciones de consistencia se desencadenan a partir de faltas de página detectadas por el sistema operativo, y en el caso del protocolo de consistencia de entrada, por acciones de sincronización explícitas dentro del código del usuario. El hecho que la especificación se encuentre dispersa dificulta tanto la incorporación de nuevos protocolos de consistencia como la modificación de los ya existentes, debido a que los componentes tienen además de su funcionalidad básica responsabilidades que no les corresponden. Por ejemplo, los objetos DSMPage y DSMLock se encargan de ejecutar acciones de consistencia, a pesar que no es función de ellos manejar este tipo de acciones. Específicamente la clase DSMPage debería encargarse de realizar actualizaciones de las páginas y mantener el estado de ellas; la clase DSMLock debería manejar únicamente acciones de sincronización como el envío y recepción del token de exclusión mutua. Sería deseable con el propósito de tener un mejor diseño que estas clases no incluyeran acciones ligadas a los protocolos de consistencia como ocurre en este momento.
  • 7. Para mejorar el diseño de este sistema es necesario extraer y luego encapsular la especificación de los protocolos de consistencia de manera que sea el aspecto quien tome las acciones de consistencia necesaria. Más aún, a partir del hecho que los protocolos de consistencia dependiendo de su tipo toman acciones de consistencia en diferentes componentes se propone que cada modelo de consistencia de memoria en DSM-PEPE sea considerado como un aspecto. A partir del análisis de los protocolos de consistencia de DSM-PEPE ya explicados ejemplificaremos nuestra propuesta, detallando las modificaciones que se deben realizar para conseguir un mejor diseño. Replica 1. Replicar los bloques de sólo lectura 2. Replicar todos los bloques: en este caso se tienen que tomar acciones para mantener la consistencia de los datos. Granularidad Los distintos tipos de grafo se diferencian por la granularidad de sus nodos y la información contenida en las aristas. En todos los casos, los nodos del grafo contienen un apuntador a una operación de la representación en WHIRL. A su vez, las operaciones de la representación intermedia también tienen asociado un apuntador que les va a permitir acceder al nodo correspondiente del grafo de dependencias. En el grafo de dependencias entre arrays, los nodos apuntan a operaciones de load y store sobre arrays, mientras que en el grafo de niveles de dependencia, los nodos apuntan a sentencias, que son elementos de mayor granularidad. Respecto a las aristas, estas van a contener vectores de dependencia en el grafo de dependencias entre arrays o una etiqueta indicando el nivel de la dependencia en el caso del grafo de niveles de dependencia. La figura muestra de forma esquemática como se guardan los grafos. La estructura de datos que se utiliza es la clase ARRAY DIRECTED GRAPH16, que se declara en /be/com/dep graph.h. El tipo de dato que se utiliza para declarar las aristas es una unión de tres tipos distintos, que son DEPV ARRAY para el grafo de dependencias entre arrays, LEVEL
  • 8. STRUCT para el de niveles de dependencia y DEP STRUCT para el utilizado en generación de código. La clase DEPV ARRAY contiene una lista de vectores de dependencia, cada uno de ellos de tipo DEPV. Cada dimensión de un vector de dependencia guarda un elemento de tipo DEP, que es un entero de dieciséis bits organizado de la siguiente forma: Bit 15: indica si la distancia es constante. Bits 12-14: señalan la dirección de la dependencia. Bits 0-11: indica la distancia, en caso que esta sea constante, o un límite en caso contrario. Consistencia *Un modelo de consistencia de memoria (Mosberger 1993) especifica las garantías de consistencia que un sistema otorga sobre los valores que los procesos leen de los objetos, dado que en realidad acceden a una réplica de cada objeto y que múltiples procesos pueden actualizar los objetos. *La principal interrogante que se plantea al caracterizar un modelo de consistencia de memoria es: cuándo se realiza un acceso de lectura sobre una posición de memoria, qué accesos de escritura son candidatos para que sus valores sean proporcionados en la lectura. *Cualquier lectura realizada antes. *La ultimo lectura. *Etc. Propietario El modelo de consistencia secuencial dice que todos los nodos deben ver las escrituras sobre una variable en el mismo orden. El protocolo secuencial implementado en DSM- PEPE funciona sobre la base de que en todo momento un nodo es el propietario (owner) de una página y es sólo él quien puede escribir en ella. En caso que alguien más desee escribir en ella, primero debe encontrar al propietario y solicitarle la página, en cuyo caso el nodo receptor pasa a ser el nuevo propietario. La información de los propietarios de cada página se mantiene como un atributo del objeto DSMPage, llamado probOwner, el cual indica quién es su probable propietario. Las acciones de consistencia se generan en cuatro tipos de eventos, que corresponden a métodos del objeto. DSMPage: faltas de páginas locales para lectura (ReadFault), faltas de página locales para escritura (WriteFault), faltas de página remotas para lectura (RemoteReadFault), y faltas de página remotas para escritura (RemoteWriteFault). En cada uno de esos casos se toman las acciones necesarias para invalidar páginas, enviar copias actualizadas a quien las pide, y
  • 9. actualizar los propietarios. La figura 1 muestra una descripción parcial de los objetos involucrados con el protocolo de consistencia secuencial. En el caso de la falta de lectura local, se envía una petición al probable propietario de la página utilizando el atributo probOwner; eventualmente el mensaje llegará al propietario actual, y éste enviará un mensaje con la copia actualizada de la página. En el caso de la falta de escritura local, se realiza el mismo procedimiento para hallar al propietario actual de la página, pero éste junto con enviar la copia actualizada, además invalida su copia local y todas las copias que ha distribuido entre los demás nodos mientras fue propietario, y entrega la propiedad de la página al nodo receptor. Las faltas remotas se utilizan para ubicar al propietario de la página. Cuando llega una falta remota, el nodo evalúa si él es el propietario de la página; si es así, contesta con la acción de copia o invalidación correspondiente, y si no es así, reenvía la petición a quien él cree que es el probable propietario utilizando su atributo probOwner. La recepción de faltas remotas se hace a través de un objeto receptor de mensajes llamado msgMgrThread, el cual transmite el evento de falta de página al objeto DSMPage correspondiente. Copias En el caso del protocolo de consistencia secuencial, se propone extraer de la especificación del objeto DSMPage la información relativa al probable propietario de la página y de los nodos que poseen copias de ella, ya que ésta es únicamente utilizada por el protocolo de consistencia secuencial, y extraer del msgMgrThread la funcionalidad relativa al protocolo de consistencia. Esto significa eliminar de la especificación del objeto DSMPage el atributo probOwner, y también los métodos que manejan la consistencia actualmente, ReadFault, WriteFault, RemoteReadFault, y RemoteWriteFault. El sistema operativo y el objeto msgMgrThread generan los puntos de entrada a las acciones de consistencia. La detección de una falta de página por el sistema operativo o la recepción de un mensaje por el msgMgrThread corresponden a los puntos de unión del aspecto encargado del protocolo de consistencia secuencial con el resto del sistema. El aspecto recibirá el nombre de sequentialAspect. La figura muestra las modificaciones propuestas y los puntos de unión para el aspecto sequentialAspect. El aspecto sequentialAspect será el encargado de invalidar las páginas y enviar las copias actualizadas cuando reciba un mensaje de falta de página remota y el nodo sea el propietario de la página, o bien de redirigir mensajes de consistencia hacia los probables propietarios de las páginas cuando no lo sea y reciba este mismo mensaje. Además, tendrá que generar mensajes solicitando la página que se requiera cuando se produzca una falta de página local. Con esto el diseño del objeto DSMPage se hace más cohesionado, ya que ahora contiene sólo la funcionalidad referente a la representación de una página de memoria y el msgMgrThread se encarga sólo de la recepción de mensajes entre los nodos y transmisión de estos mensajes hacia los objetos.
  • 10. 4.4.- Mcd en base a variables La compartición falsa se produce cuando dos procesos se pelean el acceso a la misma página de memoria, ya que contiene variables que requieren los dos, pero estas no son las mismas. Esto pasa por un mal diseño del tamaño de las páginas y por la poca relación existente entre variables de la misma página. En los MCD basados en variables se busca evitar la compartición 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 páginas o en la misma página 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 encapsulación de la info. Y repartida a través de la red, estos objetos serán definidos por el Programador y las CPU´s cambiaran los estados según procedan con los accesos. 4.5.- Mcd en base a objetos Una alternativa al uso de páginas es tomar el objeto como base de la transferencia de memoria. Aunque el control de la memoria resulta más complejo, el resultado es al mismo tiempo modular y flexible, y la sincronización 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 métodos de los objetos, con lo que no se admiten programas no modulares y se consideran incompatibles.