stringtranslate.com

Multiprocesamiento

El multiprocesamiento es el uso de dos o más unidades centrales de procesamiento (CPU) dentro de un único 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. Hay muchas variaciones sobre este tema básico, y la definición de multiprocesamiento puede variar según el contexto, principalmente en 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 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ñ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 del sistema operativo , el multiprocesamiento a veces se utiliza para referirse a la ejecución de múltiples procesos simultáneos en un sistema, donde cada proceso se ejecuta en una CPU o núcleo independiente, en lugar de un solo proceso en un instante determinado. [6] [7] Cuando se usa con esta definición, el multiprocesamiento a veces se contrasta con la multitarea , que puede usar un solo procesador pero cambiarlo en intervalos de tiempo entre tareas (es decir, un sistema de tiempo compartido ). Sin embargo, el multiprocesamiento significa una 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 hardware de tener más de un procesador. [2] [8] El resto de este artículo analiza el multiprocesamiento sólo en este sentido de hardware.

En la taxonomía de Flynn , los multiprocesadores definidos 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 toda la clase de máquinas MIMD, que también contienen 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 reservarse para propósitos especiales. Una combinación de consideraciones de diseño de hardware y software del sistema operativo determina la simetría (o la falta de ella) en un sistema determinado. 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 todo el resto del trabajo en el sistema puede distribuirse equitativamente entre las CPU; o la ejecución de código en modo kernel puede restringirse a una sola 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 sistemas donde no todas las CPU son iguales, los recursos del sistema se pueden dividir de varias maneras, incluido 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 tiene el control de la computadora y las CPU esclavas 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 también puede tener un bus privado (para recursos privados) o pueden estar aisladas excepto por una vía de comunicaciones común. Asimismo, las CPU pueden compartir RAM común y/o tener RAM privada a la que los otros procesadores no pueden acceder. Los roles de maestro y esclavo pueden cambiar de una CPU a otra.

Dos primeros ejemplos de 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 inicio de Xenix inicializa el esclavo 68000 y luego transfiere el control al 68000, tras lo cual las CPU cambian de roles y el Z-80 se convierte en un procesador esclavo responsable de todas las E/S. O operaciones que incluyen 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 anterior TRS-80 Modelo 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 Modelo II en el primer sistema de computadora de escritorio con un teclado liviano, desmontable e independiente conectado mediante 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 más tarde por Apple e IBM. .

Flujos de instrucciones y datos

En 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 usado en procesamiento vectorial ), múltiples secuencias de instrucciones en un contexto único ( 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 hyper-threading ), o múltiples secuencias de instrucciones en múltiples contextos ( múltiples instrucciones, múltiples datos o MIMD).

Acoplamiento de procesador

Sistema multiprocesador estrechamente acoplado

Los sistemas multiprocesador estrechamente acoplados contienen varias CPU que están conectadas a nivel de bus. Estas CPU pueden tener acceso a una memoria central compartida (SMP o UMA ), o pueden participar en una jerarquía de memoria con memoria tanto local como 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 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 hacia la RAM del sistema .

Los multiprocesadores de chips, también conocidos como computación de múltiples núcleos , 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 estrechamente acoplados.

Sistema multiprocesador débilmente acoplado

Los sistemas multiprocesador débilmente acoplados (a menudo denominados clústeres ) se basan en múltiples computadoras comerciales 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 de Linux Beowulf es un ejemplo de un 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 computadoras básicas de bajo costo 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 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 necesariamente fueron diseñados específicamente para su uso en dichos sistemas.

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

Ver también

Referencias

  1. ^ Raj Rajagopal (1999). Introducción a Microsoft Windows NT Cluster Server: programación y administración. Prensa CRC. pag. 4.ISBN​ 978-1-4200-7548-9.
  2. ^ ab Mike Ebbers; John Kettner; Wayne O'Brien; Bill Ogden (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 multiprocesador: definido por multiprocesador". www.tudiccionario.com . Consultado el 16 de marzo de 2018 .
  4. ^ "multiprocesador" . Consultado el 16 de marzo de 2018 a través de The Free Dictionary.
  5. ^ Irv Inglaterra (2009). La arquitectura del Hardware y Software de Sistemas Informáticos. Un enfoque de tecnología de la información (4ª ed.). Wiley. pag. 265.ISBN 978-0471715429.
  6. ^ ab Deborah Morley; Charles Parker (13 de febrero de 2012). Comprensión de las computadoras: hoy y mañana, integral. Aprendizaje Cengage. pag. 183.ISBN 978-1-133-19024-0.
  7. ^ ab Shibu KV Introducción a los sistemas integrados. Educación de Tata McGraw-Hill. pag. 402.ISBN 978-0-07-014589-4.
  8. ^ Ashok Arora (2006). Fundamentos de la informática. Publicaciones Laxmi. pag. 149.ISBN 978-81-7008-971-1.
  9. ^ ab Ran Giladi (2008). Procesadores de red: arquitectura, programación e implementación. Morgan Kaufman. pag. 293.ISBN 978-0-08-091959-1.
  10. ^ Sajjan G. Shiva (20 de septiembre de 2005). Arquitecturas informáticas avanzadas. Prensa CRC. pag. 221.ISBN 978-0-8493-3758-1.
  11. ^ Las características operativas de los procesadores de Burroughs B5000 (PDF) . Revisión A. Burroughs . 1963. 5000-21005A . Consultado el 27 de junio de 2023 .
  12. ^ Manual de referencia técnica del TRS-80 Modelo II . Radio Shack. 1980. pág. 135.