ENSI 2012/2013
S.E & Prog Concurrente
Exercice 1 [gestion des processus]
Se familiariser avec les différentes options de la commande ps en lisant
man ps.
1. Quel est le processus de pid 1 ?
2. Lancer le programme ci-dessous avec les arguments 10 20. Tapez ps
-la dans un autre terminal avant la fin du père, avant la fin du fils. Quels
sont les ppid du père et du fils ? Donnez une explication.
3. Lancer le programme ci-dessous avec les arguments 10 0. Tapez ps -
la dans un autre terminal avant la fin du père. Que constatez-vous ?
#include <unistd.h> / necessaire pour les fonctions exec /
#include <sys/types.h>
#include <unistd.h>
Publicité
#include <stdio.h>
int main(int argc, char * argv[]) {
pid_t pid;
int attente_fils,attente_pere;
if(argc != 3)
perror("usage: ex1 n m\n");
attente_pere = atoi(argv[1]);
attente_fils = atoi(argv[2]);
switch(pid=fork()) {
case -1:
perror("fork error");
break;
case 0:
sleep(attente_fils);
Publicité
printf("fils attente finie\n");
break;
default:
sleep(attente_pere);
printf("pere attente finie\n");
break;
}
return 0 ;
}
M.Nasri
Page 1
ENSI 2012/2013
S.E & Prog Concurrente
Exercice 2 [ Comportement de exec ]
Publicité
1. Faites exec ps. Que se passe-t-il ? Donnez une explication.
2. Vérifiez votre explication en étudiant la commande shell exec sh.
(Quel est le pid de ce shell ?)
Exercice 3 [Path et variables d’environnement]
1. Créez dans progs un programme affichez qui affiche une chaîne de
caractères passée en argument.
2. Placez vous dans tp3 et tapez affichez salut. Que se passe-t-il ?
3. Comment faire pour que cette commande exécute le programme
affichez ?
Pour vous aidez, demandez-vous :
Que donne la commande shell which ls ?
Que donne la commande shell echo $PATH ?
Exercice 4 [fonction execl ]
Ecrire un programme prog1 qui crée un processus fils qui exécute
Publicité
affichez avec l’argument salut. On utilisera la fonction execl.
M.Nasri
Page 2
ENSI 2012/2013
S.E & Prog Concurrente
Exercice 5 [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.
M.Nasri
Page 3