domingo, 14 de enero de 2024

¿Cuál es la diferencia entre Proceso(Process) e Hilo(Thread)?

 Pregunta popular en las entrevistas: ¿Cuál es la diferencia entre Proceso e Hilo?

Para entender mejor esta pregunta, veamos primero qué es un Programa. Un Programa es un archivo ejecutable que contiene un conjunto de instrucciones y se almacena pasivamente en el disco. Un programa puede tener múltiples procesos. Por ejemplo, el navegador Chrome crea un proceso diferente para cada pestaña.

Un Proceso significa que un programa está en ejecución. Cuando un programa se carga en la memoria y se activa, el programa se convierte en un proceso. El proceso requiere algunos recursos esenciales como registros, contador de programa y pila.

Un hiloes la unidad más pequeña de ejecución dentro de un proceso. Los siguientes ítems explican la relación entre programa, proceso e hilo.

1. El programa contiene un conjunto de instrucciones.
2. El programa se carga en memoria. Se convierte en uno o más procesos en ejecución.
3. Cuando se inicia un proceso, se le asignan memoria y recursos. Un proceso puede tener uno o varios subprocesos. Por ejemplo, en la aplicación Microsoft Word, un hilo puede encargarse de revisar la ortografía y otro de insertar el texto en el documento.

Figura 1. Programa, Proceso e hilo


Principales diferencias entre proceso e hilo:

  • Los procesos suelen ser independientes, mientras que los hilos existen como subconjuntos de un proceso.
  • Cada proceso tiene su propio espacio de memoria. Los hilos que pertenecen a un mismo proceso comparten la misma memoria.
  • Un proceso es una operación pesada. Tarda más tiempo en crearse y terminarse. 
  • El cambio de contexto es más caro entre procesos.
  • La comunicación entre hilos es más rápida para los hilos.



0 comments:

Publicar un comentario