Proceso
Aplicación que se ejecuta en memoria. Cada proceso tiene su propio espacio de memoria independiente y un proceso puede tener varios subprocesos. Por ejemplo, en un sistema Windows, un xx.exe en ejecución es un proceso.
Subproceso
Tarea de ejecución (unidad de control) en un proceso, responsable de la ejecución de programas en el proceso actual. Un proceso tiene al menos un subproceso, un proceso puede ejecutar varios subprocesos y varios subprocesos pueden compartir datos.
A diferencia de un proceso, varios subprocesos del mismo tipo comparten los recursos del área de método y montón del proceso, pero cada subproceso tiene su propio contador de programa, pila de máquina virtual y pila de método local, por lo que el sistema La carga de generar un subproceso o cambiar entre subprocesos es mucho menor que la de un proceso. Debido a esto, los subprocesos también se denominan procesos livianos.
Los hilos tienen muchas características de los procesos tradicionales, por eso también se les llama procesos livianos (Light-Weight Process) o elementos de proceso; y a los procesos tradicionales se les llama procesos pesados (Heavy-Weight Process). Equivalente a una tarea con un solo hilo. En un sistema operativo que introduce subprocesos, un proceso suele tener varios subprocesos, incluido al menos uno.
Diferencia fundamental: el proceso es la unidad básica de asignación de recursos del sistema operativo, mientras que el subproceso es la unidad básica de programación y ejecución de tareas del procesador.
Sobrecarga de recursos: cada proceso tiene código y datos independientes espacio (contexto del programa), el cambio entre programas tendrá una gran sobrecarga; los subprocesos pueden considerarse procesos livianos, el mismo tipo de subprocesos comparte el código y el espacio de datos, y cada subproceso tiene su propia pila de ejecución y contador de programa (PC) independientes. , la sobrecarga de cambiar entre subprocesos es pequeña.
Relación de inclusión: si hay varios subprocesos en un proceso, el proceso de ejecución no es una línea, sino varias líneas (subprocesos) completadas simultáneamente, el subproceso es parte del proceso, por lo que el subproceso También conocido como; proceso liviano o proceso liviano.
Asignación de memoria: los subprocesos en el mismo proceso comparten el espacio de direcciones y los recursos del proceso, y los espacios de direcciones y los recursos entre procesos son independientes entre sí
Relación de influencia: uno después un proceso falla, no afectará a otros procesos en modo protegido, pero si un subproceso falla, todo el proceso morirá. Por tanto, el multiproceso es más robusto que el multiproceso.
Proceso de ejecución: Cada proceso independiente tiene un punto de entrada para la ejecución del programa, una secuencia de ejecución secuencial y una salida del programa. Sin embargo, los subprocesos no se pueden ejecutar de forma independiente y deben existir en la aplicación. La aplicación proporciona control de ejecución de múltiples subprocesos y ambos se pueden ejecutar al mismo tiempo.