Articulo de referencia

Multiprocesamiento

El multiprocesamiento ( MP ) es el uso de dos o más unidades centrales de procesamiento (CPU) dentro de un mismo sistema informático . [ 1 ] [ 2 ] El término también se refiere ...

El multiprocesamiento ( MP ) es el uso de dos o más unidades centrales de procesamiento (CPU) dentro de un mismo sistema informático . [ 1 ] [ 2 ] El término también se refiere a la capacidad de un sistema para admitir más de un procesador o la capacidad de asignar tareas entre ellos. Existen muchas variantes de este concepto básico, y la definición de multiprocesamiento puede variar según el contexto, principalmente en función de cómo se define un procesador ( procesadores multinúcleo (múltiples núcleos) en un solo chip , múltiples chips en un mismo encapsulado , múltiples encapsulados en una misma carcasa (unidad del sistema), etc.).

Un multiprocesador es un sistema informático que tiene dos o más CPU (procesadores: múltiples procesadores) que comparten memoria principal y periféricos para procesar programas simultáneamente. [ 3 ] [ 4 ] Un libro de texto de 2009 definió el sistema multiprocesador de manera similar, pero señaló que los procesadores pueden compartir "parte o la totalidad de la memoria y las funciones de E/S del sistema "; también proporcionó el término sistema acoplado estrechamente como sinónimo. [ 5 ]

A nivel del sistema operativo , el multiprocesamiento se utiliza a veces para referirse a la ejecución de múltiples procesos concurrentes en un sistema, donde cada proceso se ejecuta en una CPU o núcleo independiente, en contraste con un solo proceso en un instante dado. [ 6 ] [ 7 ] Cuando se utiliza con esta definición, el multiprocesamiento se contrasta a veces con la multitarea , que puede usar solo un procesador pero alternarlo en intervalos de tiempo entre tareas (es decir, un sistema de tiempo compartido ). Por el contrario, el multiprocesamiento significa la ejecución paralela real de múltiples procesos utilizando más de un procesador. [ 7 ] El multiprocesamiento no implica necesariamente que un proceso o tarea utilice más de un procesador simultáneamente; el término procesamiento paralelo se utiliza generalmente para denotar esa práctica. [ 6 ] Otros autores prefieren referirse a las técnicas del sistema operativo como multiprogramación y reservan el término multiprocesamiento para el aspecto de hardware de tener más de un procesador. [ 2 ] [ 8 ] El resto de este artículo analiza el multiprocesamiento solo en este sentido de hardware.

En la taxonomía de Flynn , los multiprocesadores, tal como se definen anteriormente, son máquinas de instrucciones múltiples y datos múltiples (MIMD). [ 9 ] [ 10 ] Dado que el término "multiprocesador" normalmente se refiere a sistemas estrechamente acoplados en los que todos los procesadores comparten memoria, los multiprocesadores no constituyen la totalidad de la clase de máquinas MIMD, que también incluye sistemas multicomputadora de paso de mensajes . [ 9 ]

Temas clave

Simetría del procesador

En un sistema multiprocesador , todas las CPU pueden tener el mismo rendimiento o algunas pueden reservarse para funciones especiales. La simetría (o la falta de ella) en un sistema determinado depende de una combinación de consideraciones de diseño de hardware y software del sistema operativo . Por ejemplo, las consideraciones de hardware o software pueden requerir que solo una CPU responda a todas las interrupciones de hardware, mientras que el resto del trabajo del sistema se distribuye equitativamente entre las CPU; o la ejecución del código en modo kernel puede restringirse a una sola CPU asignada, mientras que el código en modo usuario puede ejecutarse en cualquier combinación de procesadores. Los sistemas multiprocesador suelen ser más fáciles de diseñar si se imponen dichas restricciones, pero tienden a ser menos eficientes que los sistemas en los que se utilizan todas las CPU.

Los sistemas que tratan a todas las CPU por igual se denominan sistemas de multiprocesamiento simétrico (SMP). En sistemas donde las CPU no son iguales, los recursos del sistema pueden dividirse de diversas maneras, como el multiprocesamiento asimétrico (ASMP), el multiprocesamiento con acceso a memoria no uniforme (NUMA) y el multiprocesamiento en clúster .

Sistema multiprocesador maestro/esclavo

En un sistema multiprocesador maestro/esclavo, la CPU maestra controla el ordenador y las CPU esclavas realizan las tareas asignadas. Las CPU pueden ser muy diferentes en velocidad y arquitectura. Algunas (o todas) las CPU pueden compartir un bus común, cada una puede tener un bus privado (para recursos privados) o pueden estar aisladas, salvo por una vía de comunicación común. Asimismo, las CPU pueden compartir memoria RAM común o tener memoria RAM privada a la que las demás CPU no pueden acceder. Los roles de maestro y esclavo pueden variar de una CPU a otra.

Dos ejemplos tempranos de un multiprocesador maestro/esclavo de computadora central son el Bull Gamma 60 y el Burroughs B5000 . [ 11 ]

Un ejemplo temprano de un sistema multiprocesador maestro/esclavo es la computadora de escritorio Tandy/Radio Shack TRS-80 Modelo 16 , lanzada en febrero de 1982. Ejecutaba el sistema operativo multiusuario/multitarea Xenix , la versión de Unix de Microsoft (denominada TRS-XENIX). El Modelo 16 cuenta con dos microprocesadores: una CPU Zilog Z80 de 8 bits que funciona a 4 MHz y una CPU Motorola 68000 de 16 bits que funciona a 6 MHz. Al arrancar el sistema, el Z-80 actúa como maestro y el proceso de arranque de Xenix inicializa el esclavo 68000, transfiriéndole el control. En ese momento, las CPU intercambian roles y el Z-80 se convierte en un procesador esclavo responsable de todas las operaciones de entrada/salida (E/S), incluyendo disco, comunicación, impresora, red, teclado y monitor integrado, mientras que el sistema operativo y las aplicaciones se ejecutan en la CPU 68000. El Z-80 puede utilizarse para realizar otras tareas.  

El modelo TRS-80 Model II , lanzado en 1979, también es un sistema multiprocesador, ya que cuenta con una CPU Z-80 y un microcontrolador Intel 8021 [ 12 ] en el teclado. El 8021 convirtió al Model II en el primer sistema informático de escritorio con un teclado ligero y desmontable conectado por un cable delgado y flexible, y probablemente el primer teclado en utilizar un microcontrolador dedicado, características que Apple e IBM copiaron años después.

Flujos de instrucciones y datos

En el procesamiento paralelo, los procesadores pueden utilizarse para ejecutar una única secuencia de instrucciones en múltiples contextos ( instrucción única, datos múltiples (SIMD), que se utiliza a menudo en el procesamiento vectorial ), múltiples secuencias de instrucciones en un único contexto ( instrucción múltiple, datos únicos o MISD, que se utiliza para la redundancia en sistemas a prueba de fallos y a veces se aplica para describir procesadores segmentados o hyper-threading ), o múltiples secuencias de instrucciones en múltiples contextos ( instrucción múltiple, datos múltiples o MIMD).

Acoplamiento del procesador

Sistema multiprocesador estrechamente acoplado

Los sistemas multiprocesador estrechamente acoplados contienen múltiples CPU conectadas a nivel de bus. Estas CPU pueden tener acceso a una memoria compartida central (SMP o acceso uniforme a memoria (UMA)), o pueden participar en una jerarquía de memoria con memoria local y compartida (SM) ( NUMA ). El IBM p690 Regatta es un ejemplo de un sistema SMP de gama alta. Los procesadores Intel Xeon dominaron el mercado de multiprocesadores para PC empresariales y fueron la única opción importante para la arquitectura x86 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 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 memoria de acceso aleatorio (RAM) del sistema.

Los multiprocesadores en chip, también conocidos como computación multinúcleo , implican más de un procesador 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 estrechamente acoplados.

Sistema multiprocesador débilmente acoplado

Los sistemas multiprocesador débilmente acoplados (a menudo denominados clústeres ) se basan en múltiples ordenadores independientes con un número relativamente bajo de procesadores , interconectados mediante 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 estrechamente acoplados funcionan mejor 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 en un sistema débilmente acoplado suelen ser ordenadores comerciales económicos y pueden reciclarse como máquinas independientes al retirarse del clúster.

El consumo de energía también es un factor importante. Los sistemas estrechamente acoplados tienden a ser mucho más eficientes energéticamente que los clústeres. Esto se debe a que, en los sistemas estrechamente acoplados, se puede lograr una reducción considerable del consumo de energía diseñando los componentes para que funcionen conjuntamente desde el principio, mientras que los sistemas débilmente acoplados utilizan componentes que no necesariamente fueron diseñados específicamente para este tipo de sistemas.

Los sistemas débilmente acoplados tienen la capacidad de ejecutar diferentes sistemas operativos o versiones de sistemas operativos en diferentes sistemas.

Desventajas

La fusión de datos de múltiples hilos o procesos puede generar una sobrecarga significativa debido a la resolución de conflictos , la consistencia de los datos , el control de versiones y la sincronización. [ 13 ]

Véase también

Referencias

  1. Rajagopal, Raj (1999). Introducción a Microsoft Windows NT Cluster Server: Programación y administración . CRC Press. pág.  4. ISBN 978-1-4200-7548-9.
  2. 1 2 reflujos, Mike; Kettner, John; O'Brien, Wayne; Ogden, Bill (2012). Introducción al nuevo mainframe: conceptos básicos de z/OS . IBM. pag. 96.ISBN  978-0-7384-3534-3.
  3. "Definición de diccionario de multiprocesador: definición de multiprocesador" . Yourdictionary.com . LoveToKnow Media. Archivado del original el 16 de marzo de 2018. Consultado el 16 de marzo de 2018 .
  4. "multiprocesador" . Archivado del original el 16 de marzo de 2018. Consultado el 16 de marzo de 2018 a través de The Free Dictionary.
  5. Englander, Irv (2009). La arquitectura del hardware y el software de sistemas informáticos: un enfoque de tecnología de la información (4.ª ed.). Wiley. pág. 265. ISBN   978-0471715429.
  6. 1 2 Morley, Deborah; Parker, Charles (13 de febrero de 2012). Comprensión de las computadoras: hoy y mañana, integral . Cengage Learning. pág. 183. ISBN  978-1-133-19024-0.
  7. ^ Shibu , KV Introducción a los sistemas integrados . Educación de Tata McGraw-Hill. pag. 402.ISBN  978-0-07-014589-4.
  8. Arora, Ashok (2006). Fundamentos de la informática . Laxmi Publications. pág. 149. ISBN  978-81-7008-971-1.
  9. 1 2 Giladi, Ran (2008). Procesadores de red: arquitectura, programación e implementación . Morgan Kaufmann. pág. 293. ISBN  978-0-08-091959-1.
  10. Shiva, Sajjan G. (20 de septiembre de 2005). Arquitecturas informáticas avanzadas . CRC Press. pág. 221. ISBN  978-0-8493-3758-1.
  11. Servicios técnicos de ventas: División de marketing de equipos y sistemas (1963). Características operativas de los procesadores para el Burroughs B5000 (Revisión A: 5000-21005A) (PDF) (2.ª ed.). Detroit, Michigan: Burroughs Corporation . Archivado (PDF) del original el 30 de mayo de 2023. Recuperado el 13 de abril de 2026 . 
  12. Personal (1980). Manual de referencia técnica del modelo TRS-80 II . Radio Shack. pág. 135. 
  13. Programación concurrente: algoritmos, principios y fundamentos . Springer. 23 de diciembre de 2012. ISBN 978-3642320262.