Année Académique 2022- 2023
UE : PROGRAMMATION SYSTEME II FILIERES : GL-CS
CHARGE DU COURS : M BATAZI Kpaka
Objectif : Visualiser et manipuler des processus UNIX
Exercice 1 – Visualisation de processus
Pour voir quels processus tournent sur une machine a un moment donné, il faut utiliser la
commande ps.
1) Ouvrir deux terminaux. Dans le premier terminal, lancer 2 applications, par exemple
firefox et gedit à l'aide des commandes firefox & et xemacs &. Dans le deuxième terminal, tapez
la commande ps.
Que se passe-t-il ? Pourquoi firefox et gedit n'apparaissent-ils pas dans la liste ? Quelle option
utiliser avec ps pour les voir ?
2) Utilisez la commande ps pour déterminer le PID (Process ID) du firefox que vous avez
lancé. Tapez kill -9 lepiddefirefox.
Que se passe-t-il ? Déterminez le PID d'une des commandes bash et arrêtez-la à l'aide de la
commande kill -9. Pourquoi la fenêtre du terminal disparaît-elle ?
3) Tapez firefox dans le premier terminal.
Pouvez-vous exécuter d'autres commandes dans ce terminal ? Pourquoi ? Faites un Ctrl-C.
Quel processus a été tué ?
Exercice 2 – La fonction fork()
1) Ecrire un programme C qui crée deux fils, l'un affichant les entiers de 1 à 50, l'autre de
51 à 100.
2) Modifier le programme précédent pour que l'affichage soit 1 2 3 ...100.
Exercice 3 – La fonction execl()
1) Donnez le code source C d'un programme affichez.c qui affiche à l'écran la chaîne de
caractères qui lui est passée en paramètre en ligne de commande.
Exemple d'utilisation : affichez coucou
Compiler et tester ce programme.
2) Ecrire un programme prog1 qui crée un processus fils qui exécute affichez avec
l’argument salut. On utilisera la fonction execl.
Exercice 4 – La fonction kill()
Ecrire un programme qui crée un processus fils qui affiche à chaque seconde le nombre de
secondes écoulées. Le processus père arrête le processus fils au bout de 10 secondes.
Page 1 sur 2
Exercice 5 – La fonction wait()
Ecrire un programme qui crée 2 processus, l’un faisant la commande ls -l, l’autre ps -l.
Le père devra attendre la fin de ses deux fils et afficher quel a été le premier processus à
terminer.
Page 2 sur 2