Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Arquitectura de Computadoras
Presenta:
Los sistemas de Memoria Compartida Distribuida (MCD), son sistemas que, mediante
software, emulan semántica de memoria compartida sobre hardware que ofrece soporte solo
para comunicación 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
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 será empleado por los procesos
referencias a memoria que hacen los procesos, y satisfacerlas, ya sea local o remotamente.
Configuraciones de memoria compartida distribuida.
COMPUTACIÓN PARALELA
CPUs. Técnicas computacionales que descomponen un problema en sus tareas y pistas que
Proveer concurrencia.
supercomputadoras.
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
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
Memoria basada en circuitos: Existe una única área de memoria y cada micro tiene
centralizado)
MCD basada en bus: En este esquema los micros comparten un bus de datos y
direcciones por lo que es más barato de implementar, se necesita tener una memoria
Algunos transmiten las direcciones y datos que el CPU quiere leer o escribir
Buses pueden ser parte del chip, pero en la mayoría de los sistemas los buses son
de un CPU.
La parte privada:
se divide en regiones cada máquina cuenta con memoria para su pila, datos y códigos no
compartidos.
Parte compartida:
MCD basada en conmutador: Varios micros se conectan entre sí en forma de bus formando
realiza una operación de memoria se intenta realizar dentro del grupo, de lo contrario pasa al
En anillo o bus, el hecho de añadir un CPU satura el ancho de banda del bus o anillo
esta área:
Modelos de consistencia.
sistema MCD realiza sobre los valores que los procesos leen desde los objetos, dado que en
realidad acceden sobre una réplica de cada objeto y que múltiples procesos pueden actualizar
los objetos.
Si cada escritura es necesario actualizar todas las copias el envió de las paginas por red
impracticable.
CARACTERISTICAS DE CONSISTENCIA
enviados.
consistencia estricta y es definido por la siguiente condición cualquier lectura sobre un ítem
La condición para cumplir para que unos datos sean casualmente consistentes es:
Escrituras que están potencialmente relacionados en forma casual deben ser vistas por todos
La condición por cumplir para que unos datos sean causalmente consistentes es:
Escrituras que están potencialmente relacionadas en forma causal deben ser vistas por todos
Escrituras concurrentes pueden ser vistas en un orden diferente sobre diferentes máquinas.
estricta.
CONSISTENCIA SECUENCIAL.
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 estas operaciones de cada proceso individual aparecen en esta
CONSISTENCIA DÉBIL: Los accesos a variables de sincronización asociadas con los datos
Propiedades
No se permite operación sobre una variable de sincronización hasta que todas las escrituras
sincronización.
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
operación reléase.
Cada CPU cuenta con su propia memoria y no pueden referenciar memoria remota
directamente.
Cuando dirección CPU se encuentra en una página que reside en una máquina remota:
Rendimiento
El SD escala en número.
Escala en área geográfica (disminuye el tiempo de acceso al dato) Consulta simultánea de los
mismos datos.
GRANULARIDAD.
hablamos de una jerarquía la granularidad empieza por la parte más alta de la jerarquía,
trabajar correctamente.
Normalmente un proceso que realiza una operación de lectura espera que esa operación
devuelva un valor que refleje el resultado de la última operación de escritura sobre el dato.
Munin:
1. Consistencia de liberación.
2. Protocolos múltiples.
3. Directorios.
4. Sincronización.
Midway:
1. Consistencia de entrada.
2. Implementación.
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
programa en cada CPU que se comunica con una central, la que le provee de variables
varias páginas o en la misma página muchas variables del mismo tipo, en este protocolo es
En los MCD basados en objetos se busca el acceso a datos por medio de la encapsulación de
Programador y las CPUs cambiarán los estados según procedan con los accesos.
El problema del false sharing puede eliminarse si se utiliza una granularidad más tan fin tan
fina, como las entidades que usualmente se comparten en los programas paralelos:
Las variables. De ser así, el problema ahora consiste en cómo mantener registro de las
variables replicadas. Además, es probable que sea más conveniente utilizar una política de
actualización y no de invalidación, puesto que en la implementación debe ser posible
Nace como respuesta a la creciente popularización de los lenguajes orientados por objetos.
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