¿Cuál es la diferencia entre hilo, proceso y programa?


Mejor respuesta

Programa , Proceso y Subprocesos son tres conceptos básicos de los sistemas operativos con los que todo ingeniero informático debe estar familiarizado. . Aquí, explicaré de qué se trata cada uno de ellos y en qué se diferencian entre sí.

¿Qué es un programa?

El programa es un archivo ejecutable que contiene el conjunto de instrucciones escritas para realizar un trabajo específico en su computadora. Por ejemplo, notepad.exe es un archivo ejecutable que contiene el conjunto de instrucciones que nos ayudan a editar e imprimir los archivos de texto.

Programas no se almacenan en la memoria principal de su computadora. Se almacenan en un disco o en una memoria secundaria de su computadora. Son leídos en la memoria primaria y ejecutados por el kernel. A veces, un programa se denomina entidad pasiva ya que reside en una memoria secundaria.

¿Qué es un proceso?

El proceso es una instancia en ejecución de un programa. Por ejemplo, cuando hace doble clic en el icono de un bloc de notas en su computadora, se inicia un proceso que ejecutará el programa del bloc de notas.

Un proceso a veces se denomina entidad activa , ya que reside en la memoria principal y abandona la memoria si se reinicia el sistema. Varios procesos pueden estar relacionados con el mismo programa. Por ejemplo, puede ejecutar varias instancias de un programa de bloc de notas. Cada instancia se denomina proceso.

¿Qué es un hilo? ?

Thread es la unidad ejecutable más pequeña de un proceso. Por ejemplo, cuando ejecuta un programa de bloc de notas, el sistema operativo crea un proceso e inicia la ejecución del hilo principal de ese proceso.

Un proceso puede tener varios hilos. Cada hilo tendrá su propia tarea y su propia ruta de ejecución en un proceso. Por ejemplo, en un programa de bloc de notas, un hilo tomará las entradas del usuario y otro hilo imprimirá un documento.

Todos los hilos del mismo proceso comparten la memoria de ese proceso. Como los subprocesos del mismo proceso comparten la misma memoria, la comunicación entre los subprocesos es rápida.

Resumiendo…

Espero que a estas alturas ya tengas claras las diferencias entre programa, proceso e hilo y también hayas descubierto la relación entre ellos … Si no, averígualo a continuación.

El programa es un superconjunto de procesos, mientras que, El proceso es un superconjunto de hilos.

¡¡¡Disfruta aprendiendo !!!

Imagen cortesía: www.google.com

Responder

  1. Programa : El programa no es más que el conjunto de todas las instrucciones que requieren para llevar a cabo algún trabajo específico. Antes de entrar en ejecución deben convertirse en códigos binarios que deben ser entendidos por loader os OS. Generalmente en Windows es como un archivo EXE que se almacena en Portable Executable (PE) Formatear en la memoria secundaria Como en el disco duro. Un proceso generalmente se define como una instancia de un Programa en ejecución y consta de dos componentes: 1) Un objeto del kernel que el sistema operativo usa para administrar el proceso. El objeto del kernel también es donde el sistema guarda información estadística sobre el proceso. 2) Un espacio de direcciones que contiene todo el código y los datos del módulo ejecutable o DLL. También contiene asignaciones de memoria dinámica, como pilas de subprocesos y asignaciones de montones. Los procesos son inertes. Para que un proceso logre algo, debe tener un subproceso que se ejecuta en su contexto; este hilo es responsable de ejecutar el código contenido en el espacio de direcciones del proceso. De hecho, un solo proceso puede contener varios subprocesos, todos ellos ejecutando código «simultáneamente» en el espacio de direcciones del proceso. Para hacer esto, cada subproceso tiene su propio conjunto de registros de CPU y su propia pila. Cada proceso tiene al menos un hilo que ejecuta código en el espacio de direcciones del proceso. Si no hubiera subprocesos que ejecuten código en el espacio de direcciones del proceso, no habría razón para que el proceso continúe existiendo y el sistema destruiría automáticamente el proceso y su espacio de direcciones.
  2. Proceso : cada proceso proporciona los recursos necesarios para ejecutar un programa. Un proceso tiene un espacio de direcciones virtual, código ejecutable, identificadores abiertos para los objetos del sistema, un contexto de seguridad, un identificador de proceso, variables de entorno, una clase de prioridad, tamaños mínimos y máximos del conjunto de trabajo y al menos un subproceso de ejecución. Cada proceso se inicia con un solo subproceso, a menudo llamado subproceso principal, pero puede crear subprocesos adicionales a partir de cualquiera de sus subprocesos .
  3. Subproceso : Un subproceso es una entidad dentro de un proceso que puede programarse para su ejecución. Todos los subprocesos de un proceso comparten su espacio de direcciones virtuales y los recursos del sistema. Además, cada hilo mantiene controladores de excepciones, una prioridad de programación, almacenamiento local de hilo, un identificador de hilo único y un conjunto de estructuras que el sistema utilizará para guardar el contexto del hilo hasta que se programe. El contexto del hilo incluye el conjunto de registros de máquina del hilo, la pila del núcleo, un bloque de entorno del hilo y una pila de usuario en el espacio de direcciones del proceso del hilo. Los subprocesos también pueden tener su propio contexto de seguridad, que se puede utilizar para hacerse pasar por clientes.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *