Multiprocesamiento: en qué consiste, tipos, requerimientos, ventajas
El multiprocesamiento, aplicado a la informática, es una forma de operación de una computadora en donde se tiene físicamente más de un procesador. El fin es tener la disposición de ejecutar diferentes partes de un programa a la vez.
Estas múltiples unidades centrales de procesamiento (CPU) se mantienen en una estrecha comunicación, compartiendo el bus, la memoria y otros dispositivos periféricos de la computadora. Dado que hay múltiples procesadores disponibles se pueden ejecutar a la vez múltiples procesos.
El multiprocesamiento se refiere más a la cantidad de unidades de CPU, que a la cantidad de procesos en ejecución de forma simultánea. Si el hardware proporciona más de un procesador, entonces eso es multiprocesamiento. Es la capacidad del sistema de aprovechar la potencia informática de múltiples procesadores.
El sistema de multiprocesamiento es de gran utilidad cuando se busca tener una velocidad bastante alta para procesar un conjunto elevado de datos. Estos sistemas se usan mayormente en aplicaciones como el de pronóstico del tiempo, control satelital, etc.
Este tipo de sistema de multiprocesamiento apareció por primera vez en las computadoras grandes o mainframes, antes de reducir su costo para garantizar su inclusión en las computadoras personales.
Índice del artículo
- 1 ¿En qué consiste el multiprocesamient?
- 2 Requerimientos
- 3 Tipos de multiprocesamiento
- 4 Ventajas
- 5 Desventajas
- 6 Referencias
¿En qué consiste el multiprocesamient?
Con el apoyo de un sistema de multiprocesamiento se podrán ejecutar varios procesos en paralelo.
Supongamos que los procesos Pr1, Pr2, Pr3 y Pr4 están esperando ser ejecutados. En un sistema con un único procesador, primero se ejecutará un proceso, luego el siguiente, después el otro y así sucesivamente.
Sin embargo, con el multiprocesamiento se podrá establecer cada proceso a una CPU particular para su procesamiento.
Si se trata de un procesador de doble núcleo, con dos procesadores, se podrán ejecutar dos procesos simultáneamente y así estos serán dos veces más rápidos. De manera similar, un procesador de cuatro núcleos será cuatro veces más rápido que un solo procesador.
Como se asigna una función determinada a ser realizada por cada procesador, estos podrán ejecutar su labor, entregar el conjunto de instrucciones al siguiente procesador y comenzar a trabajar en un nuevo conjunto de instrucciones.
Por ejemplo, un procesador más grande podría utilizar procesadores “esclavos” para que realicen diversas tareas de limpieza, como la administración de memoria.
Igualmente, se pueden usar diferentes procesadores para que administren las comunicaciones de datos, el almacenamiento de memoria o las funciones aritméticas.
Diferencia entre multiprocesamiento y multiprogramación
Un sistema es multiprocesamiento al tener más de un procesador físicamente, y puede ser multiprogramación cuando tiene varios procesos ejecutándose de forma simultánea.
Por tanto, la diferencia entre el multiprocesamiento y la multiprogramación es que el multiprocesamiento ejecuta múltiples procesos al mismo tiempo en múltiples procesadores, mientras que la multiprogramación mantiene varios programas en la memoria principal y los ejecuta simultáneamente a través de una sola CPU.
Es decir, el multiprocesamiento ocurre mediante un procesamiento en paralelo, mientras que la multiprogramación ocurre cuando una sola CPU cambia de un proceso a otro.
Requerimientos
Para poder utilizar el sistema multiprocesamiento de manera efectiva, el sistema informático debe tener lo siguiente:
Soporte del procesador
Se deben tener un conjunto de procesadores que tengan la capacidad de poder utilizarlos en un sistema de multiprocesamiento.
Soporte de la placa base
Una placa base capaz de contener y manejar múltiples procesadores. Esto significa zócalos o ranuras adicionales para los chips agregados.
Soporte del sistema operativo
Toda la tarea de multiprocesamiento es gestionada por el sistema operativo, que asigna las diferentes tareas a ser realizadas por los diversos procesadores en el sistema.
Se dice que las aplicaciones diseñadas para ser usadas en multiprocesamiento están hilvanadas, lo que significa que se dividen en rutinas más pequeñas que se pueden ejecutar de forma independiente.
Esto permite que el sistema operativo permita que estos subprocesos se ejecuten en más de un procesador simultáneamente, resultando en un multiprocesamiento y un mejor rendimiento.
Tipos de multiprocesamiento
Multiprocesamiento simétrico
En este tipo de multiprocesamiento todos los procesadores tienen una relación mutua al mismo nivel de igualdad, es decir, entre ellos no existe una relación maestro-esclavo.
Todos los procesadores tienen una comunicación entre sí, ya que cada uno contiene una copia del mismo sistema operativo.
Un ejemplo del sistema de multiprocesamiento simétrico es la versión Encore de Unix para la computadora Multimax.
Multiprocesamiento asimétrico
En este tipo de multiprocesamiento hay un procesador maestro que da instrucciones a todos los demás procesadores, asignándole a cada uno una tarea previamente definida. Esta es la opción más económica, al mantener una relación maestro-esclavo entre los procesadores.
Solo existía este tipo de multiprocesamiento hasta que fueron introducidos los multiprocesadores simétricos.
Ventajas
Mayor productividad
Con el multiprocesamiento se tendrán más tareas completadas en una cantidad de tiempo mucho menor.
Si varios procesadores funcionan en conjunto entonces se incrementa el rendimiento del sistema al aumentar el número de procesos ejecutados por unidad de tiempo.
Mayor confiabilidad
Cuando falla un procesador, el multiprocesamiento resulta ser más confiable, porque en esta situación el sistema se pondrá más lento, pero no se caerá. Esta capacidad de continuar trabajando a pesar de la falla se conoce como degradación elegante.
Por ejemplo, si falla algún procesador de un total de cinco que se tengan entonces el trabajo no fallará, sino que los cuatro procesadores restantes compartirán el trabajo del procesador que falló. Por tanto, el sistema funcionará un 20% más lento, en lugar de caerse por completo.
Ahorro de dinero
Estos sistemas pueden generar ahorros de dinero a largo plazo con respecto a los sistemas con un solo procesador, porque los procesadores pueden compartir las fuentes de alimentación, dispositivos periféricos y otros dispositivos.
Si hay múltiples procesos que comparten datos es mejor programarlos en sistemas de multiprocesamiento para compartir los datos, en lugar de tener diferentes sistemas informáticos con múltiples copias de esos datos.
Desventajas
Mayor costo de compra
Aunque los sistemas de multiprocesamiento son más baratos a largo plazo que el uso de múltiples sistemas informáticos, siguen siendo bastante costosos.
Resulta mucho más barato comprar un sistema sencillo con un único procesador que un sistema multiprocesador.
Sistema operativo complejo
Se necesita un sistema operativo de mayor complejidad en los sistemas de multiprocesamiento.
Esto es debido a que por tener múltiples procesadores que comparten memoria, dispositivos, etc. es más complicado la distribución de recursos a los procesos que si hubiera solo un procesador.
Se requiere gran cantidad de memoria
Todos los procesadores en el sistema de multiprocesamiento comparten la memoria principal. Por tanto, se requiere un conjunto de memoria mucho mayor en comparación con los sistemas con un solo procesador.
Referencias
- Dinesh Thakur (2019). Definition Multiprocessor Operating System. Ecomputer Notes.Tomado de: ecomputernotes.com.
- Tutorials Point (2019). Difference between multitasking, multithreading and multiprocessing. Tomado de: tutorialspoint.dev.
- Encyclopaedia Britannica (2019). Multiprocessing. Tomado de: britannica.com.
- Techopedia (2019). Multiprocessor. Tomado de: techopedia.com.
- Kristi Castro (2018). Multiprocessor Systems. Tutorials Point. Tomado de: tutorialspoint.com.