next up previous contents index
suivant: Les commandes de gestion monter: Zones mémoire code, variables précédent: Zones mémoire code, variables   Table des matières   Index

Description

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
Image exec-cmd

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é.


next up previous contents index
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