Tux

Unix : Programmation Système

TD 2 - Les Processus

C. Drocourt
I.U.T. Amiens
drocourt@iut-amiens.fr

Exercice 1 :

Ecrire un programme qui va prendre en argument le nom d’un commande et va l’executer par la primitive exec. Si la commande n’existe pas, le programme affichera une erreur et renverra un code de retour différent de 0.

Exercice 2 :

Ecrire un programme qui va se cloner par l’appel système fork(). Le père et le fils resteront bloqués dans une boucle infinie. A l’intérieur de cette boucle, les deux processus afficheront leur PID, leur PPID et attendront une seconde.
Dans une autre fenêtre regarder le résultat de la commande ps.

Exercice 3 :

Ecrire un programme qui va prendre en argument le nombre de fois ou le processus doit se cloner par l’appel système fork(). Le père va créer les n fils immédiatement et attendera la mort de tous ses fils. Chacun des fils affichera son pid et attendra n*10 secondes avant de mourir. Le père affichera à chaque fois le pid du fils qui vient de mourir.

Exercice 4 :

Le but de ce programme est de commencer à écrire un mini-shell que vous pourrez améliorer par la suite. Le programme demandera donc a l’utilisateur de saisir une commande et l’exécutera par un appel a la primitive exec (via un appel systeme fork). Pour le moment, on ne tiendra pas compte des paramètres des commandes, ni l’exécution en arrière plan.

Vous allez écrire un programme C qui calcule la racine carré d’un nombre saisie par l’utilisateur, pour cela vous devrez utiliser la fonction sqrt() de la librairie math.
1 – Compilez normalement ce programme en incluant la librairie et constater son bon fonctionnement.
2 – Compilez à nouveau ce programme mais cette fois ci en incluant les librairies de façon statiques, constater à nouveau le bon fonctionnement du programme et comparez la taille de l’exécutable avec le précédent.