suivant: Les commandes de gestion
monter: Zones mémoire code, variables
précédent: Zones mémoire code, variables
Table des matières
Index
Lors de la création d'un processus, trois zones
mémoires lui sont affectées :
- la zone « CODE »
-
Celle-ci représente la zone mémoire allouée au code exécutable qui
doit être déroulé par le processus.
- la zone « DATA »
-
Celle-ci représente la zone mémoire réservée pour les données propres
au code exécutable.
- la zone « ENV »
-
Celle-ci représente une zone mémoire réservée pour les données propres
au code exécutable. Elle est aussi appelée
« zone d'environnement ».
En faisant l'analogie avec un programme source, la zone « CODE »
correspond aux instructions du programme, tandis que les zones
« DATA » et « ENV » correspondent aux zones associées
aux déclarations de variables, la zone « ENV » référençant
les variables globales.
Lors de la création d'un sous processus, UNIX duplique l'environnement en
ne gardant que les variables globales.
Pour exécuter une commande, le shell crée un sous processus dans lequel
il substitue le code par le code de la commande à exécuter. La méthode suivie est
illustrée à la figure
.
Figure:
Exécution d'une commande sous UNIX
|
L'appel système « fork() » crée le processus et ne garde
que la zone mémoire « ENV ». L'appel système
« exec() » exécute la commande dans le processus créé.
Remarque 4..1 :
« exec » est aussi une commande du shell qui a la même fonctionnalité.
La commande « exec ls
» exécute « ls » dans le même processus
du shell (substitue le code du shell par le code de la commande « ls »
dans la zone mémoire « CODE » et s'arrête dès que son exécution est
terminée. On est donc déloggé.
suivant: Les commandes de gestion
monter: Zones mémoire code, variables
précédent: Zones mémoire code, variables
Table des matières
Index
baudry@esme.fr