La grande famille des processus

Niveau : Star Empty Empty Empty Empty
Résumé : /proc/<pid>

Les processus comme je l'ai déjà décrit, forment une grande famille.

La famille processus


Dans la famille processus je voudrais le père

Les processus se reproduisent par fork (Mitose en français). Ce qui veut dire qu'à la genèse il n'y avait qu'un processus que nous ne nommerons pas Adam mais init.

Tous les processus possèdent un identifiant (pid) ainsi qu'un identifiant de processus parent (ppid) permettant de les repérer dans un arbre généalogique (pstree).

Comment reconnait-on le père du fils lors du fork d'un processus ? Uniquement par le code de retour de la méthode fork qui vaut 0 pour le fils et donne le pid du fils au père. En dehors de cela les 2 processus sont rigoureusement identiques.

Dans la famille processus je voudrais la mère

Désolé, il n'y a pas de femme chez les processus, la reproduction est asexuée, mais c'est une idée à creuser ...

Dans la famille processus je voudrais le fils

Lorsqu'un processus forke, en général le père poursuit sa vie comme si de rien n'était, par contre le fils va muter. La mutation génétique chez les processus est bien plus violente que chez les êtres vivants. En effet, le code (l'ADN en français) est intégralement relu et remplacé depuis un nouveau fichier sur le disque. C'est ce qu'on appelle un exec.

Il existe quelques cas de processus qui ne fonctionnent pas comme ceci, mais qui laissent leur père mourir (ingrats !) et qui prennent leur place. C'est le cas des démons (un parricide est-il un démon ?) dont le but est de devenir indépendants (émancipés) et ne plus avoir de problèmes d'adolescence (le tty du père) ou de famille (le groupe de processus).

Dans la famille processus je voudrais le grand-père

Lorsqu'un processus meurt, sa dépouille est remise à son père. Elle est essentiellement constituée de son code de retour.

Lorsque le père est déjà mort, c'est le doyen qui a la charge de récupérer le code de retour, par exemple avec la méthode wait.

Dans la famille processus je voudrais le zombie

Si le père ne s'occupe pas des funérailles du fils bien aimé, celui-ci erre dans les méandres du noyau en attendant que quelqu'un veuille bien l'enterrer.

C'est ce qu'on appelle un zombie, caractérisé par la lettre Z ou par le mot defunct dans la liste des processus. Il est impossible de tuer un zombie (il est déjà mort). Seul son ascendant le plus proche le peut.

Heureusement l'ascendant universel, père de tous les processus, j'ai nommé init, prend soin de la dépouille de tous les enfants qui lui sont confiés. Donc si le père d'un zombie meurt, init s'occupera de le faire disparaître.

Les non processus


Chez les amis des processus voudrais le thread

Le thread n'est pas vraiment un processus, c'est un élément de processus, tout comme la main est un élément du corps. Avoir plusieurs threads permet à un processus de faire plusieurs choses en même temps tout en restant une seule entité. Cela permet par exemple de dédier une main au traitement et un pied à l'affichage (oui on s'y prend souvent comme des pieds pour faire des IHM, sauf certains qui y dédient la casquette).

Chez les amis des processus je voudrais le binaire

Le binaire (ou fichier exécutable) est le modèle du processus, l'ADN si vous préférez. Sans binaire, impossible de créer un processus. Celui-ci est inerte et manipulable aisément.

Chez les amis des processus je voudrais la bibliothèque

La bibliothèque c'est un bout de code qui peut être réutilisé par des processus, tout comme les plasmides , elles s'intègrent à n'importe quel autre processus pour leur apporter une fonctionnalité donnée.

Chez les amis des processus je voudrais le thread noyau

Le thread noyau est un cas particulier de thread, il tourne dans l'espace noyau et ne partage donc sa mémoire qu'avec le noyau mais ne rentre dans aucun processus. On devrait les appeler des anges puisque ce sont des être invisibles (ou presque) agissant au compte de dieu (le noyau).

Chez les amis des processus je voudrais le core

Le core, ou core dump est la version fossilisée d'un processus mort au combat. Lorsqu'un processus meurt il est effacé de la mémoire, mais s'il meurt dans des conditions exceptionnelle, par exemple s'il s'est pris un coup de signal (man kill) dans la tête et qu'un résineux est à proximité (ulimit -c) on le coule dans l'ambre pour une analyse ultérieure. gdb est un grand ami médecin qui est aussi légiste, il saura vous aider le temps venu.

Tags:, , ,
Vus : 525
Publié par Peck : 100