Next: zone u et table Up: Les processus Previous: Format d'un fichier exécutable

Chargement/changement d'un exécutable

L'appel système execve change l'exécutable du processus courant en chargeant un nouvel exécutable. Les régions associée au processus sont préalablement libérées:

int execve(/* plusieurs formats */);
Pour chaque section de l'exécutable une région en mémoire est allouée.
Soit au moins les régions:

Mais aussi les régions:

La région de la pile:
C'est une pile de structures de pile qui sont empilées et dépilées lors de l'appel ou le retour de fonction. Le pointeur de pile, un des registres de l'unité centrale, indique la profondeur courante de la pile.
Le code du programme gère les extensions de pile (appel ou retour de fonction), c'est le noyau qui alloue l'espace nécessaire à ces extensions. Sur certains systèmes on trouve une fonction alloca() qui permet de faire des demandes de mémoire sur la pile.
Un processus UNIX pouvant s'exécuter en deux modes (noyau, utilisateur), une pile privée sera utilisée dans chaque mode.
La pile noyau sera vide quand le processus est en mode utilisateur.

Le tas est une zone où est réalisée l'allocation dynamique avec les fonctions Xalloc().

  figure949
Figure 6.2: La structure interne des processus.



Dominique REVUZ
Mon Feb 2 12:10:31 MET 1998
Une Bug Un mail Merci