Arquitectura de subprocesos y tareas

Los subprocesos son una característica del sistema operativo que permite separar la lógica de aplicación en varias rutas de ejecución simultánea. Esta característica resulta útil cuando se trabaja con aplicaciones complejas que tienen muchas tareas que pueden ejecutarse a la vez.

Cuando un sistema operativo ejecuta una instancia de una aplicación, crea una unidad llamada proceso para administrar la instancia. El proceso contiene un subproceso de ejecución. Se trata de una serie de instrucciones de programación que lleva a cabo el código de la aplicación. Por ejemplo, en una aplicación simple con un único conjunto de instrucciones que pueden ejecutarse en serie, sólo hay una ruta de ejecución, o subproceso, en la aplicación. Las aplicaciones más complejas pueden tener varias tareas que podrían realizarse conjuntamente, no en serie. La aplicación puede hacerlo si inicia un proceso independiente para cada tarea. Sin embargo, iniciar un proceso es una operación que consume muchos recursos. En cambio, una aplicación puede iniciar subprocesos independientes. Se trata de elementos que consumen menos recursos. Además, cada subproceso puede programarse para ejecutarse independientemente de los demás subprocesos asociados a un proceso.

Los subprocesos permiten a las aplicaciones complejas hacer más eficaz el uso de una CPU, incluso en los equipos con una única CPU. Con una CPU sólo puede ejecutarse un subproceso cada vez. Si un subproceso ejecuta una operación de larga duración que no use la CPU, como la lectura o la escritura en disco, otro de los subprocesos puede ejecutarse mientras termina la primera operación. La capacidad de ejecutar unos subprocesos mientras otros esperan a que una operación finalice permite a las aplicaciones maximizar su uso de la CPU. Esto es especialmente cierto para las aplicaciones multiusuario y las que realizan numerosas E/S de disco, como un servidor de base de datos. Los equipos con varios multiprocesadores o CPU pueden ejecutar un subproceso en cada CPU al mismo tiempo. Por ejemplo, si un equipo dispone de ocho CPU, podrá ejecutar ocho subprocesos simultáneamente.

En esta sección