Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Etats des processes Linux

2 réponses
Avatar
Cumbalero
Bonjour,


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

(ITM d'IBM), je me retrouve =E0 lire pas mal de doc, =E0 d=E9couvrir pas =
mal=20
de trucs et =E0 me poser beaucoup de questions. C'est bien, c'est comme =E7=
a=20
qu'on apprend, enfin... quand on trouve les r=E9ponses.

ITM me dit que l'=E9tat des processes sous Linux peut =EAtre:
Running
Sleeping
Dead
Zombie
Trace
Disk

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

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

- "Sleeping" correspond =E0 l'=E9tat S du top (le processe n'est pas acti=
f,=20
mais susceptible d'=EAtre r=E9veill=E9 par un appel syst=E8me, par exempl=
e=20
syslogd est S et pourra passer en R si un autre processe qui utilise=20
syslog pour trace ses =E9v=E8nements a justement quelque chose =E0 tracer=
)

- "Zombie" correspond =E0 l'=E9tat Z du top (c'est un process qui ne devr=
ait=20
plus apparaitre dans la table des processes mais le syst=E8me n'a pas=20
r=E9ussi =E0 le terminer)


Jusque l=E0, je pense ne pas avoir dit de connerie, mais n'h=E9sitez pas =
=E0=20
corriger ou pr=E9ciser. Par contre, l=E0, je suis moins s=FBr de moi:


- "Disk" correspond =E0 l'=E9tat W du top. Si j'ai bien compris, le proce=
ss=20
n'est plus r=E9sident en RAM, les pages m=E9moires qui lui correspondent =
ont=20
=E9t=E9 swapp=E9es. Cet =E9tat est cumulatif avec d'autres (sauf R), souv=
ent=20
(toujours?) il est SW.


Et c'est l=E0 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=20
les r=E9veiller, c'est un peu ce que j'ai expliqu=E9 de la mort =E0 ma fi=
lle=20
quand elle avait 3 ans et que son poisson rouge nous a quitt=E9. Mais =E0=
=20
quoi =E7a correspond pour un process?

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


Merci =E0 tous pour vos lumi=E8res, pour info la page html parlant (entre=
=20
autres) du sched.h est:
http://www.linux-tutorial.info/modules.php?name=3DMContent&pageid=3D84

Je pense continuer =E0 parcourir ce site et =E0 solliciter Google,=20
parall=E8lement =E0 cet envoi de message.


A+
JF

2 réponses

Avatar
JKB
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.
Avatar
Cumbalero
JKB a écrit :

En espérant avoir répondu...



Tout à fait, et avec beaucoup de clarté.

Merci encore,
JF