Mis on aadresside sidumine?

Arvuti lameekraan ja klaviatuur – külgvaade

Aadressi sidumine eraldab arvuti mälu tarkvarale.

Pildi krediit: Ryan McVay/Photodisc/Getty Images

Arvutimälu kasutab nii loogilisi kui ka füüsilisi aadresse. Aadressi sidumine eraldab loogilisele osutile füüsilise mälu asukoha, seostades füüsilise aadressi loogilise aadressiga, mida nimetatakse ka virtuaalseks aadressiks. Aadressi sidumine on osa arvuti mäluhaldusest ja seda teostab operatsioonisüsteem nende rakenduste nimel, mis vajavad juurdepääsu mälule.

Mälu haldamine

Aadressi sidumine on seotud sellega, kuidas programmi kood mällu salvestatakse. Programmid on kirjutatud inimesele loetavas tekstis, järgides mitmeid reegleid, mis on kehtestatud struktuurinõuetega programmeerimiskeelt ja märksõnu, mida arvuti keskprotsessor toiminguteks tõlgendab Üksus. Programmi käivitatava versiooni loomise punkt määrab, millal toimub aadresside sidumine. Mõned programmikeeled, nagu "C" ja COBOL, tuleb kompileerida, samas kui teised, peamiselt skriptid, töötavad algsest programmitekstist, mitte masinkoodiga kompileeritud binaarversioonist.

Päeva video

Koostamise aeg

Esimene aadresside sidumise tüüp on kompileerimise aja aadressi sidumine. See eraldab mälus ruumi arvuti masinkoodile, kui programm kompileeritakse käivitatavasse binaarfaili. Aadressi sidumine eraldab loogilise aadressi selle segmendi alguspunktile mälus, kus objekti kood on salvestatud. Mälu eraldamine on pikaajaline ja seda saab muuta ainult programmi uuesti kompileerimisega.

Laadimisaeg

Kui mälu eraldamine on määratud programmi eraldamise ajal, ei saa ükski programm kunagi kompileeritud olekus ühest arvutist teise üle kanda. Selle põhjuseks on asjaolu, et käivitatav kood sisaldab mälueraldisi, mida võivad uue arvuti teised programmid juba kasutada. Sel juhul ei ole programmi loogilised aadressid seotud füüsiliste aadressidega enne, kui programm on välja kutsutud ja mällu laaditud.

Täitmise aeg

Täitmisaja aadressi sidumine kehtib tavaliselt ainult programmide muutujate kohta ja on kõige levinum skriptide sidumise vorm, mida ei kompileerita. Selle stsenaariumi korral taotleb programm programmis oleva muutuja jaoks mäluruumi, kui seda muutujat skriptis käskude töötlemisel esimest korda kohtab. Mälu eraldab sellele muutujale ruumi kuni programmijada lõpuni või välja arvatud juhul, kui skriptis olev konkreetne käsk vabastab muutujaga seotud mäluaadressi.