GNU/Linux >> Tutoriels Linux >  >> Linux

Qu'est-ce que la table des processus Linux ? En quoi cela consiste?

La table de processus est une structure de données du noyau qui décrit l'état d'un processus (ainsi que la zone U du processus). Il contient des champs qui doivent toujours être disponibles pour le noyau.

Il contient les champs suivants :

  • champ d'état (qui identifie l'état du processus)
  • champs permettant au noyau de localiser le processus et sa zone u en mémoire
  • UID pour déterminer divers privilèges de processus
  • PID pour spécifier les relations n/b processus (par exemple, fork)
  • descripteur d'événement (lorsque le processus est en état de veille)
  • paramètres de planification pour déterminer l'ordre dans lequel le processus passe aux états "noyau en cours d'exécution" et "utilisateur en cours d'exécution"
  • champ de signal pour les signaux envoyés au processus mais pas encore traités
  • timers qui donnent le temps d'exécution du processus en mode noyau et en mode utilisateur
  • champ qui donne la taille du processus (afin que le noyau sache combien d'espace allouer au processus).

En bref, la table des processus donne des informations sur les processus au noyau.


La table de processus sous Linux (comme dans presque tous les autres systèmes d'exploitation) est simplement une structure de données dans la RAM d'un ordinateur. Il contient des informations sur les processus actuellement gérés par le système d'exploitation.

Ces informations incluent des informations générales sur chaque processus

  • identifiant de processus
  • propriétaire du processus
  • priorité du processus
  • variables d'environnement pour chaque processus
  • le processus parent
  • pointeurs vers le code machine exécutable d'un processus.

Une information très importante dans la table de processus est l'état dans lequel se trouve actuellement chaque processus. Cette information est essentielle pour le système d'exploitation, car elle permet ce qu'on appelle le multitraitement, c'est-à-dire la possibilité d'exécuter virtuellement plusieurs processus sur une seule unité de traitement (CPU).

Les informations indiquant si un processus est actuellement ACTIF, EN VEILLE, EN COURS D'EXÉCUTION, etc. sont utilisées par le système d'exploitation afin de gérer l'exécution des processus.

De plus, il existe des informations statistiques telles que le moment où le processus s'est exécuté pour la dernière fois afin de permettre au planificateur du système d'exploitation de décider quel processus doit être exécuté ensuite.

Donc, en résumé, la table de processus est l'élément organisationnel central permettant au système d'exploitation de gérer tous les processus démarrés.

Une courte introduction peut être trouvée dans ce fil :

https://web.archive.org/web/20190817081256/http://www.linuxforums.org/forum/kernel/42062-use-process-table.html

Et wikipedia a aussi de belles informations sur les processus :

http://en.wikipedia.org/wiki/Process_management_(informatique)#Process_description_and_control

http://en.wikipedia.org/wiki/Process_table


Chaque processus est représenté dans le système d'exploitation par un bloc de contrôle de processus - également appelé bloc de contrôle des tâches - qui contient les éléments suivants

Process management
Registers
Program counter
Program status word
Stack pointer
Process state
Priority
Scheduling parameters Process ID
Parent process
Process group
Signals
Time when process started CPU time used
Children’s CPU time
Time of next alarm

Memory management
Pointer to text segment info 
Pointer to data segment info 
Pointer to stack segment info


File management
Root directory Working directory File descriptors User ID
Group ID

Pour en savoir plus, https://www.technologyuk.net/computing/computer-software/operating-systems/


Linux
  1. Que signifie __init dans le code du noyau Linux ?

  2. Quelle est la définition d'une session sous Linux?

  3. Que signifie le nom de l'interface eth0 sous Linux ?

  4. quels tueurs de processus Linux a-t-il?

  5. Que signifie la lettre « u » dans /dev/urandom ?

Qu'est-ce que le Shell sous Linux ?

Linux - Comment inspecter les informations de structure de répertoire d'un fichier Unix/linux ?

Qu'est-ce que la commande kill sous Linux ?

Qu'est-ce qu'un processus arrêté sous Linux ?

Que signifie le symbole du tuyau linux | fais?

Que signifie le ./ (barre oblique) sous Linux ?