Що таке прив’язка адреси?

Плоский екран комп'ютера і клавіатура - вид збоку

Прив’язка адреси виділяє пам’ять комп’ютера програмному забезпеченню.

Авторство зображення: Райан Маквей/Photodisc/Getty Images

Пам'ять комп'ютера використовує як логічні адреси, так і фізичні адреси. Прив’язка адреси виділяє місце фізичної пам’яті логічному покажчику, асоціюючи фізичну адресу з логічною адресою, яка також відома як віртуальна адреса. Прив’язка адреси є частиною управління пам’яттю комп’ютера і виконується операційною системою від імені програм, яким потрібен доступ до пам’яті.

Управління пам'яттю

Прив’язка адреси пов’язана з тим, як код програми зберігається в пам’яті. Програми написані текстом, зрозумілим людиною, дотримуючись ряду правил, встановлених структурними вимогами мови програмування та використання ключових слів, які інтерпретуються в дії центральним процесором комп’ютера одиниця. Точка, на якій створюється виконувана версія програми, визначає, коли відбувається прив’язка адреси. Деякі мови програм, такі як "C" і COBOL, потребують компіляції, в той час як інші, в основному скрипти, запускаються з оригінального тексту програми, а не з скомпільованої двійкової версії машинного коду.

Відео дня

Час компіляції

Перший тип прив'язки адреси - це прив'язка адреси під час компіляції. Це виділяє місце в пам’яті для машинного коду комп’ютера, коли програма компілюється у виконуваний двійковий файл. Прив’язка адреси виділяє логічну адресу початковій точці сегмента в пам’яті, де зберігається об’єктний код. Розподіл пам'яті є довгостроковим і може бути змінений лише шляхом перекомпіляції програми.

Час завантаження

Якщо виділення пам’яті призначено під час виділення програми, то жодна програма ніколи не зможе передати з одного комп’ютера на інший у скомпільованому стані. Це пов’язано з тим, що виконуваний код міститиме виділення пам’яті, які можуть уже використовуватися іншими програмами на новому комп’ютері. У цьому випадку логічні адреси програми не прив’язані до фізичних адрес, доки програма не буде викликана та завантажена в пам’ять.

Час виконання

Прив’язка адреси часу виконання зазвичай застосовується лише до змінних у програмах і є найпоширенішою формою прив’язки для сценаріїв, які не компілюються. У цьому сценарії програма запитує місце в пам’яті для змінної в програмі, коли ця змінна зустрічається вперше під час обробки інструкцій у скрипті. Пам'ять буде виділяти місце для цієї змінної, доки не завершиться послідовність програми, або якщо конкретна інструкція в сценарії не звільнить адресу пам'яті, прив'язану до змінної.