Diferencia entre proceso y subproceso
La principal diferencia entre el proceso y el hilo es que proceso es un programa en ejecución, mientras que un subproceso es una pequeña unidad de ejecución en un proceso.
Un programa es un conjunto de instrucciones para realizar una determinada tarea. Un proceso es un programa en ejecución. No es un programa pero es más que eso. En otras palabras, un programa es una entidad pasiva mientras que un proceso es una entidad activa. Cuando el programa se ejecuta, se convierte en un proceso. Por otro lado, un hilo es una pequeña unidad de ejecución que pertenece a un proceso. Los procesos son pesados pero los hilos son livianos. Por lo tanto, un solo proceso se divide en múltiples subprocesos para mayor eficiencia.
¿Qué es un proceso?
Un proceso es un programa en ejecución. Cuando el programador escribe un programa y lo ejecuta, ese programa se convierte en un proceso. Realiza las tareas de acuerdo con las instrucciones del programa.
Cuando un proceso se carga en la memoria, se divide aún más en cuatro segmentos. Son la pila, el montón, el texto y los datos. Las pilas almacenan los datos temporales, como parámetros de funciones y variables locales. El montón asigna memoria dinámicamente a un proceso en tiempo de ejecución. La sección de texto contiene el contenido de los registros del procesador y el valor del contador del programa. La sección de datos contiene las variables estáticas y globales.
Un proceso pasa por varios estados. Son los siguientes.

Figura 2: Estados del proceso
Nuevo – El proceso crea en el nuevo estado
Listo – En el estado listo, el proceso está esperando a ser asignado al procesador para que pueda ejecutarse. Un proceso puede llegar a este estado después del estado de inicio. Además, cuando un programador asigna la CPU a un proceso mientras un proceso diferente ya se está ejecutando, ese proceso que ya se está ejecutando pasa al estado listo.
Correr – En el estado de ejecución, el proceso se asigna a un procesador y ejecuta las instrucciones.
Esperando – El estado de espera refleja que el proceso está esperando que ocurra algún evento; por ejemplo, esperar hasta que un archivo esté disponible o esperar hasta que finalice la E/S.
terminación – El estado de terminación indica que el proceso ha terminado de ejecutarse. Ahora, es posible eliminarlo de la memoria principal.
Además, un sistema operativo mantiene un bloque de control de procesos (PCB) para cada proceso. Contiene información sobre el proceso, como ID de proceso (PID), contador de programa, registros de CPU, información de programación de CPU, información de gestión de memoria e información de estado de E/S. El PCB se elimina cuando finaliza el proceso.
que es hilo
Un hilo es una unidad de ejecución y contiene un contador de programa, una pila y un conjunto de registros. Es un proceso ligero. Un hilo no puede existir fuera de un proceso y cada hilo pertenece a un proceso. Hay dos tipos de subprocesos: subprocesos de usuario y subprocesos de núcleo. Los subprocesos de usuario son subprocesos administrados por el usuario, mientras que los subprocesos del kernel son admitidos y administrados por el kernel.

Figura 2: Hilo y Proceso
En un sistema informático, no es efectivo crear procesos para cada tarea porque requiere más recursos. Por lo tanto, un proceso se divide en múltiples subprocesos y cada subproceso ejecuta una subtarea. Este subproceso es una sola unidad en el proceso y se denomina subproceso. Dividir un proceso en múltiples subprocesos y estos subprocesos ejecutándose en paralelo se denomina subprocesamiento múltiple. Por lo tanto, los hilos mejoran el rendimiento de la aplicación a través del paralelismo.
Principalmente, los hilos proporcionan concurrencia dentro de un proceso. Además, los subprocesos mejoran la utilización en arquitecturas multiprocesador para lograr eficiencia.
Relación entre proceso y subproceso
- Un hilo es un proceso ligero.
Diferencia entre proceso y subproceso
Definición
Un proceso es una instancia de un programa de computadora que se está ejecutando. Un hilo es un componente de un proceso que es la unidad de ejecución más pequeña.
Escribe
Un proceso es pesado mientras que un hilo es liviano.
Traspuesta
Un cambio de proceso requiere interactuar con el sistema operativo. Por el contrario, el cambio de subprocesos ahora requiere interactuar con el sistema operativo.
Espacio de memoria
Cada proceso tiene su propio espacio de memoria. Un proceso no comparte memoria con otros procesos. Los hilos usan la memoria del proceso al que pertenecen. Así, los hilos comparten la memoria con otros hilos del mismo proceso.
Requisito de recursos
Un proceso requiere más recursos. Un hilo requiere recursos mínimos.
Creación
Es difícil crear un proceso. Es más fácil crear un hilo.
Comunicación
La comunicación entre procesos es lenta porque cada proceso tiene una dirección de memoria diferente. Por el contrario, la comunicación entre subprocesos es rápida porque los subprocesos comparten la misma dirección de memoria del proceso al que pertenecen.
Dependencia
En un entorno de multiprocesamiento, cada proceso se ejecuta de forma independiente. Pero un hilo puede leer, escribir o modificar datos de otro hilo.
Conclusión
La diferencia entre proceso y subproceso es que el proceso es un programa en ejecución, mientras que el subproceso es una pequeña unidad de ejecución en un proceso. La creación de procesos es difícil, pero la creación de subprocesos es económica. Además, los procesos consumen muchos recursos, mientras que los subprocesos requieren recursos mínimos.
Referencia:
1. “¿Qué es un proceso?” Operadores relacionales y lógicos de Python | estudiar esta noche, Disponible aquí.
2. "¿Qué son los hilos?" Operadores relacionales y lógicos de Python | estudiar esta noche, Disponible aquí.
Imagen de cortesía:
1. "Proceso de subprocesos múltiples" Por I, Cburnett (CC BY-SA 3.0) a través de Commons Wikimedia
Si quieres conocer otros artículos parecidos a Diferencia entre proceso y subproceso puedes visitar la categoría ESO.