Kas ir adrešu saistīšana?

Datora plakanais ekrāns un tastatūra — skats no sāniem

Adrešu saistīšana piešķir datora atmiņu programmatūrai.

Attēla kredīts: Raiens Makvejs/Fotodisc/Getty Images

Datora atmiņā tiek izmantotas gan loģiskās adreses, gan fiziskās adreses. Adrešu saistīšana piešķir fizisko atmiņas vietu loģiskajam rādītājam, saistot fizisko adresi ar loģisko adresi, kas tiek dēvēta arī par virtuālo adresi. Adrešu saistīšana ir daļa no datora atmiņas pārvaldības, un to veic operētājsistēma to lietojumprogrammu vārdā, kurām nepieciešama piekļuve atmiņai.

Atmiņas pārvaldība

Adrešu saistīšana ir saistīta ar to, kā programmas kods tiek saglabāts atmiņā. Programmas ir rakstītas cilvēkiem lasāmā tekstā, ievērojot virkni noteikumu, ko nosaka strukturālās prasības programmēšanas valodu un izmantojot atslēgvārdus, kurus datora centrālā procesora pārvērš darbībās Vienība. Punkts, kurā tiek izveidota programmas izpildāmā versija, nosaka, kad notiek adreses saistīšana. Dažas programmu valodas, piemēram, "C" un COBOL, ir jāapkopo, savukārt citas, galvenokārt skripti, tiek palaistas no sākotnējā programmas teksta, nevis no mašīnkoda kompilētas binārās versijas.

Dienas video

Kompilācijas laiks

Pirmais adrešu saistīšanas veids ir kompilēšanas laika adreses saistīšana. Tas piešķir vietu atmiņā datora mašīnkodam, kad programma tiek kompilēta izpildāmā binārā failā. Adreses saistīšana piešķir loģisku adresi segmenta sākuma punktam atmiņā, kurā tiek saglabāts objekta kods. Atmiņas piešķiršana ir ilgtermiņa, un to var mainīt, tikai pārkompilējot programmu.

Ielādes laiks

Ja atmiņas piešķiršana ir noteikta programmas piešķiršanas laikā, tad neviena programma nekad nevar pārsūtīt no viena datora uz citu kompilētā stāvoklī. Tas ir tāpēc, ka izpildāmajā kodā būs atmiņas piešķīrumi, kurus, iespējams, jau izmanto citas programmas jaunajā datorā. Šajā gadījumā programmas loģiskās adreses nav saistītas ar fiziskajām adresēm, kamēr programma nav izsaukta un ielādēta atmiņā.

Izpildes laiks

Izpildes laika adrešu saistīšana parasti attiecas tikai uz mainīgajiem programmās un ir visizplatītākais saistīšanas veids skriptiem, kuri netiek kompilēti. Šajā scenārijā programma pieprasa atmiņas vietu programmas mainīgajam, kad šis mainīgais pirmo reizi tiek sastapts skripta instrukciju apstrādes laikā. Atmiņa piešķirs vietu šim mainīgajam, līdz programmas secība beidzas vai ja īpaša instrukcija skriptā neatbrīvos ar mainīgo saistīto atmiņas adresi.