Hva er adressebindende?

Datamaskin flatskjerm og tastatur - sett fra siden

Adressebinding tildeler datamaskinminne til programvare.

Bildekreditt: Ryan McVay/Photodisc/Getty Images

Datamaskinens minne bruker både logiske adresser og fysiske adresser. Adressebinding tildeler en fysisk minneplassering til en logisk peker ved å knytte en fysisk adresse til en logisk adresse, som også er kjent som en virtuell adresse. Adressebinding er en del av datamaskinens minneadministrasjon, og den utføres av operativsystemet på vegne av applikasjonene som trenger tilgang til minne.

Minnehåndtering

Adressebinding relaterer seg til hvordan koden til et program er lagret i minnet. Programmer er skrevet i menneskelig lesbar tekst, etter en rekke regler satt opp av de strukturelle kravene til programmeringsspråket, og bruke nøkkelord som tolkes til handlinger av datamaskinens sentralbehandling Enhet. Punktet der den kjørbare versjonen av et program opprettes, dikterer når adressebinding skjer. Noen programspråk, som "C" og COBOL, må kompileres, mens andre, hovedsakelig skript, kjøres fra den originale programteksten i stedet for en maskinkodekompilert binærversjon.

Dagens video

Kompileringstid

Den første typen adressebinding er kompileringstidsadressebinding. Dette tildeler en plass i minnet til maskinkoden til en datamaskin når programmet kompileres til en kjørbar binær fil. Adressebindingen tildeler en logisk adresse til startpunktet til segmentet i minnet hvor objektkoden er lagret. Minnetildelingen er langsiktig og kan bare endres ved å rekompilere programmet.

Lastetid

Hvis minneallokering er utpekt på det tidspunktet programmet tildeles, kan ikke noe program noen gang overføre fra en datamaskin til en annen i dens kompilerte tilstand. Dette er fordi den kjørbare koden vil inneholde minnetildelinger som kanskje allerede er i bruk av andre programmer på den nye datamaskinen. I dette tilfellet er ikke programmets logiske adresser bundet til fysiske adresser før programmet startes og lastes inn i minnet.

Utførelsestid

Utførelsestidsadressebinding gjelder vanligvis bare for variabler i programmer og er den vanligste formen for binding for skript, som ikke blir kompilert. I dette scenariet ber programmet om minneplass for en variabel i et program første gang den variabelen støtes på under behandlingen av instruksjoner i skriptet. Minnet vil allokere plass til den variabelen til programsekvensen avsluttes, eller med mindre en spesifikk instruksjon i skriptet frigir minneadressen bundet til en variabel.