Next: Arbres binaires
Up: No Title
Previous: Ré-allocation dynamique
Sous Unix, l'invocation d'un programme par l'interprète de commandes
conduit à la création d'un processus.
La zone mémoire affectée à l'exécution d'un processus par le système
d'exploitation de la machine comprend plusieurs parties :
- le segment << texte >>, qui contient le programme exécutable, et
n'est pas modifié au cours de l'exécution (contrairement à ce nom,
traditionnel, il ne contient pas du texte, mais du code) ; les
fonctions y sont rangées
- le segment statique, où se trouvent rangés les autres objets
globaux (variables, tableaux) et les objets locaux statiques
-
la pile, ou segment automatique, qui contient les blocs
d'activation des fonctions en cours d'exécution, en particulier les
variables locales, ainsi que les tableaux alloués automatiquement
-
le tas, ou segment dynamique, qui contient les zones mémoires
allouées dynamiquement
Figure 21:
Organisation d'un processus
|
Cette organisation est celle de Pascal, C, C++, mais pas de Fortran 77.
Les implémentations classiques de Fortran 77 ignorent les modes
d'allocation automatique et dynamique, le processus est uniquement
constitué de données statiques (de ce fait, la récursivité n'est pas
permise). On a vu que dans un programme itératif, la pile a une taille
fixe, connue à la compilation.
Next: Arbres binaires
Up: No Title
Previous: Ré-allocation dynamique
Jean-Philippe Chancelier
9/29/1998