Segment de données

Segment de données

Un segment de données est une portion d’espace d’adressage virtuel d’un programme, qui contient les variables globales et les variables statiques qui sont initialisées par le programmeur. Cette portion a une taille fixe pour chaque programme, qui dépend de son contenu, dans la mesure où toutes les données sont affectées par le programmeur avant le chargement du programme.

Noter que le segment de données n’est pas en lecture seule, puisque les valeurs de ces variables peuvent être altérées à l’exécution. En cela, il s’oppose à la section “Rodata” (données constantes et en lecture seule), tout comme au segment de code.

L’architecture PC prend en charge peu de régions de mémoire avec un accès en lecture-écriture basique pour un programme : la pile, le segment de données et le segment de code.

Sommaire

Mémoire accessible par un programme

La mémoire d’un programme informatique est divisée en les parties suivantes :

Segment de données

Le segment de données contient les variables globales et statiques utilisées par le programme et qui sont initialisées. On peut y distinguer une zone en lecture seule et une zone en lecture-écriture. Par exemple, la chaîne de caractères définie par char s[] = "hello world" en C et une expression C comme int debug=1 en dehors du “main” seront stockées dans la zone en lecture-écriture ; tandis qu’une expression C telle que const char* string = "hello world" stocke la chaîne de caractères litérale "hello world" dans la zone en lecture seule et la variable pointeur de caractère string dans la zone en lecture-écriture.

Segment BSS

Le segment BSS aussi connu comme zone de données non initialisées commence à la fin du segment de données et contient toutes les variables globales et toutes les variables statiques qui sont initialisées à zéro ou n’ont pas d’initialisation explicite dans le code source. Par exemple, une variable déclarée static int i; sera « contenue » dans le segment BSS.

Tas binaire

Le tas binaire commence à la fin du segment BSS. Le tas binaire est géré par malloc, realloc, et free, qui peut utiliser les appels système brk et sbrk pour ajuster sa taille. Le tas binaire est partagé par toutes les bibliothèques partagées et tous les modules chargés dynamiquement par un processus.

Pile

La pile accompagne traditionnellement le tas binaire et augmente dans la direction opposée ; quand le pointeur de pile rencontre le pointeur de tas binaire, la mémoire libre a été épuisée (dans des espaces d’adressage modernes et vastes, et avec les techniques de mémoire virtuelle, ils peuvent se trouver n’importe où, mais vont quand même croître dans deux directions opposées).

La pile est une structure LIFO, généralement située dans la plus haute zone de la mémoire. Un registre de pointeur de pile pointe sur le haut de la pile ; il est modifié à chaque fois qu’une valeur est empilée ou dépilée. L’ensemble des valeurs empilées par un appel à une fonction est appelé une "trame de pile" ; une trame de pile consiste au minimum en une adresse de retour.

Références

Modèle:Refbegin

Modèle:Refend

Voir aussi

Liens externes



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Segment de données de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать реферат

Regardez d'autres dictionnaires:

  • Segment (memoire) — Segmentation (informatique) Pour les articles homonymes, voir Segmentation. En informatique, la segmentation est une technique gérée par l unité de segmentation de la MMU, utilisée sur les systèmes d exploitation modernes, qui divise la mémoire… …   Wikipédia en Français

  • Segment (mémoire) — Segmentation (informatique) Pour les articles homonymes, voir Segmentation. En informatique, la segmentation est une technique gérée par l unité de segmentation de la MMU, utilisée sur les systèmes d exploitation modernes, qui divise la mémoire… …   Wikipédia en Français

  • Segment BSS — En informatique, le nom .bss ou bss est utilisé par nombre de compilateurs et d’éditeurs de liens pour désigner une partie du segment de données contenant les variables statiques représentées initialement (càd, quand l’exécution commence)… …   Wikipédia en Français

  • Segment de réseau — Un segment de réseau est une portion d un réseau informatique dans lequel chaque appareil communique en utilisant la même couche physique. Les appareils qui étendent cette couche physique, comme les répéteurs ou les concentrateurs réseau (hub),… …   Wikipédia en Français

  • Segment d'arrêt — Anneau élastique Pour les articles homonymes, voir anneau. Anneau intérieur Les anneaux élastiques sont des composants d assemblage mécanique généralement montés dans des gorges réalisées sur des portées cylindrique …   Wikipédia en Français

  • Descripteur De Segment — Segmentation (informatique) Pour les articles homonymes, voir Segmentation. En informatique, la segmentation est une technique gérée par l unité de segmentation de la MMU, utilisée sur les systèmes d exploitation modernes, qui divise la mémoire… …   Wikipédia en Français

  • Descripteur de segment — Segmentation (informatique) Pour les articles homonymes, voir Segmentation. En informatique, la segmentation est une technique gérée par l unité de segmentation de la MMU, utilisée sur les systèmes d exploitation modernes, qui divise la mémoire… …   Wikipédia en Français

  • Selecteur de segment — Segmentation (informatique) Pour les articles homonymes, voir Segmentation. En informatique, la segmentation est une technique gérée par l unité de segmentation de la MMU, utilisée sur les systèmes d exploitation modernes, qui divise la mémoire… …   Wikipédia en Français

  • Sélecteur de segment — Segmentation (informatique) Pour les articles homonymes, voir Segmentation. En informatique, la segmentation est une technique gérée par l unité de segmentation de la MMU, utilisée sur les systèmes d exploitation modernes, qui divise la mémoire… …   Wikipédia en Français

  • Maximum Segment Size — Pour les articles homonymes, voir MSS. Maximum Segment Size (MSS ou longueur maximum de segment en français) désigne la quantité de données en octets qu un ordinateur ou tout équipement de communication peut contenir dans un paquet seul et non… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”