Share via


Programas multiproceso

Actualización: noviembre 2007

Un subproceso es, básicamente, un hilo de ejecución dentro de un programa. Asimismo, es la unidad de ejecución más pequeña que puede programar Win32. Un subproceso consta de una pila, el estado de los registros de la CPU y una entrada en la lista de ejecución del planificador del sistema. Cada subproceso comparte todos los recursos del proceso.

Un proceso consta de uno o varios subprocesos y del código, los datos y otros recursos de un programa en memoria. Los recursos típicos de un programa son: archivos abiertos, semáforos y memoria asignada dinámicamente. Un programa se ejecuta cuando el planificador del sistema proporciona el control de la ejecución a uno de los subprocesos. El planificador determina qué subprocesos deben ejecutarse y cuándo deben hacerlo. Los subprocesos de baja prioridad quizá deban esperar a que los subprocesos de prioridad más alta completen sus tareas. En equipos con varios multiprocesadores, el planificador puede ejecutar subprocesos individuales en diferentes procesadores para equilibrar la carga de la CPU.

Cada subproceso de un proceso funciona de forma independiente. A menos que se facilite la visibilidad entre subprocesos, éstos se ejecutarán individualmente, sin tener noción de la existencia de otros subprocesos del proceso. No obstante, los subprocesos que comparten recursos comunes, deben coordinar su trabajo mediante el uso de semáforos u otros métodos de comunicación entre procesos. Para obtener más información sobre la sincronización de subprocesos, vea Crear un programa Win32 multiproceso.

Vea también

Conceptos

Subprocesamiento múltiple con C y Win32