Simetría del procesadorEditar
En un sistema de multiprocesamiento, todas las CPUs pueden ser iguales, o algunas pueden estar reservadas para fines especiales. Una combinación de consideraciones de diseño de hardware y software del sistema operativo determinan la simetría (o la falta de ella) en un sistema dado. Por ejemplo, las consideraciones de hardware o software pueden requerir que sólo una CPU en particular responda a todas las interrupciones de hardware, mientras que el resto del trabajo en el sistema puede ser distribuido por igual entre las CPUs; o la ejecución del código en modo kernel puede estar restringida a una sola CPU en particular, mientras que el código en modo usuario puede ser ejecutado en cualquier combinación de procesadores. Los sistemas de multiprocesamiento son a menudo más fáciles de diseñar si se imponen tales restricciones, pero tienden a ser menos eficientes que los sistemas en los que se utilizan todas las CPUs.
Los sistemas que tratan a todas las CPUs por igual se llaman sistemas de multiprocesamiento simétrico (SMP). En los sistemas en los que no todas las CPU son iguales, los recursos del sistema pueden dividirse de varias maneras, incluyendo el multiprocesamiento asimétrico (ASMP), el multiprocesamiento de acceso no uniforme a la memoria (NUMA) y el multiprocesamiento en clúster.
Sistema multiprocesador maestro/esclavoEditar
En un sistema multiprocesador maestro/esclavo, la CPU maestra está en control del ordenador y la(s) CPU(s) esclava(s) realiza(n) las tareas asignadas. Las CPUs pueden ser completamente diferentes en términos de velocidad y arquitectura. Algunas (o todas) las CPUs pueden tener un bus común, cada una puede tener también un bus privado (para recursos privados), o pueden estar aisladas excepto por una vía de comunicación común. Del mismo modo, las CPUs pueden compartir una memoria RAM común y/o tener una memoria RAM privada a la que los otros procesadores no pueden acceder. Los roles de maestro y esclavo pueden cambiar de una CPU a otra.
Un primer ejemplo de sistema multiprocesador maestro/esclavo es el ordenador de sobremesa Tandy/Radio Shack TRS-80 Modelo 16 que salió al mercado en febrero de 1982 y que ejecutaba el sistema operativo Xenix multiusuario/multitarea, la versión de UNIX de Microsoft (llamado TRS-XENIX). El Modelo 16 tiene 3 microprocesadores, una CPU Zilog Z80 de 8 bits que funciona a 4MHz, una CPU Motorola 68000 de 16 bits que funciona a 6MHz y un Intel 8021 en el teclado. Al arrancar el sistema, el Z-80 era el maestro y el proceso de arranque de Xenix inicializaba el 68000 esclavo, y luego transfería el control al 68000, con lo que las CPUs cambiaban de papel y el Z-80 se convertía en un procesador esclavo que se encargaba de todas las operaciones de E/S, incluyendo el disco, las comunicaciones, la impresora y la red, así como el teclado y el monitor integrado, mientras que el sistema operativo y las aplicaciones se ejecutaban en la CPU del 68000. El Z-80 podía utilizarse para realizar otras tareas.
El anterior TRS-80 Model II, que salió al mercado en 1979, también podía considerarse un sistema multiprocesador, ya que contaba con una CPU Z-80 y un microprocesador Intel 8021 en el teclado. El 8021 convirtió al Modelo II en el primer sistema informático de sobremesa con un teclado ligero independiente y desmontable, conectado con un único y fino cable flexible, y probablemente en el primer teclado que utilizó un microprocesador dedicado, atributos ambos que serían copiados años más tarde por Apple e IBM.
Flujos de instrucciones y datosEditar
En el multiprocesamiento, los procesadores pueden utilizarse para ejecutar una única secuencia de instrucciones en múltiples contextos (instrucción única, datos múltiples o SIMD, a menudo utilizado en el procesamiento vectorial), múltiples secuencias de instrucciones en un único contexto (multiple-instruction, single-data o MISD, utilizado para la redundancia en sistemas a prueba de fallos y a veces aplicado para describir procesadores en cadena o hyper-threading), o múltiples secuencias de instrucciones en múltiples contextos (multiple-instruction, multiple-data o MIMD).
Acoplamiento de procesadoresEditar
Sistema multiprocesador estrechamente acopladoEditar
Los sistemas multiprocesadores estrechamente acoplados contienen múltiples CPUs que están conectadas a nivel de bus. Estas CPUs pueden tener acceso a una memoria compartida central (SMP o UMA), o pueden participar en una jerarquía de memoria tanto local como compartida (SM)(NUMA). El IBM p690 Regatta es un ejemplo de sistema SMP de gama alta. Los procesadores Intel Xeon dominaban el mercado de los multiprocesadores para los ordenadores de empresa y eran la única opción x86 importante hasta el lanzamiento de la gama de procesadores Opteron de AMD en 2004. Ambas gamas de procesadores tenían su propia caché integrada, pero proporcionaban acceso a la memoria compartida; los procesadores Xeon a través de una tubería común y los procesadores Opteron a través de rutas independientes a la RAM del sistema.
Los multiprocesadores de chip, también conocidos como computación multinúcleo, implican más de un procesador colocado en un solo chip y pueden considerarse la forma más extrema de multiprocesamiento estrechamente acoplado. Los sistemas mainframe con múltiples procesadores suelen estar fuertemente acoplados.
Sistema multiprocesador débilmente acopladoEditar
Los sistemas multiprocesadores débilmente acoplados (a menudo denominados clusters) se basan en múltiples ordenadores básicos independientes de uno o dos procesadores interconectados a través de un sistema de comunicación de alta velocidad (Gigabit Ethernet es común). Un clúster Linux Beowulf es un ejemplo de sistema débilmente acoplado.
Los sistemas fuertemente acoplados rinden más y son físicamente más pequeños que los sistemas débilmente acoplados, pero históricamente han requerido mayores inversiones iniciales y pueden depreciarse rápidamente; los nodos de un sistema débilmente acoplado suelen ser ordenadores básicos baratos y pueden reciclarse como máquinas independientes al retirarse del clúster.
El consumo de energía también es una consideración. Los sistemas estrechamente acoplados tienden a ser mucho más eficientes energéticamente que los clusters. Esto se debe a que se puede conseguir un ahorro considerable diseñando los componentes para que trabajen juntos desde el principio en los sistemas fuertemente acoplados, mientras que los sistemas poco acoplados utilizan componentes que no fueron necesariamente pensados específicamente para su uso en dichos sistemas.
Los sistemas poco acoplados tienen la capacidad de ejecutar diferentes sistemas operativos o versiones de SO en diferentes sistemas.