Segment BSS

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) uniquement par des bits à zéro. On l’utilise souvent dans des expressions telles que « section bss » ou « segment bss ».

En C, les variables statiquement allouées sans initialisation explicite sont initialisées à zéro (pour les types arithmétiques) ou au pointeur nul (pour les types pointeurs). Les implementations de C représentent typiquement les valeurs et les pointeurs nuls comme une suite de bits mis à zéro (bien que le standard C ne le requière pas). Partant, la section bss inclut typiquement toutes les variables non utilisées déclarées au niveau du fichier (càd, en dehors de toute fonction) ainsi que les variable locale non initialisées déclarées avec le mot-clef static. Une implémentation peut aussi assigner des variables allouées statiquement initialisées avec une valeur codée par une suite de bits à zéro dans cette section bss.

Typiquement, le chargeur de programme initialise la mémoire allouée pour la section bss quand il charge le programme. LEs systèmes d’exploitation peuvent utiliser une technique appelée « remplissage à la demande par des zéros » pour implémenter efficacement le segment bss (McKusick et Karels 1986). Dans un logiciel embarqué, le segment bss est lié à une mémoire qui est initialisée à zéro par l’exécuteur C avant que la fonction main() soit exécutée.

Quelques interfaces binaire-programme prennent aussi en charge un segment sbss (pour “small data”). Typiquement, un code simple peut accéder à ces données en utilisant des instructions qui ne peuvent accéder qu’à une plage limitée d’adresses.

Historiquement, BSS (“Block Started by Symbol”) était une pseudo-opération en UA-SAP (United Aircraft Symbolic Assembly Program), l’assembleur développé dans les années 1950 pour l’IBM 704 par Roy Nutt, Walter Ramshaw, et leur équipe à la United Aircraft and Transport Corporation [1][2]. Le mot-clef BSS a été incorporé plus tard dans l’assembleur de FORTRAN (FORTRAN Assembly Program), l’assembleur standard d’IBM pour ses ordinateurs Série IBM 700/7000. Il définit une étiquette (càd un symbole) et réserve un bloc d’espace non initialisé pour un nombre donné de mots (Timar 1996).

Un auteur célèbre, programmeur en C, dit que « Certains aiment comprendre BSS comme “Better Save Space” (“ferait mieux d’économiser de la place”) dans la mesure où le segment BSS, ne comportant que des variables encore dépourvues de valeur, n’a pas vraiement besoin d’en stocker une image. La taille que le BSS va prendre à l’exécution est enregistrée dans le fichier objet, mais le BSS (contrairement au segment de données) ne prend en fait aucune place réelle dans le fichier objet. »[3]

Voir aussi

Références

Sources



Wikimedia Foundation. 2010.

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

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • 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 …   Wikipédia en Français

  • .bss — redirects here. For other uses, see BSS. In computer programming, .bss or bss (Block Started by Symbol) is used by many compilers and linkers as the name of the data segment containing static variables that are filled solely with zero valued data …   Wikipedia

  • BSS — Best Shot Selector (Computing » Software) Basic Service Set (Computing » Networking) Basic Service Set (Computing » Telecom) **** Base Station System (Academic & Science » Amateur Radio) **** Business Support Systems (Business » General) *… …   Abbreviations dictionary

  • BSS — • Basic Synchronised Subset (in Bezug auf Datenkommunikation auf ISO /OSI Schicht 5) enthält Grundfunktionen der Kommunikation und Synchronisationsdienste • Block Started by Symbol (IBM) • Basic Stack Segment • Base Station Subsystem, die Summe… …   Acronyms

  • BSS — [1] Basic Synchronised Subset (in Bezug auf Datenkommunikation auf ISO /OSI Schicht 5) enthält Grundfunktionen der Kommunikation und Synchronisationsdienste [2] Block Started by Symbol ( IBM) [3] Basic Stack Segment [4] Base Station Subsystem,… …   Acronyms von A bis Z

  • BSS — agricult. abbr. Basiodiacarp inducing Substance(s) abbr. Base Station System / Subsystem (GPRS, BSC, BTS) abbr. Basic Service Set (WLAN) abbr. Basic Synchronized Subset abbr. Block Started by Symbol (IBM, Assembler, Unix) abbr. Block Storage… …   United dictionary of abbreviations and acronyms

  • Data segment — A data segment is a portion of virtual address space of a program, which contains the global variables and static variables that are initialized by the programmer. This portion has a fixed size for each program depending upon the quantity of… …   Wikipedia

  • Code segment — In computing, a code segment, also known as a text segment or simply as text, is one of the sections of a program in an object file or in memory, which contains executable instructions. It has a fixed size and is usually read only. If the text… …   Wikipedia

  • Toxic Anterior Segment Syndrome — (TASS) is an acute, sterile anterior segment inflammation following generally uneventful cataract and anterior segment surgery. One of the main factors in differentiating TASS from an infectious endophthalmitis is the rapid onset. Most patients… …   Wikipedia

  • Memory segmentation — is the division of computer memory into segments or sections. Segments or sections are also used in object files of compiled programs when they are linked together into a program image, or the image is loaded into memory. In a computer system… …   Wikipedia

Share the article and excerpts

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