Précédent Table des matières Suivant

2  Gestion de processus

Commandes de gestion des processus

La commande ps

affiche des informations sur les processus actifs. Sans options, elle affiche les processus du même terminal que le processus ps. La sortie contient uniquement le pid du processus, le nom du terminal, le temps cumulé d’exécution et le nom de la commande.

Les options les plus courantes sont :

-a
liste tous les processus sauf ceux non associés à un terminal ;
-f
donne plus d’information pour chaque processus.

Les commandes top et htop affichent les mêmes informations que ps en rafraîchissant périodiquement l’affichage.

La commande kill

permet d’envoyer un signal à un processus. Par exemple kill -s nomdesignal pid... envoie le signal dont nomdesignal aux processus dont on donne le pid. kill -l donne la liste des noms des signaux existants. Nous utiliserons ici le signal KILL qui permet de tuer un processus.


Exercice 7
 (À vos marques, prêts...)   Afin de mettre en évidence le partage du temps processeur entre les processus prêts, construisez un programme figurant une course entre processus ; ce programme doit

Exercice 8
 (Observation de processus)   Il s’agit d’écrire un programme à plusieurs processus qui effectue la tâche suivante. Le processus père crée N processus fils. Chaque processus fils réalise dans une boucle infinie les instructions suivantes :

Le processus père, après avoir créé tous ses fils, affiche les processus actifs du terminal et ce à l’aide de la commande ps (voir l’encart). Pour cela, il fera appel à la fonction system() qui permet d’invoquer une commande Shell. Puis, jusqu’à ce qu’il n’ait plus de fils, il exécutera le code suivant :

Question 1 (Préparez)   Donnez, sous forme de pseudo-code, la structure de ce programme.

Explicitez, a priori, son comportement.

Question 2 (Exécutez)   Utilisez la commande kill pour terminer les processus fils.

Que se passe-t-il si vous tuez le processus père ?

Question 3 (Observez)   Modifiez le programme de telle façon que le processus père attende, par exemple sur une saisie clavier, avant de commencer à attendre la terminaison de ses processus fils à l’aide de wait().

Précédent Table des matières Suivant