Objectif
Ce projet vise à visualiser et manipuler les processus UNIX à travers plusieurs exercices pratiques.
Exercice 1 : Visualisation des processus
Pour observer les processus actifs sur une machine à un instant donné, utilisez la commande ps.
- Ouvrez deux terminaux. Dans le premier, exécutez deux applications (par exemple
firefoxetgedit) avec les commandes :
Dans le deuxième terminal, tapezfirefox &gedit &ps. Pourquoifirefoxetgeditn'apparaissent-ils pas dans la liste ?Quelle option utiliser avecpspour les afficher ? - Utilisez
pspour identifier le PID (Process ID) defirefox. Tapez ensuite :
Que se passe-t-il ?Déterminez le PID d'une sessionkill -9 lepiddefirefoxbashet arrêtez-la avec :
Pourquoi la fenêtre du terminal disparaît-elle ?kill -9 lepiddebash - Exécutez
firefoxdans le premier terminal sans le symbole&.Pouvez-vous lancer d'autres commandes dans ce terminal ? Pourquoi ?Appuyez surCtrl-C. Quel processus a été interrompu ?
Exercice 2 : Utilisation de la fonction fork()
Programmez l'exercice 1 du TD n°6 en utilisant la fonction fork().
Exercice 3 : Utilisation de la fonction execl()
Écrivez un programme en C nommé
affichez.cqui affiche à l'écran la chaîne de caractères passée en argument de ligne de commande.Exemple d'utilisation :
./affichez coucouCompilez et testez ce programme.
Créez un programme
prog1.cqui utiliseexecl()pour exécuteraffichezavec l'argumentsalutdans un processus fils.
Exercice 4 : Utilisation de la fonction kill()
Développez un programme où un processus fils affiche le nombre de secondes écoulées chaque seconde. Le processus père doit interrompre le fils après 10 secondes en utilisant la fonction kill().
Exercice 5 : Utilisation de la fonction wait()
Écrivez un programme qui génère deux processus fils : l'un exécute ls -l, l'autre ps -l. Le processus père doit attendre la fin des deux fils et indiquer lequel s'est terminé en premier.
FAQ
1. Pourquoi les processus en arrière-plan ne s'affichent-ils pas avec ps seul ?
La commande ps sans options n'affiche généralement que les processus liés au terminal actuel. Pour voir tous les processus, utilisez ps aux ou ps -ef.
2. Que signifie le PID d'un processus ?
Le PID (Process ID) est un identifiant unique attribué à chaque processus par le système d'exploitation pour le distinguer et le gérer.
3. Pourquoi Ctrl-C arrête-t-il le processus en cours ?
La combinaison Ctrl-C envoie un signal SIGINT (interruption) au processus actif, qui peut être configuré pour l'interrompre ou le traiter.