¿Qué es un hilo?
Un hilo es una ruta de ejecución dentro de un proceso. Un proceso puede contener varios subprocesos.
¿Por qué multiproceso?
Un subproceso también se conoce como proceso ligero. La idea es lograr el paralelismo dividiendo un proceso en múltiples subprocesos. Por ejemplo, en un navegador, varias pestañas pueden ser hilos diferentes. MS Word usa varios subprocesos: un subproceso para formatear el texto, otro subproceso para procesar entradas, etc. Más ventajas de subprocesos múltiples se analizan a continuación
¿Proceso vs subproceso?
La principal diferencia es que los subprocesos dentro del mismo proceso se ejecutan en un espacio de memoria compartida, mientras que los procesos se ejecutan en espacios de memoria separados.
Los subprocesos no son independientes entre sí como lo son los procesos y, como resultado, los subprocesos comparten con otros subprocesos su sección de código, sección de datos y recursos del sistema operativo (como archivos abiertos y señales). Pero, como un proceso, un subproceso tiene su propio contador de programa (PC), conjunto de registros y espacio de pila.
Ventajas del subproceso sobre el proceso
1. Capacidad de respuesta: si el proceso se divide en varios subprocesos, si un subproceso completa su ejecución, su salida puede devolverse inmediatamente.
2. Cambio de contexto más rápido: el tiempo de cambio de contexto entre subprocesos es menor en comparación con el cambio de contexto de proceso. El cambio de contexto de proceso requiere más sobrecarga de la CPU.
3. Utilización efectiva del sistema multiprocesador: si tenemos múltiples subprocesos en un solo proceso, entonces podemos programar múltiples subprocesos en múltiples procesadores. Esto hará que la ejecución del proceso sea más rápida.
4. Uso compartido de recursos: los recursos como el código, los datos y los archivos se pueden compartir entre todos los subprocesos dentro de un proceso.
Nota: la pila y los registros no se pueden compartir entre los subprocesos. Cada hilo tiene su propia pila y registros.
5. Comunicación: la comunicación entre múltiples subprocesos es más fácil, ya que los subprocesos comparten un espacio de direcciones común. mientras estamos en proceso tenemos que seguir alguna técnica de comunicación específica para la comunicación entre dos procesos.
6. Rendimiento mejorado del sistema: si un proceso se divide en varios subprocesos y cada función de subproceso se considera como un trabajo, la cantidad de trabajos completados por unidad de tiempo aumenta, lo que aumenta el rendimiento del sistema.
Tipos de hilos
Hay dos tipos de hilos.
Subproceso de nivel de usuario Subproceso de
nivel de kernel
Consulte Subproceso de usuario frente a Subproceso de kernel para obtener más detalles.
A continuación se encuentran las preguntas de puerta de años anteriores sobre hilos:
https://www.geeksforgeeks.org/gate-gate-cs-2011-question-16/
https://www.geeksforgeeks.org/gate-gate-cs-2007- pregunta-17/
https://www.geeksforgeeks.org/gate-gate-cs-2014-set-1-question-30/
Referencia:
Multiproceso en C
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA