Je vais utiliser beaucoup de texte du livre Operating Systems Concepts par ABRAHAM SILBERSCHATZ, PETER BAER GALVIN et GREG GAGNE ainsi que ma propre compréhension des choses.
Processus
Toute application réside dans l'ordinateur sous forme de texte (ou code).
Nous soulignons qu'un programme en soi n'est pas un processus. Un programme est une entité passive, comme un fichier contenant une liste d'instructions stockées sur le disque (souvent appelé fichier exécutable).
Lorsque nous démarrons une application, nous créons une instance d'exécution. Cette instance d'exécution est appelée un processus. EDIT: (Selon mon interprétation, analogue à une classe et une instance d'une classe, l'instance d'une classe étant un processus.)
Un exemple de processus est celui de Google Chrome. Lorsque nous démarrons Google Chrome, 3 processus sont générés:
• Le navigateur processus du est responsable de la gestion de l'interface utilisateur ainsi que des E / S disque et réseau. Un nouveau processus de navigateur est créé au démarrage de Chrome. Un seul processus de navigateur est créé.
• Rendu processus contiennent une logique pour le rendu des pages web. Ainsi, ils contiennent la logique de gestion du HTML, du Javascript, des images, etc. En règle générale, un nouveau processus de rendu est créé pour chaque site Web ouvert dans un nouvel onglet, de sorte que plusieurs processus de rendu peuvent être actifs en même temps.
• Un processus de plug-in est créé pour chaque type de plug-in (tel que Flash ou QuickTime) utilisé. Les processus de plug-in contiennent le code du plug-in ainsi que du code supplémentaire qui permet au plug-in de communiquer avec les processus de rendu associés et le processus du navigateur.
Fil
Pour répondre à cela, je pense que vous devez d'abord savoir ce qu'est un processeur. Un processeur est la pièce matérielle qui effectue réellement les calculs. EDIT: (Les calculs comme l'ajout de deux nombres, le tri d'un tableau, essentiellement l'exécution du code qui a été écrit)
Passons maintenant à la définition d'un fil.
Un thread est une unité de base d'utilisation du CPU ; il comprend un ID de thread, un compteur de programme, un ensemble de registres et une pile.
EDIT: Définition d'un fil du site Internet d'Intel:
Un thread, ou thread d'exécution, est un terme logiciel pour la séquence ordonnée de base d'instructions qui peut être transmise ou traitée par un seul cœur de processeur.
Donc, si le processus de rendu de l'application Chrome trie un tableau de nombres, le tri aura lieu sur un thread / thread d'exécution. (La grammaire concernant les fils me semble déroutante)
Mon interprétation des choses
Un processus est une instance d'exécution. Les threads sont les travailleurs réels qui effectuent les calculs via l'accès au processeur. Lorsqu'il existe plusieurs threads en cours d'exécution pour un processus, le processus fournit une mémoire commune.
EDIT:
Autres informations que j'ai trouvées utiles pour donner plus de contexte
Tous les ordinateurs modernes ont plus d'un threads. Le nombre de threads dans un ordinateur dépend du nombre de cœurs dans un ordinateur.
Calcul simultané :
De Wikipédia:
Le calcul simultané est une forme de calcul dans laquelle plusieurs calculs sont exécutés pendant des périodes qui se chevauchent - simultanément - au lieu de séquentiellement (un se terminant avant les prochains démarrages). Il s'agit d'une propriété d'un système - il peut s'agir d'un programme individuel, d'un ordinateur ou d'un réseau - et il existe un point d'exécution ou un «fil de contrôle» distinct pour chaque calcul («processus»).
Donc, je pourrais écrire un programme qui calcule la somme de 4 nombres:
(1 + 3) + (4 + 5)
Dans le programme pour calculer cette somme (qui sera un processus exécuté sur un thread d'exécution), je peux bifurquer un autre processus qui peut s'exécuter sur un autre thread pour calculer (4 + 5) et retourner le résultat au processus d'origine, tandis que le le processus d'origine calcule la somme de (1 + 3).