Kodsegment

Detta visar den typiska layouten för en enkel dators programminne med text, olika data och stack- och heapsektioner .

Inom databehandling är ett kodsegment , även känt som ett textsegment eller helt enkelt som text , en del av en objektfil eller motsvarande sektion av programmets virtuella adressutrymme som innehåller körbara instruktioner .

Segmentet

Termen "segment" kommer från minnessegmentet , som är ett historiskt tillvägagångssätt för minneshantering som har efterföljts av personsökning . När ett program lagras i en objektfil är kodsegmentet en del av denna fil; när laddaren placerar ett program i minnet så att det kan exekveras, tilldelas olika minnesregioner (i synnerhet som sidor), motsvarande både segmenten i objektfilerna och segment som endast behövs under körning. Till exempel laddas kodsegmentet för en objektfil in i ett motsvarande kodsegment i minnet.

Kodsegmentet i minnet är vanligtvis skrivskyddat och har en fast storlek, så på inbyggda system kan det vanligtvis placeras i skrivskyddat minne (ROM), utan att behöva laddas. Om kodsegmentet inte är skrivskyddat tillåter den specifika arkitekturen självmodifierande kod . Fast position eller positionsoberoende kod kan delas i minnet av flera processer i segmenterade eller sökta minnessystem. Som en minnesregion kan kodsegmentet placeras under högen eller stapeln för att förhindra att heap och stack overflows skriver över den.

Se även