Un autre point important qui différencie les processus et les threads est que les processus sont isolés les uns des autres alors que les threads partagent la mémoire ou les ressources les uns avec les autres.
Tableau de comparaison
Base de comparaison | Processus | Fil |
---|---|---|
De base | Programme en cours d'exécution. | Processus léger ou une partie de celui-ci. |
Partage de mémoire | Complètement isolé et ne partage pas de mémoire. | Partage la mémoire les uns avec les autres. |
La consommation de ressources | Plus | Moins |
Efficacité | Moins efficace par rapport au processus dans le contexte de la communication. | Améliore l'efficacité dans le contexte de la communication. |
Temps requis pour la création | Plus | Moins |
Temps de commutation de contexte | Prend plus de temps. | Consomme moins de temps. |
Résiliation incertaine | Cela entraîne une perte de processus. | Un fil peut être récupéré. |
Temps requis pour la résiliation | Plus | Moins |
Définition de processus
Le processus est l'exécution d'un programme et exécute les actions pertinentes spécifiées dans un programme, ou bien c'est une unité d'exécution dans laquelle un programme est exécuté. Le système d'exploitation crée, planifie et met fin aux processus pour l'utilisation de la CPU. Les autres processus créés par le processus principal sont appelés processus enfants.
Les opérations de processus contrôlées à l'aide de PCB (Process Control Block) peuvent être considérées comme le cerveau du processus. Elles contiennent toutes les informations cruciales relatives à un processus, telles que l'identifiant, la priorité, l'état, le PWS et le contenu du processus. .
PCB est également une structure de données basée sur le noyau qui utilise les trois types de fonctions qui sont la planification, la distribution et la sauvegarde du contexte.
- Ordonnancement - C'est une méthode de sélection de la séquence du processus en mots simples qui choisit le processus qui doit être exécuté en premier dans la CPU.
- Dispatching - Il configure un environnement pour que le processus soit exécuté.
- Sauvegarde de contexte - Cette fonction enregistre les informations relatives à un processus lorsqu'il est repris ou bloqué.
Certains états sont inclus dans le cycle de vie d'un processus, tels que prêt, en cours d'exécution, bloqué et arrêté. Les états de processus sont utilisés pour garder la trace de l'activité du processus à un instant.
Du point de vue du programmeur, les processus sont le moyen d’atteindre l’exécution simultanée d’un programme. Le processus principal d'un programme simultané crée un processus enfant. Le processus principal et le processus enfant doivent interagir avec chacun pour atteindre un objectif commun.
Les opérations d'entrelacement des processus augmentent la vitesse de calcul lorsque les opérations d'E / S d'un processus chevauchent une activité de calcul d'un autre processus.
Propriétés d'un processus:
- La création de chaque processus inclut les appels système pour chaque processus séparément.
- Un processus est une entité d'exécution isolée et ne partage pas de données ni d'informations.
- Les processus utilisent un mécanisme de communication IPC (communication entre processus) qui augmente considérablement le nombre d'appels système.
- La gestion des processus consomme plus d'appels système.
- Chaque processus a sa propre pile et sa propre mémoire, ses instructions, ses données et sa carte mémoire.
Définition de fil
Le fil est une exécution de programme qui utilise des ressources de processus pour accomplir la tâche. Tous les threads d'un même programme sont logiquement contenus dans un processus. Le noyau alloue une pile et un bloc de contrôle de thread (TCB) à chaque thread. Le système d'exploitation enregistre uniquement le pointeur de pile et l'état de la CPU au moment de la commutation entre les threads du même processus.
Les threads sont implémentés de trois manières différentes; ce sont des threads au niveau du noyau, des threads au niveau utilisateur, des threads hybrides. Les threads peuvent avoir trois états en cours d'exécution, prêts et bloqués; il ne comprend que l'état de calcul et non l'allocation de ressources et l'état de communication, ce qui réduit le temps système nécessaire à la commutation. Il améliore la concurrence (parallélisme) et par conséquent la vitesse augmente également.
Le multithreading vient également avec des démérites. Plusieurs threads ne créent pas de complexité, mais leur interaction en crée.
Un thread doit avoir une propriété prioritaire lorsque plusieurs threads sont actifs. Le temps d'exécution correspondant aux autres threads actifs dans le même processus est spécifié par la priorité du thread.
Propriétés d'un fil:
- Un seul appel système peut créer plusieurs threads (processus Lightweight).
- Les threads partagent des données et des informations.
- Threads partage les instructions, les régions globales et les segments de mémoire, mais possède sa propre pile et ses propres registres.
- La gestion des threads ne nécessite pas ou moins d'appels système, car la communication entre les threads peut être réalisée à l'aide de la mémoire partagée.
- La propriété d’isolation du processus augmente ses frais généraux en termes de consommation de ressources.
Différences clés entre processus et thread
- Tous les threads d'un programme sont logiquement contenus dans un processus.
- Un processus est lourd, mais un fil est léger.
- Un programme est une unité d'exécution isolée alors que le thread n'est pas isolé et partage la mémoire.
- Un fil ne peut avoir une existence individuelle; il est attaché à un processus. D'autre part, un processus peut exister individuellement.
- Au moment de l'expiration d'un thread, sa pile associée peut être récupérée car chaque thread a sa propre pile. En revanche, si un processus meurt, tous les threads meurent, processus compris.
Conclusion
Les processus sont utilisés pour exécuter les programmes de manière simultanée et séquentielle. Tandis qu'un thread est une unité d'exécution de programme qui utilise l'environnement du processus lorsque plusieurs threads utilisent l'environnement du même processus, ils ont besoin de partager son code, ses données et ses ressources. Le système d'exploitation utilise ce fait pour réduire les frais généraux et améliorer le calcul.