Etats des processes Linux

Le
Cumbalero
Bonjour,


Dans le cadre d'un projet de déploiement d'une solution de supervision =

(ITM d'IBM), je me retrouve à lire pas mal de doc, à découvrir pas =
mal
de trucs et à me poser beaucoup de questions. C'est bien, c'est comme ç=
a
qu'on apprend, enfin quand on trouve les réponses.

ITM me dit que l'état des processes sous Linux peut être:
Running
Sleeping
Dead
Zombie
Trace
Disk

Si je compare au man top et que je lis une page qui traite du sched.h
(j'ai un peu de mal à faire le lien entre les deux mais appel système=
et
état de processes ne sont justement pas la même chose), je compren=
ds que

- "Running" correspond à l'état R du top (ce que je comprends comme "=
le
process est actif et consomme des ressources, en user mode ou kernel
mode", mais je me demande si cet état R du top comprends aussi les
processes actifs en attente de ressources comme du temps CPU)

- "Sleeping" correspond à l'état S du top (le processe n'est pas acti=
f,
mais susceptible d'être réveillé par un appel système, par exempl=
e
syslogd est S et pourra passer en R si un autre processe qui utilise
syslog pour trace ses évènements a justement quelque chose à tracer=
)

- "Zombie" correspond à l'état Z du top (c'est un process qui ne devr=
ait
plus apparaitre dans la table des processes mais le système n'a pas
réussi à le terminer)


Jusque là, je pense ne pas avoir dit de connerie, mais n'hésitez pas =
à
corriger ou préciser. Par contre, là, je suis moins sûr de moi:


- "Disk" correspond à l'état W du top. Si j'ai bien compris, le proce=
ss
n'est plus résident en RAM, les pages mémoires qui lui correspondent =
ont
été swappées. Cet état est cumulatif avec d'autres (sauf R), souv=
ent
(toujours?) il est SW.


Et c'est là que tout s'obscurcit pour moi.

J'imagine que "Dead" correspond au D du top, mais le man dit que ce sont =

des processes "uninterruptible sleep". OK, ils dorment et on peut pas
les réveiller, c'est un peu ce que j'ai expliqué de la mort à ma fi=
lle
quand elle avait 3 ans et que son poisson rouge nous a quitté. Mais à=

quoi ça correspond pour un process?

Enfin, "Trace" semble correspond au T du man top (encore que ce man dit
"T for stopped or traced", là aussi, je ne vois pas à quoi cela corre=
spond.


Merci à tous pour vos lumières, pour info la page html parlant (entre=

autres) du sched.h est:
http://www.linux-tutorial.info/modules.php?name=MContent&pageid=84

Je pense continuer à parcourir ce site et à solliciter Google,
parallèlement à cet envoi de message.


A+
JF
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JKB
Le #18382401
Le 14-01-2009, ? propos de
Etats des processes Linux,
Cumbalero ?crivait dans fr.comp.os.linux.configuration :
Bonjour,



Bonjour,

Dans le cadre d'un projet de déploiement d'une solution de supervision
(ITM d'IBM), je me retrouve à lire pas mal de doc, à découvrir pas mal
de trucs et à me poser beaucoup de questions. C'est bien, c'est comme ça
qu'on apprend, enfin... quand on trouve les réponses.

ITM me dit que l'état des processes sous Linux peut être:
Running
Sleeping
Dead
Zombie
Trace
Disk

Si je compare au man top et que je lis une page qui traite du sched.h
(j'ai un peu de mal à faire le lien entre les deux mais appel système et
état de processes ne sont justement pas la même chose...), je comprends que

- "Running" correspond à l'état R du top (ce que je comprends comme "le
process est actif et consomme des ressources, en user mode ou kernel
mode", mais je me demande si cet état R du top comprends aussi les
processes actifs en attente de ressources comme du temps CPU)

- "Sleeping" correspond à l'état S du top (le processe n'est pas actif,
mais susceptible d'être réveillé par un appel système, par exemple
syslogd est S et pourra passer en R si un autre processe qui utilise
syslog pour trace ses évènements a justement quelque chose à tracer)

- "Zombie" correspond à l'état Z du top (c'est un process qui ne devrait
plus apparaitre dans la table des processes mais le système n'a pas
réussi à le terminer)



Non, l'état 'Z' correspond à un fils dont le père n'est pas encore
allé à l'enterrement. En d'autres termes, la valeur de retour du
processus n'a pas été lu par le père (ou par init dans le cas où le père
n'existe plus). Ce processus ne consomme plus que la place de la
structure de description du processus à l'exclusion de toute autre
ressource.

Jusque là, je pense ne pas avoir dit de connerie, mais n'hésitez pas à
corriger ou préciser. Par contre, là, je suis moins sûr de moi:


- "Disk" correspond à l'état W du top. Si j'ai bien compris, le process
n'est plus résident en RAM, les pages mémoires qui lui correspondent ont
été swappées. Cet état est cumulatif avec d'autres (sauf R), souvent
(toujours?) il est SW.


Et c'est là que tout s'obscurcit pour moi.

J'imagine que "Dead" correspond au D du top, mais le man dit que ce sont
des processes "uninterruptible sleep". OK, ils dorment et on peut pas
les réveiller, c'est un peu ce que j'ai expliqué de la mort à ma fille
quand elle avait 3 ans et que son poisson rouge nous a quitté. Mais à
quoi ça correspond pour un process?



À un processus résident quelque part dans le système qui n'arrive
pas à effectuer une tâche ou une autre. Typiquement un tar sur un
dérouleur de bande qui foire. Au passage, c'est un truc bien sympathique
parce que ça bloque à la fois le processus mais aussi le périphérique.
Le processus est typiquement en train d'effectuer une tâche non
interruptible qui ne peut pas se faire en raison d'une erreur ou d'une
autre (et c'est symptomatique lorsque ça ne se réveille pas d'un bout de
code écrit avec les pieds).

Enfin, "Trace" semble correspond au T du man top (encore que ce man dit
"T for stopped or traced", là aussi, je ne vois pas à quoi cela correspond.



Le processus a reçu un signal d'arrêt temporaire et attend un
SIGCONT.

Merci à tous pour vos lumières, pour info la page html parlant (entre
autres) du sched.h est:
http://www.linux-tutorial.info/modules.php?name=MContent&pageid„

Je pense continuer à parcourir ce site et à solliciter Google,
parallèlement à cet envoi de message.



En espérant avoir répondu...

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Cumbalero
Le #18382721
JKB a écrit :

En espérant avoir répondu...



Tout à fait, et avec beaucoup de clarté.

Merci encore,
JF
Publicité
Poster une réponse
Anonyme