Threads des processus
100%

Utilisation des Processus · Leçon 3

Threads des processus

Découvrez comment les threads Linux partagent les ressources d’un processus et comment les examiner avec ps.

Un thread est un flux d’exécution planifié au sein d’un processus. Chaque processus en cours d’exécution possède au moins un thread, et un processus multithread possède plusieurs flux qui peuvent progresser simultanément.

Processus et threads

Les threads d’un même processus partagent des ressources telles que l’espace d’adressage virtuel et les descripteurs de fichiers ouverts. Chaque thread conserve néanmoins son propre état d’exécution, notamment ses registres et sa pile. Le partage rend la communication efficace, mais signifie aussi qu’une modification non synchronisée par un thread peut affecter les autres.

Les processus distincts possèdent normalement des espaces d’adressage distincts et communiquent au moyen de mécanismes explicites de communication interprocessus. Aucune des deux conceptions n’est automatiquement plus rapide ou plus sûre ; la charge de travail et l’implémentation déterminent le compromis.

Quelle ressource les threads d’un même processus partagent-ils normalement ?

Identifiants des threads

Linux représente chaque thread comme une tâche planifiable dotée de son propre identifiant de thread. L’identifiant du chef du groupe de threads est couramment présenté comme l’identifiant du processus, tandis que tous les membres partagent un identifiant de groupe de threads. Les outils emploient des étiquettes telles que PID, TID, LWP et SPID ; vérifiez la définition de leurs champs plutôt que de supposer que chaque étiquette possède la même signification.

Qu’est-ce que chaque thread conserve indépendamment ?

Répertorier les threads avec ps

Employez des champs de sortie explicites pour éviter les présentations par défaut ambiguës :

$ ps -eLo pid,tid,psr,stat,comm

Dans ps de procps, -L affiche les threads et -e sélectionne tous les processus. pid identifie le groupe de threads, tid un thread particulier, psr le processeur sur lequel il s’est exécuté en dernier et stat son état. Pour examiner un processus :

$ ps -L -p 1234 -o pid,tid,stat,pcpu,comm

Les listes de threads sont des instantanés. Un thread peut se terminer ou changer d’état immédiatement après.

Quelle commande répertorie les threads appartenant au PID 1234 avec des champs explicites ?

Interpréter l’activité des threads

Une forte utilisation du processeur par un thread peut être masquée par une moyenne calculée pour tout le processus. Associez les échantillons d’utilisation par thread aux journaux de l’application, aux traces de pile et aux outils de profilage. N’attachez pas de débogueur et n’envoyez pas de signal aux tâches de production sans comprendre les conséquences sur les pauses, les permissions et le service.

Pourquoi une liste de threads produite par ps ne doit-elle pas être considérée comme un état permanent ?

Leçon terminée

Vous avez terminé Threads des processus

Vous savez maintenant distinguer les ressources d’un processus de l’état d’exécution propre à chaque thread.

  • Reconnaître que chaque processus possède au moins un thread.

  • Identifier les ressources partagées par les threads d’un même processus.

  • Répertorier explicitement les identifiants des processus et des threads avec ps -L.

  • Considérer la sortie des threads comme un instantané et la mettre en relation avec d’autres indices.

Conservez votre progression

Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.

Créer un compte gratuit
Leçon Suivante
Retour à Utilisation des Processus