Détails des processus
100%

Processus · Leçon 3

Détails des processus

Découvrez quels états et ressources distinguent un processus en cours d’exécution d’un programme enregistré sur disque.

Un programme est du code exécutable et des données enregistrés dans un fichier. Un processus est un contexte d’exécution actif : il comprend du code mappé, de la mémoire, des identifiants, des descripteurs de fichiers ouverts, l’état des signaux, des informations de planification et un ou plusieurs threads. Un même programme peut posséder de nombreuses instances de processus indépendantes.

Instances de programme et PID

Par exemple, lancez cat sans opérande dans deux terminaux. Chaque instance attend une entrée et possède son propre identifiant de processus :

$ pgrep -a cat
18420 cat
18457 cat

Les deux processus exécutent le même programme, mais peuvent posséder des flux d’entrée, un contenu mémoire, des identifiants, des répertoires de travail et des durées de vie différents. Un PID désigne un processus actif à un instant donné et peut être réutilisé après la fin de ce processus.

Qu’est-ce qui distingue deux instances en cours d’exécution du même programme ?

État suivi par le noyau

Le noyau conserve les informations nécessaires à la planification et au contrôle de chaque processus, notamment :

  • les identifiants du processus et de son parent ;
  • les identifiants utilisateur et groupe ;
  • les mappages de mémoire virtuelle ;
  • les descripteurs de fichiers ouverts et le répertoire actuel ;
  • les dispositions et les signaux en attente ;
  • la politique de planification, la priorité et l’état d’exécution ;
  • les données comptables telles que le temps processeur.

Certaines ressources sous-jacentes peuvent être partagées. Des processus apparentés peuvent partager de la mémoire mappée, et les threads d’un même processus partagent un espace d’adressage et de nombreuses ressources du processus. Un processus fournit donc des frontières d’isolation sans que chaque octet ou objet du noyau soit nécessairement privé physiquement.

Quel composant conserve l’état de planification et les identifiants des processus Linux ?

Planification du processeur et mémoire

Les threads exécutables se disputent le temps processeur. L’ordonnanceur du noyau choisit quel thread s’exécute sur quel processeur selon la classe de planification, la priorité, l’affinité du processeur, la charge et la politique. Cela ne garantit pas une part égale à chaque processus.

Chaque processus voit normalement un espace d’adressage virtuel. Le noyau et le matériel associent les adresses virtuelles à la mémoire physique ou à un autre stockage sous-jacent, appliquent des protections et peuvent partager des pages. Une valeur de mémoire dans ps ou top n’est donc pas automatiquement la quantité de mémoire vive physique unique attribuable à ce processus.

Que sélectionne l’ordonnanceur Linux ?

Fin du processus et libération des ressources

Lorsqu’un processus se termine, le noyau libère la plupart de ses ressources privées, ferme les descripteurs restants et enregistre les informations de fin pour son parent. Une petite entrée dans la table des processus peut rester sous forme de zombie jusqu’à ce que le parent récupère l’état de sortie. « Le processus a fini de s’exécuter » et « toute trace a disparu de la table des processus » ne sont donc pas toujours simultanés.

Pourquoi un processus terminé peut-il rester brièvement sous forme de zombie ?

Leçon terminée

Vous avez terminé Détails des processus

Vous savez maintenant décrire un processus comme davantage qu’un fichier de programme.

  • Distinguer le code exécutable enregistré d’une instance de processus active.

  • Identifier l’état et les ressources suivis par le noyau.

  • Relier la planification aux threads exécutables plutôt qu’à des parts égales.

  • Reconnaître que l’état de sortie peut subsister jusqu’à ce que le parent le récupère.

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 à Processus