Un sistema multiproceso o multitarea es aquel que permite ejecutar varios procesos de forma concurrente, la razón es porque actualmente la mayoría de las CPU’s sólo pueden ejecutar un proceso cada vez. La única forma de que se ejecuten de forma simultánea varios procesos es tener varias CPU’s (ya sea en una máquina o en varias, en un sistema distribuido.

La ventaja de un sistema multiproceso reside en la operación llamada cambio de contexto. Esta operación consiste en quitar a un proceso de la CPU, ejecutar otro proceso y volver a colocar el primero sin que se entere de nada.El multiproceso no es algo difícil de entender: más procesadores significa más potencia computacional.

Un sistema multiproceso o multitarea es aquel que permite ejecutar varios procesos de forma concurrente, un multiprocesador es aquel que cuenta con   dos o más microprocesadores.

 Un conjunto de tareas puede ser completado más rápidamente si hay varias unidades de proceso ejecutándolas en paralelo. Esa es la teoría, pero otra historia es la práctica, como hacer funcionar el multiproceso, lo que requiere unos profundos conocimientos tanto del hardware como del software.

Es necesario conocer ampliamente como están interconectados dichos procesadores, y la forma en que el código que se ejecuta en los mismos ha sido escrito para escribir aplicaciones y software que aproveche al máximo sus prestaciones.

A pesar de las grandes mejoras acaecidas en monoprocesadores para algunas aplicaciones no es suficiente. La solución pueden ser los sistemas multiprocesadores debido a que es la solución más sencilla, natural y con mejor

coste-prestaciones. Además, las mejoras en microprocesadores cada vez más son complejas; cada avance implica crecer en complejidad, potencia y superficie; quizás se lenta pro es una clara mejora en el software, que permite explotar el paralelismo.

Existen dos factores claves para la extensión de multiprocesadores:

  1. Flexibilidad: El mismo sistema puede usarse para un único usuario incrementado el rendimiento en la ejecución de una única aplicación o para varios usuarios y aplicaciones en un entorno compartido.
  2. Coste-rendimiento: Actualmente estos sistemas se basan en procesadores comerciales, por lo que su coste se ha reducido drásticamente

El multiproceso no es más que un conjunto de tareas  que pueden ser completadas  rápidamente si hay varias unidades de proceso ejecutándolas. Para el desarrollo de estos procesos se ocupan modelos de programación concurrente y paralela:

Los objetivos de la programación paralela, son:

  • Reducir el tiempo de cómputo.
  • Reducir la complejidad del algoritmo,
  • Aprovechar al máximo la capacidad de las computadoras multiproceso.

La ventaja de un sistema multiproceso reside en la operación llamada cambio de contexto. Esta operación consiste en quitar a un proceso de la CPU, ejecutar otro proceso y volver a colocar el primero sin que se entere de nada. Los hilos que se ejecutan comparten  ciertos recursos  como el espacio del mensaje, la cual permite  simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.

multiproceso
Figura 1. Múltiples procesadores.