Tema 5: Multiprocesadores

Slides:



Advertisements
Presentaciones similares
UNIX COMP 240.
Advertisements

Fernando Escribano Pro 1º de Bachillerato
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
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Carlos Rojas Kramer Universidad Cristóbal Colón
Ana Lucia Farfan Estrada. Angela Aybar Rengifo.
Sistemas en estratos. Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarquía.
Sistemas Distribuidos y Paralelos
Introducción a los Sistemas Operativos Memoria Virtual
Sistemas Operativos Distribuidos
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
Arquitecturas Paralelas IF - EHU Arquitecturas Paralelas 7. Coherencia de Datos en computadores DSM - Introducción - Directorios de coherencia: MP/MC -
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Algorítmo de Mapeo Directo
Gestión de Entrada / Salida
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
Universidad de SonoraArquitectura de Computadoras1 PROGRAMA CION PARALELA Y DISTRIBUIDA PRESENTA: JESUS BECERRIL PACHECO MODELOS DE ACCESO A LA MEMORIA.
Tema 10: Gestión de Memoria
Administración de memoria
Algoritmos Distribuidos Semana 1. Parte 2 Comunicación por Pase de Mensajes Claudia León Universidad Central de Venezuela Facultad de Ciencias Escuela.
Presentación Elaborada Por LENID SUAREZ POSADA CAMILO RAMIREZ CARDONA Presentado A Ing. Carlos E. Molina En Su Materia REDES II.
UNIDAD 3 Conceptos de Sistemas Operativos.
1 Capítulo 18: El futuro de IP, IPv6 ICD-327: Redes de Computadores Agustín J. González.
Unidad III Administración de procesos
Procesamiento paralelo
Memoria Compartida Distribuida
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.
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
Arquitectura NFS El servidor NFS exporta uno o más directorios
5. Sistemas de archivos avanzados1 Tema 5: Sistemas de Archivos Avanzados Resumen: –Sistema de archivos distribuido –File Replication Service.
Introducción a los Sistemas Operativos
Capítulo 7 Gestión de memoria.
SISTEMAS OPERATIVOS.
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Arquitecturas Paralelas
Arquitectura de Von Neumann
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Telecomunicaciones y Trabajo Distribuido. Sistema Distribuido Recursos Servidor Red Servidor Nodo ANodo C Nodo B.
Memoria virtual.
Memoria Principal Memoria de acceso aleatorio. La unidad de memoria y jerarquías de almacenamiento Unidades de Almacenamiento. La unidad de memoria es.
ARQUITECTURAS PARALELAS
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
Escuela Normal “Profr. Darío Rodríguez Cruz”
Almacenamiento virtual de sitios web “HOSTS VIRTUALES”
Estructura de los Sistemas Operativos
Gestión de Memoria.
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.
Arquitectura de Redes Curso de Bibliotecario Prof. Guillermo de Majo.
Protocolos de Sondeo SNOOPY
ARQUICTECTURA DE SERVIDORES
Bases de Datos II BASES DE DATOS DISTRIBUIDAS
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
UTFSM - Sistemas Operativos
Unidad de transferencia de memoria
Republica Bolivariana de Venezuela Universidad Alonso de Ojeda Facultad de Ingeniería Escuela de Computación Ing. Prof. Leonel Sequera Entrada y Salidas.
Planificación Curso UNIDAD 1. INTRODUCCIÓN A LOS SERVICIOS EN RED UNIDAD 2. SERVICIOS DHCP UNIDAD 3. SERVICIOS DNS UNIDAD 4. SERVICIOS DE ACCESO REMOTO.
Sistemas Distribuidos Conceptos Básicos Propiedades MSI. Nancy A. Olivares Ruiz.
Gestión de Memoria – Parte 2
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
Apuntes preparados por Néstor González Valenzuela slide 1 Arquitecturas de Sistemas Distribuidos y Paralelos.
Transcripción de la presentación:

Tema 5: Multiprocesadores Objetivos. Referencias. Introducción. Arquitecturas centralizadas de memoria compartida. Arquitecturas distribuidas de memoria compartida. Sincronización. Multicomputadores.

Objetivos: Conocer las distintas maneras de organizar un sistema Procesadores vectoriales Objetivos Objetivos: Conocer las distintas maneras de organizar un sistema con múltiples procesadores, y sus características diferenciadoras. Comprender los problemas que plantea la compartición de datos y sus posibles soluciones

Procesadores vectoriales Referencias Para máquinas de memoria compartida, el Hennessy-Patterson, 2ª edición (muchas figuras y ejemplos están tomadas de él) La información sobre la coherencia por directorios, la sincronización y los multicomputadores está sacada del Kai Hwang, Advanced Computer Architecture

Tipos de multiprocesadores: Multiprocesadores Introducción Tipos de multiprocesadores: Arquitecturas centralizadas de memoria compartida Arquitecturas de memoria distribuida con memoria compartida con memoria privada (multicomputadores) Las máquinas con memoria compartida tienen un único mapa de memoria común a todos los procesadores. Esta memoria puede estar centralizada o repartida (distribuida) entre los procesadores. Las máquinas con memoria privada tienen un mapa de memoria por cada procesador. Esta memoria está distribuida (cada procesador tiene la suya)

Arquitectura centralizada de memoria compartida Multiprocesadores Introducción Arquitectura centralizada de memoria compartida Procesador caché bus Memoria E/S

Arquitectura de memoria distribuida Multiprocesadores Introducción Arquitectura de memoria distribuida Procesador caché nodo mem e/s red de interconexión

Comunicación en multiprocesadores Multiprocesadores Introducción Comunicación en multiprocesadores Si la memoria es compartida: Si es centralizada: todos los accesos se hacen a través del bus, y tardan más o menos lo mismo =>UMA (‘Uniform Memory Access’). Si es distribuida: los accesos se realizan a la memoria local o a memoria remota, según el dato. Los accesos remotos tardan más que los locales. => NUMA (‘Non-Uniform Memory Access’). Si la memoria es privada: Como los mapas de memoria son sólo locales, la comunicación es por medio de paso de mensajes.

Comunicación en multiprocesadores (II) Multiprocesadores Introducción Comunicación en multiprocesadores (II) Ventajas de la memoria compartida: Está más estudiada. Sencillez de programación. Poco recargo de comunicación, mejor aprovechamiento del ancho de banda en datos pequeños. Posibilidad de usar cachés (mejor tiempo medio de acceso y menor flujo de datos en la red). Ventajas de la memoria privada: Sencillez del hardware La comunicación es explícita (no es transparente) =>se ve claro lo que cuesta tiempo y lo que no.

Arquitecturas centralizadas de memoria compartida Multiprocesadores Arquitecturas centralizadas de memoria compartida Arquitecturas centralizadas de memoria compartida Son máquinas que constan de varios procesadores (típicamente un número pequeño). Como son pocos, la comunicación a través de un bus es económica y eficiente. Cada procesador puede tener una memoria caché para reducir la cantidad de datos que viajan por el bus. La comunicación entre procesadores es a través de variables compartidas y zonas de memoria comunes

Coherencia de caché en memoria centralizada Multiprocesadores Arquitecturas centralizadas de memoria compartida Coherencia de caché en memoria centralizada El problema de la coherencia: Los procesadores del sistema guardan en caché los datos con los que trabajan. Los datos se dividen en: privados: sólo los necesita un procesador. compartidos: los necesitan varios procesadores. Los datos compartidos son, por lo tanto, utilizados por varios procesadores. El problema surge cuando un procesador modifica datos que otros tienen en sus cachés.

Coherencia de caché en memoria centralizada (II) Multiprocesadores Arquitecturas centralizadas de memoria compartida Coherencia de caché en memoria centralizada (II) Ejemplo: el dato X (valor inicial 0) es compartido el procesador A carga el dato X (0) en su caché el procesador B carga el dato X (0) en su caché el procesador A modifica el dato X (toma el valor 1) el procesador B lee el dato X (0, valor que había cargado en su caché El problema de utilizar cachés es que los datos pueden no ser coherentes (tener el mismo valor en todas las cachés)

Coherencia de caché en memoria centralizada (III) Multiprocesadores Arquitecturas centralizadas de memoria compartida Coherencia de caché en memoria centralizada (III) En un sistema de memoria centralizada, se suele usar la técnica de ‘snooping’ (fisgonear). Las cachés observan las transmisiones que se realizan en el bus, para saber cuándo alguna de las otras cargue una línea que tienen ellas. En el caso de que una de las cachés que tiene una copia de una línea compartida la modifique, es necesario que el resto se entere (porque sus versiones se han quedado anticuadas).

Coherencia de caché en memoria centralizada (IV) Multiprocesadores Arquitecturas centralizadas de memoria compartida Coherencia de caché en memoria centralizada (IV) Existen dos maneras de notificar las modificaciones en las líneas: Protocolo de invalidación por escritura (‘write invalidate protocol’). Cuando un procesador realiza una escritura en una línea, esta acción invalida las copias de esa línea en las otras cachés. Protocolo de actualización en escritura (‘write update protocol’, o ‘write broadcast protocol’). envía la nueva versión a las otras cachés.

Coherencia de caché en memoria centralizada (V) Multiprocesadores Arquitecturas centralizadas de memoria compartida Coherencia de caché en memoria centralizada (V) Diferencias entre ambas opciones: Modificaciones sucesivas de un dato provocan el correspondiente envío de líneas a través del bus si se usa el protocolo de actualización. Si no hay lecturas entre medias, el protocolo de invalidación no supone tráfico adicional. Modificaciones de varios datos en una misma línea suponen otros tantos envíos con actualización, por una única recarga por invalidación. La invalidación de una línea puede provocar retardos, ya que el fallo de lectura en la caché destino se detecta (por la invalidación) en el momento de realizar el acceso. Con actualización no se produce el fallo.

Coherencia de caché en memoria distribuida Multiprocesadores Arquitecturas distribuidas de memoria compartida Coherencia de caché en memoria distribuida En una máquina de memoria distribuida un nodo no puede observar todas las transferencias entre los restantes nodos (en general, la topología de la red no se lo va a permitir). Por ello, si la memoria está distribuida se suele utilizar el protocolo de directorios. En este protocolo, existe una estructura de datos, el directorio, que contiene información sobre el estado de cada bloque. Esta estructura también puede estar distribuida.

Coherencia de caché en memoria distribuida (II) Multiprocesadores Arquitecturas distribuidas de memoria compartida Coherencia de caché en memoria distribuida (II) El protocolo de directorios necesita que de cada bloque de memoria se tenga la siguiente información: Estado del bloque: si está sin usar, usado por un único procesador, compartido entre varios, etc. Procesadores que tienen el bloque en su caché: para poderles avisar en caso de modificaciones o invalidaciones. Como el tamaño del directorio puede llegar a ser muy grande, se suele encontrar distribuido. Cada módulo de memoria tiene la información de los bloques que están ubicados en él. Según la cantidad de información que se almacene en el directorio, existen tres tipos de protocolos de directorios: completos, limitados y encadenados

Coherencia de caché en memoria distribuida (III) Multiprocesadores Arquitecturas distribuidas de memoria compartida Coherencia de caché en memoria distribuida (III) Protocolos de directorios completos En este protocolo, cada módulo de memoria tiene el directorio de los bloques que contiene. Para cada bloque, la entrada del directorio contiene: un bit por cada procesador en el sistema un bit de ‘sucio’, para escrituras Además, las cachés tienen 2 bits por bloque: uno para indicar si el bloque es válido otro para indicar si se puede escribir en él

Coherencia de caché en memoria distribuida (IV) Multiprocesadores Arquitecturas distribuidas de memoria compartida Coherencia de caché en memoria distribuida (IV) Protocolos de directorios completos (II) Cuando un procesador pide una copia del bloque, se le envía y se activa su bit correspondiente. Cuando un procesador pide una escritura al bloque, se borran los bits de los otros procesadores (y se les avisa) y se activa el bit de sucio. El bit de sucio “da permiso” o no para realizar una escritura. Con el bit de sucio activado, sólo uno de los bits de los procesadores puede estar activado.

Coherencia de caché en memoria distribuida (VI) Multiprocesadores Arquitecturas distribuidas de memoria compartida Coherencia de caché en memoria distribuida (VI) Protocolos de directorios limitados De nuevo, cada módulo tiene el directorio de sus bloques. Pero ahora cada entrada no tiene un bit por cada procesador: sólo pueden tener una copia de cada bloque un número limitado (p) de procesadores. Para ello, cada entrada tiene espacio para p identificadores. Si llega una petición de lectura y todos los espacios están ocupados, se elimina uno (y se avisa al procesador). Es un mecanismo parecido al de una caché asociativa por conjuntos.

Coherencia de caché en memoria distribuida (VII) Multiprocesadores Arquitecturas distribuidas de memoria compartida Coherencia de caché en memoria distribuida (VII) Protocolos de directorios encadenados En este esquema, la lista de los procesadores que tienen una copia de un bloque está distribuida entre las cachés. El módulo de memoria que posee el bloque tiene los datos y el inicio de la lista de punteros a procesadores. Cada procesador que pide una copia del bloque recibe el puntero a la lista (en su estado actual). El módulo de memoria se queda con la dirección del procesador que pide el bloque (que es el nuevo inicio de la lista).

Coherencia de caché en memoria distribuida (VIII) Multiprocesadores Arquitecturas distribuidas de memoria compartida Coherencia de caché en memoria distribuida (VIII) Comparación de los tres protocolos de directorios El protocolo de directorio completo tiene toda la información centralizada, lo que hace eficiente su gestión. Añadir o eliminar procesadores a la lista es activar o desactivar un bit. Pero requiere espacio para todos los procesadores en cada una de las entradas (y la mayoría de los bits va a estar a 0 casi siempre). El protocolo limitado también tiene la información centralizada. Añadir y eliminar procesadores a la lista es sencillo. Puede haber dificultades si el número de espacios para identificadores es pequeño.

Coherencia de caché en memoria distribuida (VIII) Multiprocesadores Arquitecturas distribuidas de memoria compartida Coherencia de caché en memoria distribuida (VIII) Comparación de los tres protocolos de directorios (II) El protocolo de directorios encadenados tiene la información distribuida. El espacio que ocupa la lista es proporcional al número de procesadores que tiene una copia del bloque. Añadir y eliminar procesadores es un proceso largo.

Multiprocesadores Sincronización Es una forma especial de comunicación en la que se intercambia información de control en lugar de datos Se utiliza para conseguir el secuenciamiento correcto de los procesos y los procesadores. También permite el acceso correcto (con exclusión mutua) a los datos compartidos. No es un asunto exclusivo de los multiprocesadores. También se trata en el diseño de los sistemas operativos.

Multiprocesadores Sincronización Sincronización (II) Los mecanismos que se utilizan pueden ser software (dentro del S.O. o en el lenguaje de programación) o hardware. Mecanismos software son los semáforos o los monitores. Mecanismos hardware son las operaciones atómicas de lectura-escritura o de lectura-modificación-escritura (primitivas). Ejemplo: la instrucción test-set/reset: lee una variable y comprueba si su valor es 0; mientras el valor no sea 0, se queda ahí; cuando el valor sea 1, lo vuelve a poner a 0 y continúa la ejecución

Multiprocesadores Multicomputadores Son un tipo especial de sistemas con múltiples procesadores. Las características que les distinguen son: la memoria es privada (es decir, cada procesador tiene un mapa de direcciones propio que no es accesible directamente a los demás) la comunicación entre procesadores es por paso de mensajes a través de una red de interconexión. En un multicomputador, cada nodo es una computadora clásica. Los nodos colaboran para resolver juntos un mismo problema (ejecutar la misma aplicación). La compartición de datos es explícita, ya que el acceso a datos comunes es por paso de mensajes.

Red de interconexión de Multiprocesadores Multicomputadores Multicomputadores (II) Mem Proc Red de interconexión de paso de mensajes Modelo genérico de un multicomputador Figura tomada del Kai Hwang: Advanced Computer Architecture