next up previous contents index
suivant: 6.3 Manipulation de processus monter: 6. Les processus précédent: 6.1 Définition   Table des matières   Index


6.2 Création de processus

Lorsqu'on entre une commande dans un shell, le shell lance un processus pour l'exécuter6.1. Le shell attend ensuite la fin de ce processus, puis demande la commande suivante.

Chaque processus a ainsi un processus père, qui est celui qui l'a lancé. Le numéro du processus père est noté PPID (parent PID). Un processus n'a bien sûr qu'un seul père, mais peut lancer l'exécution de plusieurs autres processus, nommés processus fils. On a donc affaire à une arborescence de processus. Lors de l'initialisation du système UNIX, un premier processus, nommé init, est créé avec un PID=1. init est l'ancêtre de tous les processus.

A bas niveau, ll n'y a qu'une seule façon de donner naissance à un nouveau processus, la duplication. Un processus peut demander au système sa duplication en utilisant la primitive fork() (que nous étudions plus loin). Le système crée alors une copie complète du processus, avec un PID différent. L'un des deux processus est fils de l'autre.

Il n'est évidement guère utile d'avoir deux copies du même programme s'exécutant dans le système. Après duplication, le fils va ``changer de programme'' en utilisant la primitive exec(). Cette primitive conserve l'identité du processus mais remplace son code exécutable (et ses données) par celui d'une nouvelle commande.

Voyons ce qu'il se passe lorsque qu'un shell exécute la commande

compress toto
qui demande la compression du fichier nommé toto :
1.
le shell se duplique (fork); on a alors deux processus shell identiques.
2.
le shell père se met en attente de la fin du fils (wait).
3.
le shell fils remplace son exécutable par celui de la commande compress;
4.
la commande compress s'exécute et compacte le fichier toto; lorsqu'elle termine, le processus fils disparaît.

5.
le père est alors réactivé, et affiche le prompt suivant.


next up previous contents index
suivant: 6.3 Manipulation de processus monter: 6. Les processus précédent: 6.1 Définition   Table des matières   Index
Emmanuel Viennet
1999-01-05