stringtranslate.com

Multiprocesamiento

El multiprocesamiento es el uso de dos o más unidades centrales de procesamiento (CPU) dentro de un solo sistema informático . [1] [2] El término también se refiere a la capacidad de un sistema de soportar más de un procesador o la capacidad de asignar tareas entre ellos. Hay muchas variaciones sobre este tema básico, y la definición de multiprocesamiento puede variar con el contexto, principalmente como una función de cómo se definen las CPU ( múltiples núcleos en una matriz , múltiples matrices en un paquete , múltiples paquetes en una unidad de sistema , etc.).

Según algunos diccionarios en línea, un multiprocesador es un sistema informático que tiene dos o más unidades de procesamiento (múltiples procesadores) cada una de las cuales comparte la memoria principal y los periféricos, para procesar programas simultáneamente. [3] [4] Un libro de texto de 2009 definió el sistema multiprocesador de manera similar, pero señalando que los procesadores pueden compartir "parte o toda la memoria del sistema y las instalaciones de E/S"; también dio " sistema estrechamente acoplado" como término sinónimo. [5]

A nivel de sistema operativo , el multiprocesamiento se utiliza a veces para referirse a la ejecución de múltiples procesos concurrentes en un sistema, con cada proceso ejecutándose en una CPU o núcleo separado, en lugar de un solo proceso en un instante determinado. [6] [7] Cuando se utiliza con esta definición, el multiprocesamiento a veces se contrasta con la multitarea , que puede utilizar un solo procesador pero cambiarlo en porciones de tiempo entre tareas (es decir, un sistema de tiempo compartido ). Sin embargo, el multiprocesamiento significa la verdadera ejecución paralela de múltiples procesos utilizando más de un procesador. [7] El multiprocesamiento no significa necesariamente que un solo proceso o tarea utilice más de un procesador simultáneamente; el término procesamiento paralelo se utiliza generalmente para denotar ese escenario. [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 MIMD . [9] [10] Como el término "multiprocesador" normalmente se refiere a sistemas estrechamente acoplados en los que todos los procesadores comparten memoria, los multiprocesadores no son la clase completa de máquinas MIMD, que también contiene sistemas multicomputadoras de paso de mensajes . [9]

Temas clave

Simetría del procesador

En un sistema multiprocesamiento , todas las CPU pueden ser iguales, o algunas pueden estar reservadas para propósitos especiales. Una combinación de consideraciones de diseño de hardware y software del sistema operativo determina la simetría (o falta de ella) en un sistema determinado. Por ejemplo, las consideraciones de hardware o software pueden requerir que solo una CPU en particular responda a todas las interrupciones de hardware, mientras que todo el resto del trabajo en el sistema puede distribuirse de manera uniforme entre las CPU; o la ejecución de código en modo kernel puede estar restringida a solo una CPU en particular, mientras que el código en modo usuario puede ejecutarse en cualquier combinación de procesadores. Los sistemas multiprocesamiento suelen ser 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 CPU.

Los sistemas que tratan a todas las CPU por igual se denominan sistemas de multiprocesamiento simétrico (SMP). En los sistemas en los que no todas las CPU son iguales, los recursos del sistema se pueden dividir de varias maneras, como el multiprocesamiento asimétrico (ASMP), el multiprocesamiento de 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 la computadora y la(s) CPU esclava(s) realizan las tareas asignadas. Las CPU pueden ser completamente diferentes en términos de velocidad y arquitectura. Algunas (o todas) las CPU pueden compartir 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 CPU pueden compartir RAM común y/o tener RAM privada a la que el(los) otro(s) procesador(es) no puede(n) acceder. Los roles de maestro y esclavo pueden cambiar de una CPU a otra.

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

Un ejemplo temprano de un sistema multiprocesador maestro/esclavo de microprocesadores es la computadora de escritorio Tandy/Radio Shack TRS-80 Modelo 16 que salió al mercado en febrero de 1982 y ejecutaba el sistema operativo multiusuario/multitarea Xenix , la versión de UNIX de Microsoft (llamado TRS-XENIX). El Modelo 16 tiene 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. Cuando se inicia el sistema, el Z-80 es el maestro y el proceso de arranque de Xenix inicializa el 68000 esclavo y luego transfiere el control al 68000, con lo cual las CPU cambian de roles y el Z-80 se convierte en un procesador esclavo responsable de todas las operaciones de E/S, incluyendo disco, comunicaciones, impresora y red, así como el teclado y el monitor integrado, mientras que el sistema operativo y las aplicaciones se ejecutan en la CPU 68000. El Z-80 se puede utilizar para realizar otras tareas.

El modelo TRS-80 Model II , que se lanzó en 1979, también podría considerarse un sistema multiprocesador, ya que tenía 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 liviano desmontable separado conectado por un solo cable delgado y flexible, y probablemente el primer teclado en usar un microcontrolador dedicado, ambos atributos que luego serían copiados años después por Apple e IBM.

Flujos de instrucciones y datos

En el multiprocesamiento, los procesadores se pueden utilizar 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 ( instrucción múltiple, datos únicos o MISD, utilizado para redundancia en sistemas a prueba de fallos y a veces aplicado para describir procesadores canalizados o hiperprocesamiento ), o múltiples secuencias de instrucciones en múltiples contextos ( instrucción múltiple, datos múltiples o MIMD).

Acoplamiento de procesador

Sistema multiprocesador estrechamente acoplado

Los sistemas multiprocesador estrechamente acoplados contienen múltiples CPU que están conectadas a nivel de bus. Estas CPU pueden tener acceso a una memoria compartida central (SMP o 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 alta gama. Los procesadores Intel Xeon dominaron el mercado de multiprocesadores para PC empresariales y fueron 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 vías independientes a la RAM del sistema .

Los multiprocesadores de chip, también conocidos como computación multinúcleo , implican más de un procesador ubicado 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 acoplado de forma flexible

Los sistemas multiprocesadores acoplados de forma flexible (a menudo denominados clústeres ) se basan en múltiples computadoras independientes con un número relativamente bajo de procesadores interconectadas a través de un sistema de comunicación de alta velocidad ( Gigabit Ethernet es común). Un clúster Beowulf de Linux es un ejemplo de un sistema acoplado de forma flexible .

Los sistemas estrechamente acoplados tienen mejor rendimiento 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 computadoras económicas y pueden reciclarse como máquinas independientes al retirarse del clúster.

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

Los sistemas acoplados de forma flexible tienen la capacidad de ejecutar diferentes sistemas operativos o versiones de SO en diferentes sistemas.

Véase también

Referencias

  1. ^ Raj Rajagopal (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. ^ de Mike Ebbers; John Kettner; Wayne O'Brien; Bill Ogden (2012). Introducción al nuevo mainframe: conceptos básicos de z/OS. IBM. pág. 96. ISBN 978-0-7384-3534-3.
  3. ^ "Definición de diccionario de multiprocesador - definición de multiprocesador" www.yourdictionary.com . Archivado desde el original el 16 de marzo de 2018 . Consultado el 16 de marzo de 2018 .
  4. ^ "multiprocesador". Archivado desde el original el 16 de marzo de 2018. Consultado el 16 de marzo de 2018 – a través de The Free Dictionary.
  5. ^ Irv Englander (2009). La arquitectura del hardware y el software de sistemas informáticos. Un enfoque de la tecnología de la información (4.ª ed.). Wiley. pág. 265. ISBN 978-0471715429.
  6. ^ de Deborah Morley; Charles Parker (13 de febrero de 2012). Comprensión de las computadoras: hoy y mañana, integral. Cengage Learning. p. 183. ISBN 978-1-133-19024-0.
  7. ^ ab Shibu KV Introducción a los sistemas integrados. Tata McGraw-Hill Education. pág. 402. ISBN 978-0-07-014589-4.
  8. ^ Ashok Arora (2006). Fundamentos de la informática. Laxmi Publications. pág. 149. ISBN 978-81-7008-971-1.
  9. ^ ab Ran Giladi (2008). Procesadores de red: arquitectura, programación e implementación. Morgan Kaufmann. pág. 293. ISBN 978-0-08-091959-1.
  10. ^ Sajjan G. Shiva (20 de septiembre de 2005). Arquitecturas informáticas avanzadas. CRC Press. pág. 221. ISBN 978-0-8493-3758-1.
  11. ^ Características operativas de los procesadores para el Burroughs B5000 (PDF) . Revisión A. Burroughs . 1963. 5000-21005A. Archivado (PDF) del original el 30 de mayo de 2023 . Consultado el 27 de junio de 2023 .
  12. ^ Manual de referencia técnica del modelo II TRS-80 . Radio Shack. 1980. pág. 135.