Какво представлява обвързването на адреса?

Компютърен плосък екран и клавиатура - страничен изглед

Обвързването на адрес разпределя компютърната памет към софтуера.

Кредит на изображението: Райън Маквей/Photodisc/Getty Images

Компютърната памет използва както логически адреси, така и физически адреси. Обвързването на адрес разпределя местоположение на физическа памет към логически указател чрез асоцииране на физически адрес с логически адрес, който също е известен като виртуален адрес. Обвързването на адрес е част от управлението на паметта на компютъра и се извършва от операционната система от името на приложенията, които се нуждаят от достъп до паметта.

Управление на паметта

Обвързването на адрес се отнася до това как кодът на програма се съхранява в паметта. Програмите са написани в четим от човека текст, следвайки серия от правила, установени от структурните изисквания на езика за програмиране и използване на ключови думи, които се интерпретират в действия от централната обработка на компютъра Мерна единица. Точката, в която се създава изпълнимата версия на програма, диктува кога се случва свързването на адреса. Някои програмни езици, като "C" и COBOL, трябва да бъдат компилирани, докато други, главно скриптове, се изпълняват от оригиналния програмен текст, а не от компилирана двоична версия на машинен код.

Видео на деня

Време за компилиране

Първият тип обвързване на адреса е свързване на адрес по време на компилиране. Това разпределя място в паметта на машинния код на компютъра, когато програмата се компилира в изпълним двоичен файл. Обвързването на адрес разпределя логически адрес към началната точка на сегмента в паметта, където се съхранява обектният код. Разпределението на паметта е дългосрочно и може да бъде променено само чрез повторно компилиране на програмата.

Време за зареждане

Ако разпределението на паметта е определено в момента на разпределяне на програмата, тогава никоя програма никога не може да се прехвърли от един компютър на друг в нейното компилирано състояние. Това е така, защото изпълнимият код ще съдържа разпределения на памет, които може вече да се използват от други програми на новия компютър. В този случай логическите адреси на програмата не са обвързани с физически адреси, докато програмата не бъде извикана и заредена в паметта.

Време за изпълнение

Обвързването на адрес за време на изпълнение обикновено се прилага само за променливи в програмите и е най-често срещаната форма на обвързване за скриптове, които не се компилират. В този сценарий програмата изисква място в паметта за променлива в програмата при първия път, когато тази променлива се срещне по време на обработката на инструкциите в скрипта. Паметта ще разпредели място за тази променлива, докато програмната последователност приключи, или освен ако конкретна инструкция в скрипта не освободи адреса на паметта, свързан с променлива.