Voy a utilizar una gran cantidad de texto del libro Conceptos de sistemas operativos de ABRAHAM SILBERSCHATZ, PETER BAER GALVIN y GREG GAGNE junto con mi propia comprensión de las cosas.
Proceso
Cualquier aplicación reside en la computadora en forma de texto (o código).
Hacemos hincapié en que un programa en sí mismo no es un proceso. Un programa es una entidad pasiva, como un archivo que contiene una lista de instrucciones almacenadas en el disco (a menudo llamado archivo ejecutable).
Cuando iniciamos una aplicación, creamos una instancia de ejecución. Esta instancia de ejecución se llama proceso. EDITAR: (Según mi interpretación, análoga a una clase y una instancia de una clase, la instancia de una clase es un proceso).
Un ejemplo de procesos es el de Google Chrome. Cuando iniciamos Google Chrome, se generan 3 procesos:
• El proceso del navegador es responsable de administrar la interfaz de usuario, así como el disco y la red de E / S. Se crea un nuevo proceso de navegador cuando se inicia Chrome. Solo se crea un proceso de navegador.
• Renderer procesos contienen la lógica para la prestación de páginas web. Por lo tanto, contienen la lógica para manejar HTML, Javascript, imágenes, etc. Como regla general, se crea un nuevo proceso de representación para cada sitio web abierto en una nueva pestaña, por lo que varios procesos de representación pueden estar activos al mismo tiempo.
• Un plug-in se crea proceso para cada tipo de plug-in (como Flash o QuickTime) en uso. Los procesos del complemento contienen el código para el complemento, así como un código adicional que permite que el complemento se comunique con los procesos de representación asociados y el proceso del navegador.
Hilo
Para responder esto, creo que primero debes saber qué es un procesador. Un procesador es la pieza de hardware que realmente realiza los cálculos. EDITAR: (Cálculos como agregar dos números, ordenar una matriz, básicamente ejecutar el código que se ha escrito)
Ahora pasando a la definición de un hilo.
Un hilo es una unidad básica de utilización de la CPU ; comprende una ID de subproceso, un contador de programa, un conjunto de registros y una pila.
EDITAR: Definición de un hilo del sitio web de Intel:
Un subproceso, o subproceso de ejecución, es un término de software para la secuencia ordenada básica de instrucciones que puede pasar o procesarse por un solo núcleo de CPU.
Entonces, si el proceso Renderer de la aplicación Chrome clasifica una serie de números, la clasificación se realizará en un hilo / hilo de ejecución. (La gramática con respecto a los hilos me parece confusa)
Mi interpretación de las cosas
Un proceso es una instancia de ejecución. Los subprocesos son los trabajadores reales que realizan los cálculos a través del acceso a la CPU. Cuando se ejecutan varios subprocesos para un proceso, el proceso proporciona memoria común.
EDITAR:
Otra información que encontré útil para dar más contexto
Todas las computadoras modernas tienen más de un hilo. El número de hilos en una computadora depende del número de núcleos en una computadora.
Computación concurrente :
De Wikipedia:
La computación concurrente es una forma de computación en la que se ejecutan varias computaciones durante períodos de tiempo superpuestos, concurrentemente, en lugar de secuencialmente (una completa antes de que comience la siguiente). Esta es una propiedad de un sistema (puede ser un programa individual, una computadora o una red) y hay un punto de ejecución separado o "hilo de control" para cada cálculo ("proceso").
Entonces, podría escribir un programa que calcule la suma de 4 números:
(1 + 3) + (4 + 5)
En el programa para calcular esta suma (que será un proceso que se ejecuta en un hilo de ejecución), puedo bifurcar otro proceso que puede ejecutarse en un hilo diferente para calcular (4 + 5) y devolver el resultado al proceso original, mientras que el El proceso original calcula la suma de (1 + 3).