Segment de codi

De la Viquipèdia, l'enciclopèdia lliure
Aquesta imatge mostra la disposició típica de la memòria de programa d'un ordinador simple amb el text, diverses dades i les seccions de pila i pila.

En informàtica, un segment de codi, també conegut com a segment de text o simplement com a text, és una part d'un fitxer objecte o la secció corresponent de l'espai d'adreces virtuals del programa que conté instruccions executables.[1]

Segment[modifica]

El terme "segment" prové del segment de memòria, que és un enfocament històric de la gestió de la memòria que ha estat succeït per paginació. Quan un programa s'emmagatzema en un fitxer objecte, el segment de codi forma part d'aquest fitxer; quan el carregador col·loca un programa a la memòria perquè es pugui executar, s'assignen diverses regions de memòria (en particular, com a pàgines), corresponents tant als segments dels fitxers objecte com als segments que només es necessiten en temps d'execució. Per exemple, el segment de codi d'un fitxer objecte es carrega en un segment de codi corresponent a la memòria.

El segment de codi a la memòria normalment és de només lectura i té una mida fixa, de manera que als sistemes incrustats normalment es pot col·locar a la memòria de només lectura (ROM), sense necessitat de carregar-lo. Si el segment de codi no és només de lectura, llavors l'arquitectura en particular permet el codi automodificable. El codi de posició fixa o independent de la posició es pot compartir a la memòria per diversos processos en sistemes de memòria segmentada o paginada.[2][3] Com a regió de memòria, el segment de codi es pot col·locar a sota de la pila o pila per evitar que els desbordaments de pila i per motius de sobrescriptura.[4][5][6][7]

Referències[modifica]

  1. Jason W. Bacon. «Chapter 10. Subprogram Calls and the Stack» (en anglès). cs.uwm.edu, 13-03-2012. Arxivat de l'original el 2014-05-02. [Consulta: 2 maig 2014].
  2. Jason W. Bacon. «Chapter 10. Subprogram Calls and the Stack». cs.uwm.edu, 13-03-2012. Arxivat de l'original el 2014-05-02. [Consulta: 2 maig 2014].
  3. Kai Wang. «Code Segment and Data Segment: Memory Layout of a Program». beingdeveloper.com, 20-09-2012. Arxivat de l'original el 2014-05-02. [Consulta: 2 maig 2014].
  4. «Memory Segment - Data Segment (DS) - (ES, FS, GS)» (en anglès), 06-01-2019. [Consulta: 18 setembre 2023].
  5. «6: MIPS Memory - the Data Segment» (en anglès), 26-06-2020. [Consulta: 18 setembre 2023].
  6. TylerMSFT. «data_seg pragma» (en anglès americà), 03-08-2021. [Consulta: 18 setembre 2023].
  7. Kumar, Krishan. «Memory Layout of C Program. Code Data BSS Stack Heap Segments» (en anglès). [Consulta: 18 setembre 2023].