Memoria Compartida Distribuida

Slides:



Advertisements
Presentaciones similares
Administración de memoria
Advertisements

Tabla de Contenido Concurrencia.
Definición En un sistema de base de datos distribuida, los datos se almacenan en varios computadores. Los computadores de un sistema distribuido se comunican.
UNIX COMP 240.
Sistema operativo Componentes de un sistema operativo
Multiprocesadores 3.1 Dominios de aplicación
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Introducción a la Programación
Sistemas Distribuidos y Paralelos
Introducción a los Sistemas Operativos Memoria Virtual
Sistemas Operativos Distribuidos
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Memoria Compartida Distribuida
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Teoría de lenguajes y compiladores
SISTEMAS OPERATIVOS UNIDAD 1..
Introducción a los Sistemas de Bases de Datos Distribuidos
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Direcciones físicas y direcciones virtuales (lógicas)
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
PAGINACIÓN Y SEGMENTACIÓN
UNIDAD 3 Conceptos de Sistemas Operativos.
Unidad III Administración de procesos
Sistemas Concurrentes: Paso de mensajes
Administración de Memoria Memoria Virtual
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Sistema de archivos Sistemas operativos.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Teoría de Sistemas Operativos
Arquitectura NFS El servidor NFS exporta uno o más directorios
Características de un sistema operativo
5. Sistemas de archivos avanzados1 Tema 5: Sistemas de Archivos Avanzados Resumen: –Sistema de archivos distribuido –File Replication Service.
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Introducción a los Sistemas Operativos
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Capítulo 7 Gestión de memoria.
Monitores Mecanismo sincronización de nivel más alto que semáforos Construcción a nivel de lenguaje de programación que controla el acceso a datos compartidos.
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Transacciones en sistemas de base de datos
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
Administrador de procesos
Gestión de Memoria.
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
Sistemas Distribuidos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Tema 5: Multiprocesadores
Sistemas Operativos en Ambientes Distribuidos
Estructura de los Sistemas Operativos
Permite a los procesos Acceso transparente Archivos Servidores remotos.
UNIDAD 3 C ONCEPTOS DE S ISTEMAS O PERATIVOS. El ordenador es un sistema programable formado por un conjunto de elementos hardware que necesitan instrucciones.
Modelo OSI Surgimiento del Modelo OSI ¿Que es el Modelo OSI?
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Protocolos de Sondeo SNOOPY
INTERRUPCIONES – ABRAZO MORTAL
Elementos y tipos de sistemas operativos
MIA - Grupo 5 Unidad 2.
Sistemas Distribuidos Conceptos Básicos Propiedades MSI. Nancy A. Olivares Ruiz.
Gestión de Memoria – Parte 2
Estructura del sistema operativo
Consistencia y Replicación
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
Transcripción de la presentación:

Memoria Compartida Distribuida Efraín Pinto Friedrich González Miguel Ojea

Memoria Compartida Distribuida con Base en Páginas Diseño Básico Réplica Granularidad Obtención de la Consistencia Secuencial Búsqueda del Propietario Búsqueda de las Copias Reemplazo de Páginas Sincronización

Introducción Sistemas clásicos (NORMA) Referencia a memoria local y remota. Primeras investigaciones orientadas a reusabilidad del código Tratan de implementar consistencia secuencial

Consistencia Secuencial El resultado de cualquier ejecución es el mismo que si las operaciones de todos los procesadores fueran ejecutadas en algún orden secuencial, y las operaciones de cada procesador individual aparecen en esta secuencia en el orden especificado por su programa Todos los procesadores ven todas las referencias a memoria en el mismos orden Los resultados no son deterministas

Consistencia Secuencial Dos ejecuciones del mismo programa podrían no arrojar el mismo resultado a menos que se utilicen operaciones explicitas de sincronización

Diseño Básico Emulan cache monitor de los multiprocesadores mediante software Espacio de memoria dividido en pedazos repartidos entre las memorias de los CPU’s El direccionamiento remoto implica traer el pedazo de memoria completo

Réplica Incrementa el rendimiento Réplica de pedazos de solo lectura Réplica de pedazos de lectura-escritura Inconsistencia

Granularidad Tamaño del pedazo de memoria que se replica Fallo de página Traer página completa vs. Traer varias páginas Compartición falsa Compiladores inteligentes

Obtención de la Consistencia Secuencial Problema: Réplicas de páginas de lectura-escritura Averiguar palabra a escribir y su valor Problema: Actualizaciones simultaneas Solución: Esquema de invalidación Protocolo de invalidación Se garantiza consistencia

Obtención de Consistencia Lectura - Caso 1 Se efectúa la lectura

Obtención de Consistencia Lectura - Caso 2 Se efectúa la lectura

Obtención de Consistencia Lectura - Caso 3 Se efectúa la lectura

Obtención de Consistencia Lectura - Caso 4 Se efectúa la lectura

Obtención de Consistencia Lectura - Caso 5 Se solicita una copia Se marca la página como R Se efectúa la lectura

Obtención de Consistencia Lectura - Caso 6 Se solicita una copia Se solicita la degradación de la página a estado “R” Se efectúa la lectura

Obtención de Consistencia Escritura - Caso 1 Se efectúa la escritura

Obtención de Consistencia Escritura - Caso 2 Degradar página a estado “W” Se efectúa la escritura

Obtención de Consistencia Escritura - Caso 3 Solicitar invalidación de copias Degradar página a estado “W” Se efectúa la escritura

Obtención de Consistencia Escritura - Caso 4 Solicitar invalidación de las copias Solicitar propiedad Degrada la página a estado “W” Se efectúa la escritura

Obtención de Consistencia Escritura - Caso 5 Solicitar invalidación Solicitar propiedad Solicitar copia Degrada la página a esatdo “W” Se efectúa la escritura

Obtención de Consistencia Escritura - Caso 6 Solicitar invalidación Solicitar propiedad Solicitar copia Degrada la página a estado “W” Se efectúa la escritura

Obtención de la Consistencia Secuencial – Búsqueda del Prop. Buscar directamente al propietario Usar controlador de páginas Multiples controladores de páginas Registro de probables propietarios

Obtención de la Consistencia Secuencial – Búsqueda de Copias Medio de transmisión no-confiable Lista del conjunto de copias Protocolo de invalidación

Reemplazo de Páginas Buscar página para sacar de memoria Página poseida por otro proceso Página duplicada del proceso saliente Página no duplicada Transmitir número de marcos libres Problema de compartición activa

Sincronización Enfoque tradicional puede causar un desastre en el desempeño Controlador de sincronización

Memoria Compartida Distribuida con Variables Compartidas Munin: Consistencia de liberación. Protocolos múltiples. Directorios. Sincronización. Midway: Consistencia de entrada. Implantación.

Introducción MCDVC Se comparten variables. Duplicación. Duplicación parcial o total. Algoritmo de actualización. No hay compartición falsa.

Munin Se basa en objetos del software (usa MMU). Declaraciones con “shared”. Una variable compartida por página (por defecto). Instrucciones normales de lectura y escritura. No hay métodos de protección especiales.

Consistencia De Liberación (Munin) Regiones criticas. Adquisición y liberación. No hay garantía en regiones críticas. Clases de variables: Variables ordinarias. Variables de datos compartidos. Variables de sincronización.

Consistencia De Liberación (Munin) Operación básica con variables ordinarias: No se comparten. Solo son accedidas por el proceso que las creo.

Consistencia De Liberación (Munin) Operación básica con variables de datos compartidos: Son declaradas como tales.

Consistencia De Liberación (Munin) Operación básica con variables de sincronización: Son accedidas mediante procedimientos de acceso proporcionados por el sistema. Cerraduras: lock y unlock. Barreras: increment y wait.

Protocolos Múltiples (Munin) Categorías de variables: Exclusiva para lectura. Migratoria. De escritura compartida. Convencional.

Protocolos Múltiples (Munin) Exclusiva para lectura: Ocurre un fallo de página. Busca la variable en el directorio. Solicita la página al propietario. La página se duplica. No hay modificación. No hay inconsistencia. Protegidas por el MMU. (Provoca error fatal cualquier intento de escritura).

Protocolos Múltiples (Munin) Migratoria: Ocurre un fallo de página. Busca la variable en el directorio. Solicita la página al propietario. Se copia en la maquina que la va a usar. Se elimina la copia original. El propietario pasa a ser el proceso que la va a usar. No hay duplicación.

Protocolos Múltiples (Munin) De escritura compartida: Al principio se utilizan como exclusivas para lectura. Ocurre una escritura. Marca la página como sucia y crea una copia de la página. Termina la modificación y envía las paginas que fueron modificadas. Se restablece la exclusividad para lectura.

Protocolos Múltiples (Munin) De escritura compartida:

Protocolos Múltiples (Munin) Actualización en el que recibe la modificación: Si no ha sido modificada localmente actualiza todo. Si ha sido modificada localmente compara palabra por palabra: la copia local, gemelo y pagina recibida.

Protocolos Múltiples (Munin) Actualización: Palabra Local Palabra Recibida Acción No fue modificada Fue o no fue modificada. Se escribe la recibida Fue modificada Error de tiempo de ejecución

Protocolos Múltiples (Munin) Convencionales: Solo se permite una copia de cada pagina que se pueda escribir. Se desplaza de un proceso a otro.

Directorios (Munin) Contienen: Categoría. Propietario. Si existe copia local.

Directorios (Munin) Algoritmo para encontrar propietario. Después que P1 y P2 solicitan. Después que P3 y P4 solicitan. Después que P1 solicita de nuevo.

Directorios (Munin) Registro del conjunto de copias. No hay consistencia.

Sincronización (Munin) Cerraduras centralizadas: Se obtiene el propietario de la cerradura en el directorio.(Contiene un registro probable) Si el mismo es el propietario y esta libre se otorga el pedido. Si la cerradura no es local y esta libre se otorga el pedido. Si la cerradura no es local y no esta libre se agrega al final de la cola.

Sincronización (Munin) Barreras con servidor central. Se recibe la cantidad de procesos que están esperándola. Cada proceso envía el mensaje al servidor de que ya terminó su tarea. El servidor central envía el mensaje para que todos los procesos sean liberados.

Midway Compartir estructuras de datos individuales. C, C++ o ML convencional con información adicional. Mantiene consistentes las variables compartidas de manera eficiente.

Consistencia De Entrada (Midway) Cerraduras exclusivas y no exclusivas. Limitaciones al programador: La compartición de variables debe ser explícita. Cada variable debe estar asociada con una cerradura o barrera. Solo deben accesarse las variables compartidas dentro de las secciones críticas. La actualización no es inmediata.

Implantación (Midway) La adquisición de cerraduras exclusivas: Utiliza la cadena distribuida de propietarios sucesivos para encontrar el proceso propietario. Si el proceso propietario no la esta usando la adquiere. Si el proceso propietario la esta usando el solicitante espera.

Implantación (Midway) La adquisición de cerraduras no exclusivas: Obtiene la copia de cualquier proceso que tenga la copia de la página. Las barreras son centralizadas.

Implantación (Midway) Actualización: Solo envía las actualizaciones necesarias Mantiene un registro de actualización indicando a que proceso actualizó y en que tiempo. Cada maquina mantiene un reloj lógico. Hay muy buen desempeño en comunicación.

Introducción a DSM basada en 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.

¿Qué son los objetos? Estructura de datos encapsulada definida por el programador. Se componen de datos internos (estado) y operaciones o métodos. Cumplen con la propiedad de ocultamiento de la información, por lo que contribuyen con la modularidad.

Sistemas DSM basados en objetos Los procesos de varias máquinas comparten un espacio abstracto ocupado por objetos compartidos. No existe una memoria lineal en bruto. La localización y administración de los objetos es controlada por el sistema de tiempo de ejecución.

Sistemas DSM basados en objetos (II) Los objetos se pueden duplicar o no. En caso de duplicarse, hay que decidir cómo se harán las actualizaciones. Evitan el compartimiento falso. Sus principales desventajas son que no soportan programas multiprocesadores antiguos y el costo adicional que genera el acceso indirecto a los datos.

El Sistema Linda El acceso a memoria se hace mediante un pequeño conjunto de primitivas que se agregan a los lenguajes existentes. Las ventajas son que no hay que aprender un nuevo lenguaje, es sencillo de implantar y es portable. Se basa en un espacio de n-adas global a todo el sistema.

Las n-adas de Linda Son análogas a las estructuras de C. Las operaciones sobre ellas son restringidas; sólo se soportan cuatro operaciones: out(“matrix-I”, i, j, 3.14) in(“abc”, 2, ?i) read(“abc”, 2, ?i) eval(X,Y,Z), con X,Y,Z expresiones.

Implantación de Linda Para todas las implantaciones, existe un preprocesador de Linda. Toda implantación debe resolver: - Direccionamiento sin búsqueda masiva. - Distribución y localización de n-adas. La clave es la firma de tipo de cada n-ada.

Implantación de Linda (II) En cuanto al hardware: - En un multiprocesador  subespacios implantados como tablas de hash en memoria global. - En una multicomputadora  a) Si hay transmisión confiable: Se pueden duplicar los subespacios. Se pueden hacer out locales.

Implantación de Linda (III) Se puede usar sistema de réplica parcial. b) Si no se soporta broadcast, se determina el subespacio correspondiente a la n-ada y se envía un mensaje.

El Sistema Orca El acceso a memoria se basa en un esquema de objetos protegidos. Consta del lenguaje, el compilador y el sistema de tiempo de ejecución. Se basa en Módula 2. Los objetos son pasivos y no se soporta la herencia.

El Sistema Orca (II) Cada operación consta de una lista (protección, bloque de enunciados). Cuenta con una operación fork, en la que se basa la distribución de objetos. Las operaciones son atómicas y secuencialmente consistentes. Usa sincronización de la exclusión mutua y sincronización de condiciones.

Administración de objetos en Orca Es controlada por el sistema de tiempo de ejecución. Cada objeto tiene dos posibles estados: única copia o duplicado. Para cada operación, se llama a invoke_op, que actúa de acuerdo al caso: - Objeto no duplicado local.

Administración de objetos en Orca (II) - Objeto no duplicado remoto. - Objeto duplicado y operación “lectura”. - Objeto duplicado y operación “escritura”. Se basa en transmisión confiable basada en un secuenciador. Si no hay transmisión confiable, se usa un algoritmo de copia primaria de dos fases. Existe un mecanismo para decidir duplicación.

Comparación IVY imita un multiprocesador, haciendo paginación a través de la red. Usa consistencia secuencial. Su problema es el desempeño. Munin y Midway mejoran el desempeño con información del programador. Midway soporta sólo un tipo de variable compartida y tres protocolos de consistencia (de entrada, de liberación y de procesador).

Comparación (II) Munin soporta cuatro tipos de variables (read-only, migratoria, de escritura compartida y convencional) y sólo soporta consistencia de liberación. En Midway y Munin la sincronización y acceso a los datos son tarea del programador, mientras que en Linda y Orca los maneja el propio sistema.

Comparación (III) Munin y Midway permiten la programación en C y C++ ligeramente modificados, al igual que Linda; Orca usa un lenguaje completamente nuevo. La DSM basada en páginas sólo soporta invalidación de copias, no actualización. Además, permite compartimiento falso; los otros tipos de DSM no.