Différence entre le processus et le fil

La principale différence entre processus et thread est que processus est un programme en cours d'exécution alors qu'un thread est une petite unité d'exécution dans un processus.

Un programme est un ensemble d'instructions pour effectuer une tâche donnée. Un processus est un programme en cours d'exécution. Ce n'est pas un programme mais c'est plus que cela. En d'autres termes, un programme est une entité passive alors qu'un processus est une entité active. Lorsque le programme est exécuté, il devient un processus. D'autre part, un thread est une petite unité d'exécution appartenant à un processus. Les processus sont lourds mais les threads sont légers. Par conséquent, un seul processus est divisé en plusieurs threads pour plus d'efficacité..

Zones clés couvertes

1. Quel est le processus
     - Définition, fonctionnalité
2. Quel est le fil
     - Définition, fonctionnalité
3. Relation entre le processus et le fil
     - Schéma d'association
4. Différence entre le processus et le fil
     - Comparaison des différences clés

Mots clés

Processus, fil, système d'exploitation

Qu'est-ce qu'un processus??

Un processus est un programme en cours d'exécution. Lorsque le programmeur écrit un programme et l'exécute, ce programme devient un processus. Il effectue les tâches selon les instructions du programme.

Lorsqu'un processus est chargé en mémoire, il est divisé en quatre segments. Ils sont la pile, tas, texte et données. Les piles stockent les données temporaires telles que les paramètres de fonction et les variables locales. Le segment alloue dynamiquement de la mémoire à un processus au moment de l'exécution. La section texte contient le contenu des registres du processeur et la valeur du compteur de programme. La section de données contient les variables statiques et globales. 

Un processus passe par plusieurs états. Ils sont comme suit.

Figure 2: États du processus

Nouveau - Le processus crée au nouvel état

Prêt - A l'état prêt, le processus attend d'être affecté au processeur pour pouvoir s'exécuter. Un processus peut arriver à cet état après l'état de démarrage. De plus, lorsqu'un ordonnanceur assigne la CPU à un processus alors qu'un processus différent est déjà en cours d'exécution, ce processus déjà en cours d'exécution passe à l'état prêt..

Fonctionnement - À l’état d’exécution, le processus est attribué à un processeur qui exécute les instructions..

Attendre - L'état d'attente indique que le processus attend qu'un événement se produise; par exemple, attendre qu'un fichier soit disponible ou attendre la fin du processus d'E / S.

Résiliation - L'état de fin indique que l'exécution du processus est terminée. Maintenant, il est possible de le supprimer de la mémoire principale.

De plus, un système d'exploitation gère un bloc de contrôle de processus (PCB) pour chaque processus. Il contient des informations sur le processus, telles que l'ID de processus (PID), le compteur de programme, les registres de la CPU, les informations de planification de la CPU, les informations de gestion de la mémoire et les informations d'état d'E / S. Le PCB est supprimé à la fin du processus.

Quel est le fil

Un thread est une unité d'exécution et contient un compteur de programme, une pile et un ensemble de registres. C'est un processus léger. Un thread ne peut exister en dehors d'un processus et chaque thread appartient à un processus. Il existe deux types de threads: les threads utilisateur et les threads du noyau. Les threads utilisateur sont des threads gérés par l'utilisateur tandis que les threads du noyau sont pris en charge et gérés par le noyau..

Figure 2: Fil et processus

Dans un système informatique, il n'est pas efficace de créer des processus pour chaque tâche car cela nécessite plus de ressources. Par conséquent, un processus est divisé en plusieurs sous-processus et chaque sous-processus exécute une sous-tâche. Ce sous-processus est une unité unique dans le processus et s'appelle un thread. La division d'un processus en plusieurs threads et ces threads s'exécutant en parallèle s'appelle multithreading. Par conséquent, les threads améliorent les performances de l'application grâce au parallélisme.

Les threads fournissent principalement la concurrence dans un processus. De plus, les threads améliorent l'utilisation des architectures multiprocesseurs pour plus d'efficacité.

Relation entre le processus et le fil

  • Un fil est un processus léger.

Différence entre le processus et le fil

Définition

Un processus est une instance d'un programme informatique en cours d'exécution. Un thread est un composant d'un processus qui est la plus petite unité d'exécution.

Type

Un processus est lourd alors qu'un fil est léger.

Commutation

Une commutation de processus nécessite une interaction avec le système d'exploitation. En revanche, la commutation de threads nécessite désormais une interaction avec le système d'exploitation.

Espace mémoire

Chaque processus a son propre espace mémoire. Un processus ne partage pas de mémoire avec d'autres processus. Les threads utilisent la mémoire du processus auquel ils appartiennent. Ainsi, les threads partagent la mémoire avec d'autres threads du même processus.

Besoins en ressources

Un processus nécessite plus de ressources. Un thread nécessite un minimum de ressources.

Création

Il est difficile de créer un processus. Il est plus facile de créer un fil.

la communication

La communication entre processus est lente car chaque processus a une adresse mémoire différente. Au contraire, la communication entre threads est rapide car les threads partagent la même adresse mémoire du processus auquel ils appartiennent..

Dépendance

Dans un environnement multitraitement, chaque processus s'exécute indépendamment. Mais un thread peut lire, écrire ou modifier les données d'un autre thread.

Conclusion

La différence entre processus et thread est que le processus est un programme en cours d'exécution alors que le thread est une petite unité d'exécution dans un processus. La création de processus est difficile mais la création de fil est économique. De plus, les processus consomment beaucoup de ressources tandis que les threads requièrent un minimum de ressources.

Référence:

1. «Qu'est-ce qu'un processus?», Opérateurs logiques et relationnels Python | Studytonight, disponible ici.
2. «Que sont les threads?», Opérateurs logiques et relationnels Python | Studytonight, disponible ici.

Courtoisie d'image:

1. “Processus multithread” par I, Cburnett (CC BY-SA 3.0) via Commons Wikimedia