You are on page 1of 5

Sistemas Operativos distribuidas Actividades de aprendizaje

Fecha: ____de ___________ del 2008


Temas: 4.4 MCD basada en páginas 4.5 MCD basada en variables y 4.6 MCD basada en objetos
Actividad Dinámica Modalidad Descripción 
MCD con Trabajo en equipo presencial Realizar la lectura de la página 333-345 del Libro de Sistemas 25
base a de 2 integrantes Operativos distribuidos de Tanenbaum acerca de MCD basada
páginas en páginas y
a) Contestar el cuestionario Anexo

MCD con Trabajo en equipo presencial Realizar la lectura de la página 333-356 del Libro de Sistemas 25
variables de 2 integrantes Operativos distribuidos de Tanenbaum acerca de MCD basada en
compartidas variables y :
a) Contestar el cuestionario Anexo

MCD con Trabajo en equipo Presencial Realizar la lectura de la página 356-372 del Libro de Sistemas 25
base a de 2 integrantes Operativos distribuidos de Tanenbaum acerca de MCD basada en
objetos objetos y:
a) Contestar el cuestionario Anexo

Integrantes:
Alumno: _____________________________________________________________________ No. Ctrol: _______________________NL:____
Alumno: _____________________________________________________________________ No. Ctrol: _______________________NL:____
Lectura de MCD basada en páginas:
Aspectos de diseño de la MCD
a) Esquemas alternativos en la gestión de copias:
– Se puede utilizar una sola copia: El dato va viajando por los distintos nodos según lo acceden, No hay problema de
coherencia pero tiene mal rendimiento. – Se pueden utilizar múltiples copias de lectura (read-replication): El modelo
múltiples lectores/único escritor es la solución más frecuente. - Se pueden emplear múltiples copias tanto de lectura como de
escritura (full-replication): Con el modelo múltiples lectores/múltiples escritores, las escrituras en mismo orden sobre todas
las copias y es poco usado (por ej. Orca)
b) Granularidad de los datos compartidos
– Acceso a datos no presentes en su máquina: ¿Qué se solicita?: Se puede solicitar sólo el dato requerido → Puede ser
ineficiente. UnaUnidad mayor que contiene el dato → Genera “false-sharing”. El Thrashing ocurre cuando procesos estan
compitiendo por undato (realmente o por “false-sharing”) o cuando la página “viaja” continuamente de un procesador a otro.
Suele existir un intervalo mínimo de permanencia en un nodo. Se utiliza la política de escritura: Write-update: El dato escrito
se propaga a copias. Es usado con full-replication. Puede basarse en multicast. En MCD basado en páginas pueden
transmitirse sólo diferencias. Puede paliar “false-sharing” (e.g. Munim y ThreadMarks). En la política Write-invalidate:
escritura genera invalidación de copias. Es usado con read-replication, siendo la solución más habitual
c) La Sincronización es Factible pero ineficiente usar semáforos basados en test-and-set ya que genera mucho tráfico de
accesos e invalidaciones superfluas. La sincronización basada directamente en mensajes o la localización de datos: ¿dónde
están las copias?: Mediante broadcast, pero es poco escalable. El Gestor mantiene información sobre copias de todos los
datos, genera “Cuello de botella”, le falta de escalabilidad y punto único de fallo. Varios gestores: cada uno guarda
información sobre un subconjunto de datos
En la MCD basada en páginas, el reparto dependiendo de número de página
d) Los Modelos de coherencia ya vistos en el tema 4.2
MCD Basada en Páginas:
Es un sistema de MCD es posible hacer uso del hardware de administración de memoria. La mayoría de los computadores
modernos basan su arquitectura de memoria en paginación o alguna variante de ella. En este tipo de sistemas, el hardware
ofrece una serie de facilidades relacionadas con las páginas de memoria, normalmente aprovechadas únicamente por el
sistema operativo. Puede citarse la manipulación del estado de las páginas (e.g., invalidación, activación) y la senalización
de eventos relacionados con páginas (e.g., el acceso a una página inválida). En un sistema de MCD basado en páginas, la
unidad de memoria que utiliza el sistema es, precisamente, la página. Las páginas migran dinámicamente a través de la red
en demanda, puesto que en realidad los procesos pueden acceder únicamente a páginas almacenadas en la memoria local
del computador donde se están ejecutando. El software de MCD es el encargado de dirigir estos flujos de páginas en los
momentos apropiados. Puesto que la memoria compartida en un multiprocesador se comporta secuencialmente consistente,
los primeros enfoques para la MCD incorporaban un modelo de consistencia secuencial. Los aspectos de consistencia de la
memoria se trataron el tema 4.2 de la unidad 4. La implementación original de Ivy intentaba emular el caché de un
multiprocesador. En este caso, cuando un proceso referencia una dirección que no es local, se provoca una interrupción y el
software de MCD trae la página involucrada y posteriormente reinicia la instrucción relacionada.
Por ejemplo, considere el sistema con cuatro procesadores de la Figura 4.2, el cual cuenta con un espacio de direcciones de
16 páginas. Si un proceso en el computador 1 accede a las páginas 0, 2, 5 ó 9, las referencias se hacen localmente. Una
referencia a la página 10 (o a cualquier otra página que no sea 0, 2, 5 ó 9), provocará una interrupción y la página deberá ser
transferida al computador 1.El alto tráfico de páginas por la red que se puede presentar en un sistema de MCD obliga a

mantener copias o réplicas de las páginas frecuentemente


usadas con el objetivo de reducir los retardos provocados
por las transferencias de red, en la misma forma en que un
caché ayuda a mejorar el desempeño de un sistema
multiprocesador fuertemente acoplado, minimizando el
tiempo de transferencia entre el procesador y la memoria.
Es evidente que no existe problema en replicar páginas de
sólo lectura, como el código de los programas. Sin embargo,
en general, la incorporación de las réplicas introduce un
problema de consistencia para las múltiples copias que
puede existir de cada página.La actualización de las páginas
replicadas que son modificadas puede llevarse a cabo de
distintas maneras. En primer lugar, puede emplearse un
protocolo de actualización: Se envía las páginas
Figura 4.2 Memoria compartida basada en páginas
actualizadas a todos los nodos que mantienen copias. Otra opción es enviar mensajes de invalidación para las copias, de
modo que la actualización se lleve a cabo por demanda. Finalmente, puede enviarse estructuras que codifiquen los cambios
a las páginas y que permitan construir la versión actualizada a partir de una página original y múltiples modificaciones. A
estas estructuras se les conoce como dibs o actualizaciones. Los dibs se usan con frecuencia en protocolos que soportan
múltiples escritores simultáneos sobre una misma página, con el objetivo de reducir el problema de la compartición falsa.
Este problema es característico de cualquier sistema de MCD que use una granularidad mayor al tamaño de las variables
compartidas, como es el caso de los sistemas con granularidad a nivel de página. El problema se provoca porque una
página puede contener variables compartidas no relacionadas entre sí, y que provocarán interrupciones y transferencias
innecesarias. La Figura 4.3 muestra una página que contiene dos variables no relacionadas, llamadas A y B. Un proceso
del cpu1 referencía constantemente la
variable A, tanto para lectura como para
escritura y otro proceso en el cpu2 hace lo
propio a la variable B. En este escenario, la
página que contiene ambas variables será
transferida repetidamente entre los dos
computadores. El problema del false sharing
puede eliminarse al utilizar una granularidad
más fina, por ej. las variables, de ser así, el
problema ahora consiste en cómo mantener
registro de las variables replicadas.Además,
Figura 4.3 es probable que sea más conveniente
utilizar una política de actualización y no de invalidación, ya que debe ser posible identificar escrituras a variables
individuales. Un sistema de MCD que utiliza una granularidad de variable compartida es Munin, que permite la ubicación de
variables individuales en páginas diferentes, para usar el hw de paginación para identificar accesos a variables compartidas.
Cuestionario acerca de MCD basada en páginas
1. Describe el diseño lógico:
_____________________________________________________________________________________________________________
_____________________________________________________________________________________________________________
______________________________________________________________________________________________
2. Para que se utilizan las replicas de los bloques
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
3. Qué es la granularidad
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
4 Cómo se busca al propietario de una página
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
5 Cuáles son las posibilidades para localizar todas las copias que son invalidad
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
6 En el caso del reemplazo de página como se resuelve y como se va a localizar
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
Lectura de MCD basada en variables compartidas
Sólo se comparten variables marcadas como tal en programa. Se tiene la visión de memoria como variables (válido para
heterogeneidad). Se utiliza el compilador + entorno de ejecución para que se encarguen de gestionar accesos a estas
variables (no LOAD/STORE). Algunos sistemas permiten a la aplicación calificar las variables en: write-once, read-mostly,
etc. Un ejemplo es: Midway. Munin es un sistema MCD que se basa fundamentealmente en variables de software que
pueden ser colocadas cada una en un página aparte. Se distinguen tres clases de variables: ordinarias, de datos
compartidos y de sincronización. La consistencia de liberación en Munin para tres procesos cooperativos, cada uno de los
cuales se ejecuta en una máquina distinta. En cierto
momento el proceso 1 desea entrar a su sección crítica de
código protegido por la cerradura L (todas las regiones
críticas deben estar protegidas por una variable de
sincronización). La declaración Lock() garantiza que ningún
bien comportado está ejecutando por el momento esa región
crítica. Entonces se tienen acceso a las tres variables
compartidas a, b y c. Mediante instrucciones normales de la
Consistencia de liberación de Munin máquina. Por último se llama a un unlock() y los resultados
se propagan a otras máquina que tienen copias de a, b y c. Estas modificaciones se empaquetan en un número mínimo de
mensajes. Los accesos a estas variables en otras máquinas mientras el proceso 1 sigue dentro de su región crítica,
producen resultados indefinidos.

Acerca de la MCD en base a variables compartidas


1. Cuáles son 3 clase de variables en MCD.Munin.
a) ______________________________________________________________________________________________________
b) ______________________________________________________________________________________________________
c) ______________________________________________________________________________________________________
2. En que consiste la consistencia de liberación en Munim
_____________________________________________________________________________________________________________
_____________________________________________________________________________________________________________
______________________________________________________________________________________________
3. da un ejemplo de referencia a variables compartidas en MCD para los protocolos:
a) Exclusiva para lectura
_____________________________________________________________________________________________________________
_____________________________________________________________________________________________________________
______________________________________________________________________________________________
b) Migratoria
_____________________________________________________________________________________________________________
_____________________________________________________________________________________________________________
______________________________________________________________________________________________
c) De escritura compartida
_____________________________________________________________________________________________________________
_____________________________________________________________________________________________________________
______________________________________________________________________________________________
d) Convencional
_____________________________________________________________________________________________________________
_____________________________________________________________________________________________________________
______________________________________________________________________________________________
Lectura de MCD basada en objetos
Puesto que en muchos lenguajes de programación los datos se encuentran organizados como objetos y no como variables
simples, los sistemas de MCD basados en objetos intentan transportar datos por la red utilizando como unidad de
manipulación el objeto y no las páginas o las variables. Los procesos que se ejecutan en los distintos computadores que
componen el sistema tienen acceso a un espacio de objetos compartidos, en lugar de a un espacio lineal de direcciones. El
sistema es responsable de la ubicación y administración de estos objetos compartidos. Un proceso puede invocar métodos
de un objeto compartido, independientemente de la ubicación del proceso y del objeto. Los objetos están protegidos por el
ocultamiento de información, por lo que los procesos no pueden acceder directamente al estado interno de ningún objeto
compartido. Esto facilita algunas optimizaciones dentro del sistema. Por ejemplo, puede relajarse el modelo de consistencia
sin que el programador tenga conocimiento alguno. Al igual que en el caso de la granularidad a nivel de variables
compartidas, cuando se utiliza el objeto como unidad para compartir es posible eliminar el false sharing.
Además, también en este caso es factible utilizar un protocolo de actualización en vez de uno de invalidación. Sin embargo,
quizá la mayor ventaja de este modelo es su modularidad y flexibilidad, a la vez que permite una integración limpia con la
sincronización. La principal desventaja es el aumento en el overhead que se produce por la manipulación aún más indirecta
de la memoria. En realidad, este es un problema inherente al uso de objetos. Un ejemplo de un sistema de MCD basado en
objetos es Linda, un sistema basado en una memoria compartida altamente estructurada y que es accedida a través
de un pequeño conjunto de primitivas que se agregan a lenguajes tradicionales como C y Fortran. El espacio de objetos se
llama tuple space, o espacio de tuplas. Los procesos pueden insertar y remover tuplas al espacio, desde cualquier
computador. Resumiendo, se comparten objetos, se tiene visión de memoria como objetos (válido para heterogeneidad) y el
acceso a datos compartidos mediante métodos SET/GET lo que facilita control de accesos.
Linda: MCD con espacio de tuplas. Es idea original de Carriero y Gelernter (1985). es una solución independiente del
lenguaje, por ejemplo JavaSpaces está basado en esta idea. Una Tupla es una secuencia de campos con tipo. Por ejemplo:
(“hola”, 7, 3.14, “adios”), tienen la propiedad de que existen de forma independiente a sus creadores y se acceden
asociativamente. El Modelo engloba comunicación y creación de procesos: por ejemplo, la tupla de datos: de carácter pasivo
(base de la MCD), la tupla de proceso: de carácter activo (creación de procesos), que incluye función en alguno de los
campos; al insertarla en espacio de tuplas se genera proceso que ejecuta función; al terminar se convierte en tupla de datos
donde resultado de función sustituye a función
Linda: Operaciones sobre tuplas. La operación out(tupla): Añade tupla al espacio de tuplas; no bloqueante, la operación
in(patrón): Busca tupla que encaje en patrón y la extrae, las operaciones si varias → cualquiera; si ninguna → se bloquea se
usan por ejemplo así: in(“hola”, ?i, ?f, “adios”) → (“hola”, 7, 3.14, “adios”), La operación rd(patrón): Igual que in pero la tupla
no se extrae, la operación eval(tupla): Añade tupla de proceso al espacio de tuplas y al insertar se activa proceso que la
convertirá en tupla de datos al terminar la ejecución de la función
Cuestionario acerca de la MCD basada en Objetos
1. Que beneficio rendría para la programación de aplicaciones en utilizar sistemas de MCD basadas en
objetos.
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
2. Qués es un objeto
_____________________________________________________________________________________________________________
_____________________________________________________________________________________________________________
______________________________________________________________________________________________
3. De que consta:
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
4. Cómo se comunican los procesos de varias máquinas utilizando MCD basada en onjetos
_____________________________________________________________________________________________________________
_____________________________________________________________________________________________________________
______________________________________________________________________________________________
5 Que inconveniente tienen la replicación de un objeto
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
6. Cuáles son las ventajas de la MCD basada en objetos
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
7. Cuáles son las desvetajas de la MCD basada en objetos
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
LINDA
1.De que tipo de MCD es linda: _________________________________________________________________________
2. Cómo se realizan los accesos a memoria
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
3. Cuáles son las ventajas para un lenguaje que soporta LINDA
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
4. Qué es un espacio de n-adas o tuplas
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
5. Qué es una n-ada o tupla
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
6. Da 5 ejemplos de n-adas o tuplas
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
7. Cuáles son las operaciones obre n-adas
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
8. Cómo se implementa las n-adas de linda en:
a) sistemas multicomputadora
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
b) una red LAN
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________
c) sistemas sin capacidad de transmisión
_____________________________________________________________________________________________________________
___________________________________________________________________________________________________

You might also like