Insttituto Tecnologico Superior De

18
7/23/2019 Insttituto Tecnologico Superior De http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 1/18  INSTTITUTO TECNOLOGICO SUPERIOR DE  CINTALAPA  Materia:  Sistemas operativos II  Catedrático: Ing. Reynol Roque Farrera  Área:  ing. en inform ática  Estudiante:  Eduardo Diaz Espinosa Carrasco Toledo Mayra Hernández López Noemí Ruiz Gálvez Nelvi Cirilo torres Omar Semestre: 5° grupo: E Actividad:  Investigación cuarta unidad Cintalapa de Figueroa Chiapas a 10 12 2015 

Transcript of Insttituto Tecnologico Superior De

Page 1: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 1/18

 

INSTTITUTO TECNOLOGICO SUPERIORDE  

CINTALAPA  Materia: 

Sistemas operativos II  Catedr

ático: 

Ing. Reynol Roque Farrera  

Área:

 

ing. en inform ática  Estudiante:

 

Eduardo Diaz EspinosaCarrasco Toledo Mayra

Hernández López Noemí

Ruiz Gálvez NelviCirilo torres Omar

Semestre: 5° grupo: “E” 

Actividad: 

Investigación cuarta unidad

Cintalapa de Figueroa Chiapas a

10 12 2015

 

Page 2: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 2/18

 

Unidad 4: Memoria Compartida Distribuida

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 procesamiento y amplia escalabilidad, siendo a la vez

fácil de programar.

El objetivo principal de estos sistemas es permitir que un multicomputador puedaejecutar 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 será 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.

Page 3: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 3/18

4.1 Configuraciones de 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 embergadura.

  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 opaso 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,

Page 4: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 4/18

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.

DE CIRCUITOS, BASADOS EN BUS, ANILLO O CON CONMUTADOR

Existen varias formas de implantar físicamente memoria compartida distribuida, a

continuación se describen cada una de ellas.

Page 5: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 5/18

  Memoria basada en circuitos: Existe una única área de memoria y cada micro

tiene su propio bus de datos y direcciones (en caso de no tenerlo se vuelve

un esquema 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 caché grande y sumamente rápida.

  Multiprocesadores tipo bus.

  Conexión entre CPU y memoria se hace a través de cables paralelos:

   Algunos transmiten las direcciones y datos que el CPU quiere leer o

escribirOtros envían o reciben datos

  El resto para controlar las transferencias.

  Dicha colección de cables se conoce con el nombre de bus.

  Buses pueden ser parte del chip, pero en la mayoría de los sistemas los buses

son externos y son usados para conectar circuitos impresos.

  Una forma simple de construir multiprocesadores es conectarlos en un bus

con más de un CPU.

  MCD basada en anillos: Es más tolerante a fallos, no hay coordinador central

y se privilegia el uso de la memoria más cercana.

  Multiprocesadores basados en anillo.

Page 6: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 6/18

 

Ejemplo Memnet: un espacio de direcciones se divide en una parte privada y otra

compartida.

La parte privada: sé divide en regiones cada máquina cuenta con memoria para su

pila, datos y códigos no compartidos.

Parte compartida: común a todas las máquinas y se guarda de forma consistente

mediante un protocolo de hardware parecido a los de bus se divide en bloques de

32 bytes, (unidad transferencia)

MCD basada en conmutador: Varios micros se conectan entre sí en forma de bus

formando un grupo, los grupos están interconectados entre sí a través de un

conmutador. Cuando se realiza una operación de memoria se intenta realizar dentro

del grupo, de lo contrario pasa al conmutador para que lo redirecciones a otro grupo.

Page 7: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 7/18

Multiprocesadores con conmutador.

En anillo o bus, el hecho de añadir un CPU satura el ancho de banda del bus o anillo

Dos métodos para solucionar el problema:

1.  Reducir la cantidad de comunicación.

2. Incrementar la capacidad de comunicación.

Una forma de reducir la cantidad de comunicación es el ocultamiento trabajoadicional en esta área:

Page 8: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 8/18

  Mejorar protocolo de ocultamiento

  Optimizar el tamaño del bloque

  Incrementar la localidad de las referencias a memoria.

Sin embargo siempre se querrá añadir más CPUs y no habrá más ancho de banda

en el bus.

4.2 Modelos de consistencia.

Un modelo de consistencia de memoria especifica las garantías de consistencia que

un 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.

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 cada escritura es necesario actualizar todas las copias el envió de las paginas por

red provoca que el tiempo de espera aumente demasiado convirtiendo el método en

impracticable.

Page 9: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 9/18

 

CARACTERISTICAS DE CONSISTENCIA

• Mantener consistencia no es algo simple.

• Un simple acceso a memoria puede requerir un gran número de paquetes a ser enviados.

ESTRICTA, CASUAL, SECUENCIAL, DEBIL, DE LIBERACION 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.

CONSISTENCIA CASUAL: Es un debilitamiento de la consistencia secuencial. Se hace una

diferenciación entre eventos que están potencialmente relacionados en forma casual y

aquellos que no.

La condición a cumplir para que unos datos sean casualmente consistentes es:

Escrituras que están potencialmente relacionados en forma casual deben ser vistas por

todos los procesos en el mismo orden.

Page 10: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 10/18

 

Esta secuencia es permitida con un almacenamiento casualmente consistente o con un

almacenamiento consistente en forma estricta.

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 operacionesde cada proceso individual aparecen en esta operaciones de cada proceso individual

aparecen en esta secuencia en el orden especificado por su programa

b)  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.

Page 11: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 11/18

 

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, RC, 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 critica, la actualización de

cualquier modificación puede postergarse hasta el momento en que se lleva a cabo la

operación reléase.

Propagación de Actualizaciones bajo RC y LRC de código sin proteger. En consecuencia

obtuvo un valor inconsistente para la variable leída.

Page 12: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 12/18

 

4.3 MCD en base de páginas.

  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:

1.  Se notifica al sistema operativo

2.  Sistema solicita dicha página con un mensaje.

Page 13: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 13/18

 

Tanto ubicación como acceso son realizados a nivel software.

Ejemplos: IVY y Mirage

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.

Page 14: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 14/18

 

DISEÑO REPLICA GRANULARIDAD CONSISTENCIA

Hay dos razones principales para la replicación de datos:

  Confiabilidad

  Continuidad de trabajo ante caída de la réplica, mayor cantidad de copias mejor

protección contra la corrupción de datos.

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.

Se refiere a la especificidad a la que se define un nivel de detalle en una tabla, es decir, si

hablamos de una jerarquía la granularidad empieza por la parte más alta de la jerarquía,

siendo la granularidad mínima, el nivel más bajo.

MODELOS DE CONSISTENCIA.

Es esencialmente un contrato entre procesos y el almacenamiento de datos.

Es decir: si los procesos acuerdan obedecer ciertas reglas, el almacenamiento promete

trabajar correctamente.

Page 15: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 15/18

 

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.

Los modelos de consistencia se presentan divididos en dos conjuntos:

  Modelos de consistencia centrados en los datos.

  Modelos de consistencia centrados en el cliente.

4.4 MCD EN BASE A OBJETOS

Nace como respuesta a la creciente popularización de los lenguajes orientados por objetos.

Los datos se organizan y son transportados en unidades de objetos, no unidades de páginas.

Es un modelo de programación de DSM de alto nivel.

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.

Un ejemplo de un sistema de MCD que utiliza una granularidad a nivel de variable

compartida es Munin, una de las primeras implementaciones de MCD. Munin permite la

ubicación de variables individuales en páginas diferentes, de modo que se pueda utilizar el

hardware de paginación para identificar los accesos a las variables compartidas.

Page 16: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 16/18

4.5 MCD EN BASE A OBJETOS

Nace como respuesta a la creciente popularización de los lenguajes orientados por objetos.

Los datos se organizan y son transportados en unidades de objetos, no unidades de

páginas.

Es un modelo de programación de DSM de alto nivel.

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.

Un ejemplo de un sistema de MCD que utiliza una granularidad a nivel de variable

compartida es Munin, una de las primeras implementaciones de MCD. Munin permite la

ubicación de variables individuales en páginas diferentes, de modo que se pueda utilizar el

hardware de paginación para identificar los accesos a las variables compartidas.

4.6. Administradores de memorias en clusters.

La operación de clusters requiere de un manejo adecuado de los recursos asociados. Los

recursos del cluster deben ser administrados adecuadamente para que el administrador

invierta la menor cantidad de tiempo en detectar, investigar y recuperar fallos de hardware

y software, y de este modo definir posibles medidas de contingencia y tratar que el sistema

esté libre de errores. A su vez, estos pasos permiten la adaptabilidad a los requerimientos

y cambios constantes que se presentan en la manipulación de tecnologías cluster, en cuanto

se refiere al

hardware, software y al uso de ciertos patrones de diseño.

Page 17: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 17/18

El administrador de un cluster debe tomar en cuenta algunos aspectos, una vez que se ha

completado la instalación de los recursos básicos de hardware y software. Estos aspectos

incluyen la configuración e instalación de un sistema de archivos universal, la configuración

y administración de recursos mediante herramientas implementadas en software; el

monitoreo de sus actividades y el registro de cada uno de los eventos generados por la

ejecución de cálculos computacionales.

 Varios de los sistemas más importantes para la instalación automática de clusters, incluyen

herramientas de monitoreo, administración y registro de eventos mediante paquetes de

distribución para sistemas Windows y Linux. Entre estos sistemas están OSCAR y Rocks

NPACI; ambos sistemas permiten el uso de herramientas de software que tienen propósitos

específicos tales como:

Definición y administración de nodos.

 Administración de colas por lotes (Batch Queue Management).

 Administración de recursos: grupos NIS (Network Information Service), cuotas de

disco y CPU.

 Administración de servicios de resolución de nombres: DNS (Domain Name System para

clusters).

Registro de usuarios para clusters de dimensiones superiores a los 100 nodos.

Monitoreo de carga.

La administración de clusters, implica tomar medidas preventivas y planificar tareas. La

administración implica los siguientes aspectos:

Registro de eventos.

Monitoreo o medida del estado de los recursos del cluster.

Recuperación ante fallos de hardware, software, incluyendo el sistema de archivos.

 Administración del registro de usuarios y grupos de usuarios, de los servicios del cluster

(accounting).

Planificación de tareas y balanceo de carga.

Page 18: Insttituto Tecnologico Superior De

7/23/2019 Insttituto Tecnologico Superior De

http://slidepdf.com/reader/full/insttituto-tecnologico-superior-de 18/18

Registro de Eventos

El manejo de logs, o el registro de eventos generados tanto por el kernel del sistema

operativo, como por los diferentes servicios que han sido habilitados para el establecimiento

de comunicación entre los nodos, se lo puede realizar mediante comandos del sistema

operativo Linux para poder visualizar los archivos de logs, o utilizar herramientas de

monitoreo tales como:

LogCheck

Swatch

LogSentry

LogDog

Monitoreo y Estado del Cluster

El monitoreo permite conocer si todos los componentes de hardware y software están

disponibles y operando de acuerdo a lo esperado. Es decir, debe asegurarse que todos los

componentes de hardware estén disponibles durante el arranque del sistema operativo

(CPUs, memoria, discos, dispositivos de red y otros), y de igual forma, que todos los servicios

de software, tales como: planificadores de tareas, administradores de recursos, y demonios

de monitoreo se ejecuten correctamente en el cluster. Entre las herramientas de monitoresose pueden mencionar:

Big Brother

Cluemon

Ganglia

Nagios

PARMON

Supermon