Što je vezanje adrese?
Memorija računala koristi i logičke adrese i fizičke adrese. Vezanje adrese dodjeljuje fizičku memorijsku lokaciju logičkom pokazivaču pridružujući fizičku adresu logičkoj adresi, koja je također poznata kao virtualna adresa. Vezanje adresa dio je upravljanja memorijom računala i izvodi ga operativni sustav u ime aplikacija koje trebaju pristup memoriji.
Upravljanje memorijom
Vezanje adresa odnosi se na način na koji je kod programa pohranjen u memoriji. Programi su napisani u tekstu čitljivom za čovjeka, slijedeći niz pravila postavljenih strukturnim zahtjevima programskog jezika i koristeći ključne riječi koje centralna procesorska jedinica računala tumači u akcije. Točka u kojoj se kreira izvršna verzija programa određuje kada će se dogoditi vezanje adrese. Neki programski jezici, kao što su "C" i COBOL, moraju se kompajlirati, dok se drugi, uglavnom skripte, pokreću iz originalnog programskog teksta, a ne iz binarne verzije kompajlirane u strojnom kodu.
Vrijeme kompajliranja
Prva vrsta povezivanja adrese je vezanje adrese u vrijeme kompajliranja. Time se dodjeljuje prostor u memoriji strojnom kodu računala kada se program kompajlira u izvršnu binarnu datoteku. Vezanje adrese dodjeljuje logičku adresu početnoj točki segmenta u memoriji gdje je pohranjen objektni kod. Dodjela memorije je dugotrajna i može se promijeniti samo ponovnim prevođenjem programa.
Vrijeme učitavanja
Ako je dodjela memorije određena u trenutku dodjele programa, tada se nijedan program ne može prenijeti s jednog računala na drugo u svom kompiliranom stanju. To je zato što će izvršni kod sadržavati dodjelu memorije koju možda već koriste drugi programi na novom računalu. U ovom slučaju, logičke adrese programa nisu vezane za fizičke adrese dok se program ne pozove i učita u memoriju.
Vrijeme izvršenja
Vezanje adrese vremena izvršavanja obično se primjenjuje samo na varijable u programima i najčešći je oblik vezivanja za skripte koje se ne kompajliraju. U ovom scenariju, program zahtijeva memorijski prostor za varijablu u programu prvi put kada se ta varijabla susreće tijekom obrade instrukcija u skripti. Memorija će dodijeliti prostor toj varijabli sve dok slijed programa ne završi ili osim ako određena instrukcija unutar skripte ne oslobodi memorijsku adresu vezanu za varijablu.