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 :
  1. le père termine avant le fils
  2. 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.

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.