TP 6 de Système 1ere Année Informatique 2004-2005 :
les processus
Exercice 1
Question 1
Recopiez le programme d'exemple du cours et testez-le.
Question 3
À l'aide de l'appel système sleep
,
modifiez le programme pour obtenir les comportements suivants :
- le père termine avant le fils
- le fils termine avant le père
Pendant l'exécution, regardez les informations données par la
commande shell ps
. En particulier, affichez les pid
des processus et de leurs parents.
- Qu'arrive-t-il au fils s'il meurt avant son père ?
- Qu'arrive-t-il au fils s'il meurt après son père ?
Question 4
Modifiez le programme pour que le processus
père attende la fin du processus fils pour se terminer.
Question 5
Ajoutez le lancement d'un processus "petit-fils"
Exercice 2
Question 1
Écrivez un shell simple (en utilisant exec). Dans un premier
temps, les commandes seront réduites à un nom de programme (pas
d'argument). Le shell devra attendre la fin des commandes lancées
pour continuer.
On utilisera fgets
pour lire les lignes de
commandes (limitées à 1024 caractères). fgets
renvoie NULL en fin de fichier.
Question 2
En utilisant la fonction strtok,
prenez en charge jusqu'à 10 arguments.
Exemple d'utilisation de strtok :
char *alire= "un exemple pour strtok";
char *mot= strtok(alire, " ");
while (mot != NULL) {
printf("argument suivant : %s", mot);
mot= strtok(NULL, " ");
}
Question 3
Si le dernier "argument" est "&", la commande
devra être lancée en tâche de fond.