0 valutazioniIl 0% ha trovato utile questo documento (0 voti)
239 visualizzazioni9 pagine
Este documento describe los sistemas multiprocesadores simétricos (SMP). Un SMP tiene dos o más procesadores similares que comparten memoria y E/S. El sistema operativo planifica la distribución de procesos entre los procesadores para mejorar el rendimiento. Los SMP ofrecen mayor rendimiento, disponibilidad y capacidad de crecimiento incremental en comparación con los sistemas monoprocesador.
Este documento describe los sistemas multiprocesadores simétricos (SMP). Un SMP tiene dos o más procesadores similares que comparten memoria y E/S. El sistema operativo planifica la distribución de procesos entre los procesadores para mejorar el rendimiento. Los SMP ofrecen mayor rendimiento, disponibilidad y capacidad de crecimiento incremental en comparación con los sistemas monoprocesador.
Este documento describe los sistemas multiprocesadores simétricos (SMP). Un SMP tiene dos o más procesadores similares que comparten memoria y E/S. El sistema operativo planifica la distribución de procesos entre los procesadores para mejorar el rendimiento. Los SMP ofrecen mayor rendimiento, disponibilidad y capacidad de crecimiento incremental en comparación con los sistemas monoprocesador.
Hasta hace poco, prcticamente todos los computadores personales y
estaciones de trabajo utilizaban un nico microprocesador de uso general. A medida que aumenta la demanda de mayores prestaciones y dado que el coste de los microprocesadores contina reducindose, los fabricantes han introducido los sistemas SMP. El trmino SMP se refiere a la arquitectura hardware del computador y tambin al comportamiento del sistema operativo que utiliza dicha arquitectura. Un SMP puede definirse como un computador con las siguientes caractersticas: 1. Hay dos o ms procesadores similares de capacidades comparables. 2. Estos procesadores comparten la memoria principal y las E/S y estn interconectados mediante un bus u otro tipo de sistema de interconexin, de forma que el tiempo de acceso memoria es aproximadamente el mismo para todos los procesadores. 3. Todos los procesadores comparten los dispositivos de E/S, bien a travs de los mismos canales mediante canales distintos que proporcionan caminos de acceso al mismo dispositivo. 4. Todos los procesadores pueden desempear las mismas funciones (de ah el trmino simtrico). 5. El sistema est controlado por un sistema operativo integrado que proporciona la interaccin entre los procesadores y sus programas a los niveles de trabajo, tarea, fichero y datos.
El sistema operativo de un SMP planifica la distribucin de procesos o hilos
entre todos los procesadores. Un SMP tiene las siguientes ventajas potenciales con respecto a una arquitectura Monoprocesador: Prestaciones: si el trabajo a realizar por un computador puede organizarse de forma que Partes del mismo se puedan realizar en paralelo, entonces un sistema con varios procesadores Proporcionar mejores prestaciones que uno con un solo procesador del mismo tipo.
Disponibilidad: en un multiprocesador simtrico, debido a que todos los
procesadores pueden realizar las mismas funciones, un fallo en un procesador no har que el computador se detenga. Crecimiento incremental: se pueden aumentar las prestaciones del sistema aadiendo ms procesadores. Escalado: los fabricantes pueden ofrecer una gama de productos con precios y prestaciones Diferentes en funcin del nmero de procesadores que configuran el sistema. Es importante resaltar que los anteriores son beneficios potenciales ms que beneficios garantizados. El sistema operativo debe disponer de herramientas y funciones que permitan explotar el paralelismo presente en un SMP. Una caracterstica atractiva de un SMP es que la existencia de varios procesadores es transparente al usuario. El sistema operativo se encarga de la sincronizacin entre los procesadores y de la planificacin de los hilos o de los procesos, asignndolos a los distintos procesadores. ORGANIZACIN En la siguiente imagen describe en trminos generales la organizacin de un sistema multiprocesador. Hay dos o ms procesadores. Cada procesador es autnomo, incluyendo una unidad de control, una ALU, Registros y, posiblemente, cach. Cada procesador tiene acceso a una memoria principal compartida y A los dispositivos de E/S a travs de alguna forma de mecanismo de interconexin. Los procesadores pueden comunicarse entre s a travs de la memoria (mensajes e informacin de control almacenada en reas comunes para datos). Tambin es posible que los procesadores intercambien seales directamente. La memoria a menudo se organiza de forma que sean posibles los accesos simultneos a bloques de memoria separados. En algunas configuraciones, cada procesador puede tener tambin su propia memoria principal privada y sus canales de E/S, adems de los recursos compartidos.
BUS DE TIEMPO COMPARTIDO
La organizacin ms comn en los computadores personales, estaciones de trabajo y servidores es el bus de tiempo compartido. El bus de tiempo compartido es el mecanismo ms simple para construir un sistema multiprocesador (Figura 18.5). La estructura y las interfaces son bsicamente las mismas que las de un sistema de un nico procesador que utilice un bus para la interconexin. El bus consta de lneas de control, direccin y datos. Para facilitar las transferencias de DMA con los procesadores de E/S, se proporcionan los elementos para el: Direccionamiento: debe ser posible distinguir los mdulos del bus para determinar la fuente Y el destino de los datos. Arbitraje: cualquier mdulo de E/S puede funcionar temporalmente como un maestro. Se proporciona un mecanismo para arbitrar entre las peticiones que compiten por el control del bus, utilizando algn tipo de esquema de prioridad.
Tiempo Compartido: cuando un mdulo est controlando el bus, los otros
mdulos no tienen acceso al mismo y deben, si es necesario, suspender su operacin hasta que dispongan del bus. Estas caractersticas monoprocesador son utilizables directamente en una configuracin de SMP.En este caso, hay varias CPU adems de varios procesadores de E/S que intentan tener acceso a uno o ms mdulos de memoria a travs del bus. La organizacin del bus presenta varias caractersticas atractivas: Simplicidad: es la aproximacin ms simple para organizar el multiprocesador. La interfaz fsica y la lgica de cada procesador para el direccionamiento, el arbitraje y para compartir el tiempo del bus es el mismo que el de un sistema con un solo procesador. Flexibilidad: es generalmente sencillo expandir el sistema conectando ms procesadores al bus. Fiabilidad: el bus es esencialmente un medio pasivo, y el fallo de cualquiera de los dispositivos conectados no provocara el fallo de todo el sistema.
La principal desventaja de la organizacin de bus son las prestaciones. Todas
las referencias a Memoria pasan por el bus. En consecuencia, la velocidad del sistema est limitada por el tiempo de ciclo. Para mejorar las prestaciones, es deseable equipar a cada procesador de una memoria cach. Esta reducira dramticamente el nmero de accesos. Tpicamente, los PC y las estaciones de trabajo de tipo SMP tienen dos niveles de cach, una cach L1 interna (en el mismo chip que el procesador) y una cach L2 extema o interna. Algunos procesadores actuales tambin utilizan una memoria cach L3. El uso de cachs introduce algunas consideraciones de diseo nuevas. Puesto que cada cach local contiene una imagen de una parte de la memoria, si se altera una palabra en una cach,es concebible que eso podra invalidar una palabra en otra cach. Para evitarlo, se debe avisar a los otros procesadores de que se ha producido una actualizacin de memoria. Este problema se conoce como problema de coherencia de cach, que es resuelto tpicamente por el hardware ms que por el sistema operativo. La Seccin 18.3 trata este punto.
CONSIDERACIONES DE DISEO DE UN SISTEM A OPERATIVO
DE MULTIPROCESADOR Un sistema operativo de SMP gestiona los procesadores y dems recursos del computador para que el usuario perciba un solo sistema operativo controlando los recursos del sistema. De hecho, el computador debera parecer un sistema monoprocesador con multiprogramacin. Tanto en un SMP como en un sistema monoprocesador, pueden estar activos varios trabajos o procesos al mismo tiempo, y es responsabilidad del sistema operativo planificar su ejecucin y asignar los recursos. Un usuario puede desarrollar aplicaciones que utilizan varios procesos o varios hilos dentro de un proceso sin tener en cuenta si se dispone de uno o de varios procesadores. As, un sistema operativo de multiprocesador debe proporcionar toda la funcionalidad de un sistema operativo con multiprogramacin ms, las caractersticas adicionales que permitan utilizar varios procesadores. Entre los puntos clave de diseo estn: Procesos concurrentes simultneos: las rutinas del sistema operativo deben ser reentrantes para permitir que varios procesadores puedan ejecutar simultneamente el mismo cdigo IS paralelo Con varios procesadores ejecutando la misma o distintas partes del sistema operativo, las tablas y las estructuras de gestin del sistema operativo deben manejarse apropiadamente para evitar bloqueos u operaciones no vlidas. Planificacin: la planificacin puede realizarla cualquier procesador, por lo que deben evitrselos conflictos. El planificador debe asignar los procesos preparados a los procesadores disponibles. Sincronizacin: puesto que hay varios procesos que pueden acceder a espacios de memoria ya recursos de E/S compartidos, debe proporcionarse una sincronizacin efectiva. La sincronizacin asegura la exclusin mutua y la ordenacin de eventos.
Gestin de memoria: la gestin de memoria en un multiprocesador debe
comprender todos los aspectos propios de los computadores monoprocesadores, discutidos en el Captulo 8. Adems, el sistema operativo debe explotar el paralelismo que proporciona el hardware, por ejemplo las memorias multipuerto, para obtener mejores prestaciones. Los mecanismos de paginacin en procesadores distintos deben coordinarse para mantener la consistencia cuando varios procesadores comparten una pgina o un segmento y para decidir sobre el reemplazo de pginas. Fiabilidad y tolerancia a fallos: el sistema operativo debera hacer posible una degradacin gradual cuando se produce un fallo en un procesador. El planificador y otros elementos del sistema operativo deben reconocer la prdida de un procesador y reestructurar las tablas de gestin en consecuencia. UN SMP COMO GRAN COM PUTADOR La mayora de los PC y estaciones de trabajo de tipo SMP utilizan una estrategia de interconexin basada en un bus tal y como muestra la Figura 18.6. Resulta ilustrativo analizar una aproximacin alternativa, que se utiliza en las implementaciones ms recientes de la familia de grandes computadores (mainframes) IBM series [SIEG04, MAK04] denominada z990. Esta familia de sistemas incluye desde computadores monoprocesador con un mdulo de memoria principal hasta sistemas con 48 procesadores y ocho mdulos de memoria. Los componentes clave de la configuracin son los siguientes: Chip con dos ncleos de procesamiento (dual-core): cada microprocesador incluye dos procesadores idnticos denominados procesadores centrales (Central Processors, CP). Un CP es un microprocesador CISC en el que la mayora de las instrucciones se encuentran cableadas mientras que las restante se ejecutan mediante un microcdigo vertical. Cada CP incluye cachs L1 separados para datos e instrucciones de 256 Kbytes cada una. Cach L2: cada cach L2 contiene 32 Mbytes. Las cachs L2 se organizan en grupos de cinco, de forma que cada grupo recibe accesos de ocho microprocesadores duales y proporciona acceso a todo el espacio de memoria principal. Elemento de Control de Sistema (System Control Element, SCE): se encarga del arbitraje de la comunicacin en el sistema y tiene un papel central e el mantenimiento de la coherencia de cach. Control de almacenamiento principal (Main Store Control, MSC): interconecta las cachs L2 y la memoria principal. 6 7 8 Organizacin y arquitectura de computadores CP = Procesador central SCE = Elemento de control de sistema MBA = Adaptador de bus de memoria SMI = Interfaz de memoria sncrona MSC = Control de almacenamiento principal Figura 18.6. Estructura del m u ltip roce sad or IB M z990. Mdulos de memoria: cada mdulo dispone de 32 GB de memoria. La memoria mxima que se puede configurar consta de ocho mdulos de memoria, con lo que se tiene una capacidad mxima de 256 GB. Los mdulos de memoria se conectan al MSC a travs de interfaces de memoria sncronos (Synchronous Memory Interfaces, SMI). Adaptador de bus de memoria (Memory Bus Adapter\ MBA): el MBA proporciona una interfaz a diversos canales de E/S. El trfico a, o desde, esos canales atraviesa directamente la cach L2. El procesador utilizado en el z990 es relativamente peculiar si se compara con otros procesadores actuales debido a que, aunque es superescalar, ejecuta las instrucciones en el orden estricto que marca la arquitectura. Sin embargo, para compensar esto utiliza un cauce ms corto y cachs y TLB mucho Procesamiento paralelo 6 7 9 mayores que otros procesadores, junto con otras caractersticas que contribuyen a mejorar las prestaciones. El sistema z990 incluye entre uno y cuatro libros. Cada libro es una unidad que consta de hasta doce procesadores y hasta 64 GB de memoria, adaptadores de E/S y un elemento de control de sistema (SCE) que los conecta. El SCE que incluye cada libro tiene una cach L2 de 32 MB que acta como punto de coherencia central para ese libro particular. Los procesadores y los adaptadores de E/S de cada libro tienen acceso tanto a la cach L2 como a la memoria principal de ese libro o de cualquiera de los otros tres que componen el sistema. El SCE y los chips de cach L2 tambin se conectan con los elementos correspondientes de los otros libros a travs de conexiones configuradas en anillo. Hay una serie de caractersticas interesantes en el SMP z990 que pasamos a discutir: Interconexin conmutada. Cachs L2 compartidas. Interconexin conmutada. En los PC y las estaciones de trabajo de tipo SMP es comn utilizar una organizacin basada en un nico bus compartido (Figura 18.5). Con esta organizacin, el bus pasa a ser un cuello de botella que afecta a la escalabilidad (escalado de las prestaciones cuando se ampla el sistema) del diseo. El z990 se enfrenta a este problema de dos formas. En primer lugar, la memoria principal se distribuye en cuatro mdulos, cada una con su propio controlador de almacenamiento que puede gestionar los accesos a memoria a velocidades elevadas. El trfico de cargas desde memoria se reduce, gracias a los caminos independientes que hay a las reas distintas en las que se ha dividido la memoria. Cada bloque incluye dos mdulos de memoria, con un total de ocho mdulos en la configuracin mxima. En segundo lugar, la conexin entre los procesadores (desde la cach L2) y un mdulo de memoria no se lleva a cabo a travs de un bus sino mediante enlaces punto a punto. Cada microprocesador tiene un enlace a cada una de las cachs L2 del libro, y cada cach L2 tiene un enlace, va MSC, a cada uno de los dos mdulos de memoria del mismo libro. Cada cach L2 solo se conecta a los dos mdulos de memoria de su libro. El controlador de sistema proporciona los enlaces (que no se representan en la figura) a los otros libros de la configuracin, de forma que se pueda acceder a toda la memoria principal desde cualquier procesador. Las conexiones a los canales de E/S tambin se realizan a travs de enlaces punto a punto en vez de mediante buses. La cach L2 de cada libro se conecta al MBA de dicho libro. A su vez, el MBS se conecta a los canales de E/S. Cachs L2 compartidas. E un esquema tpico de cach de dos niveles para un SMP, cada procesador tiene una cachs L1 y L2 propias. En los ltimos aos, ha aumentado el inters en el concepto de utilizar una cach L2 compartida. En una de las primeras versiones de sus grandes SMP, conocida como generacin 3 (G3), IBM utilizaba cachs L2 especficas para cada procesador. En las versiones ms recientes (G4, G5, y serie z900) se utilizan cachs L2 compartidas. Dos consideraciones han causado este cambio: 1. En el cambio de la versin G3 a la G4, IBM pas a utilizar microprocesadores con el doble de velocidad. Si se hubiese mantenido la organizacin G3, se hubiese producido un incremento significativo del trfico a travs del bus. Al mismo tiempo, se deseaba utilizar tantos 6 8 0 Organizacin y arquitectura de computadores componentes de las versiones G3 como fuese posible. A no ser que se mejorase significativamente el bus, el MSC podra llegar a ser un cuello de botella. 2. El anlisis de las cargas de trabajo tpicas mostraba un nivel elevado de instrucciones y datos compartidos por los procesadores. Estas consideraciones llevaron al equipo de diseo de la versin G4 a considerar el uso de una o ms cachs L2 compartidas por varios procesadores (cada procesador dispone de una cach Ll interna). A primera vista, compartir la cach L2 podra parecer una mala idea. El acceso a memoria desde los procesadores podra ser ms lento debido a que los procesadores deben pugnar por el acceso a la cach L2. Sin embargo, si de hecho varios procesadores comparten un elevado volumen de datos, una cach compartida puede incrementar el rendimiento en lugar de disminuirlo, ya que los datos compartidos que se encuentran en la cach compartida se obtienen ms rpidamente que si se debiera acceder a ellos a travs del bus. 4