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 ligeros. Por lo tanto, un solo proceso se divide en múltiples hilos para la eficiencia.
1. Que es proceso
- Definición, Funcionalidad
2. Que es hilo
- Definición, Funcionalidad
3. Relación entre el proceso y el hilo
- Esquema de asociación
4. Diferencia entre el proceso y el hilo
- Comparación de diferencias clave
Proceso, Rosca, Sistema Operativo
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 a las instrucciones del programa..
Cuando un proceso se carga en la memoria, se divide en cuatro segmentos. Son la pila, el montón, el texto y los datos. Las pilas almacenan los datos temporales, como los parámetros de función y las variables locales. El montón asigna dinámicamente memoria 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á a la espera de 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, entonces ese proceso que ya se está ejecutando pasa al estado listo.
Corriendo - 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 se complete IO.
Terminando - El estado de terminación indica que el proceso ha finalizado la ejecución. Ahora, es posible eliminarlo de la memoria principal..
Además, un sistema operativo mantiene un Bloque de Control de Proceso (PCB) para cada proceso. Contiene información sobre el proceso, como ID de proceso (PID), contador de programas, registros de CPU, información de programación de CPU, información de administración de memoria e información de estado de IO. PCB se elimina cuando el proceso termina.
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 compatibles y administrados por el kernel.
Figura 2: Hilo y Proceso
En un sistema informático, no es eficaz 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 llama subproceso. La división de un proceso en varios subprocesos y estos subprocesos que se ejecutan en paralelo se denomina multithreading. 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 la eficiencia.
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..
Un proceso es pesado, mientras que un hilo es ligero.
Un cambio de proceso requiere interactuar con el sistema operativo. Por el contrario, la conmutación de hilos ahora requiere interactuar con el sistema operativo.
Cada proceso tiene su propio espacio de memoria. Un proceso no comparte memoria con otros procesos. Los hilos utilizan la memoria del proceso al que pertenecen. Así, los hilos comparten la memoria con otros hilos del mismo proceso..
Un proceso requiere más recursos. Un hilo requiere recursos mínimos.
Es difícil crear un proceso. Es más fácil crear un hilo..
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.
En un entorno de multiprocesamiento, cada proceso se ejecuta de forma independiente. Pero un hilo puede leer, escribir o modificar datos de otro hilo..
La diferencia entre el proceso y el 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 hilos es económica. Además, los procesos requieren muchos recursos, mientras que los hilos requieren recursos mínimos..
1. “¿Qué es un proceso?” Operadores lógicos y relacionales de Python | Studytonight, disponible aquí.
2. “¿Qué son los hilos?” Operadores lógicos y relacionales de Python | Studytonight, disponible aquí.
1. "Proceso multiproceso" Por I, Cburnett (CC BY-SA 3.0) a través de Commons Wikimedia