Co to jest wiązanie adresu?

click fraud protection
Płaski ekran komputera i klawiatura — widok z boku

Powiązanie adresu przydziela pamięć komputera do oprogramowania.

Źródło obrazu: Ryan McVay/Photodisc/Getty Images

Pamięć komputera wykorzystuje zarówno adresy logiczne, jak i adresy fizyczne. Powiązanie adresu przydziela fizyczną lokalizację pamięci do logicznego wskaźnika, kojarząc adres fizyczny z adresem logicznym, który jest również znany jako adres wirtualny. Wiązanie adresów jest częścią zarządzania pamięcią komputera i jest wykonywane przez system operacyjny w imieniu aplikacji, które potrzebują dostępu do pamięci.

Zarządzanie pamięcią

Powiązanie adresu dotyczy sposobu przechowywania kodu programu w pamięci. Programy są napisane tekstem czytelnym dla człowieka, zgodnie z szeregiem zasad ustanowionych przez wymagania strukturalne języka programowania i używania słów kluczowych, które są interpretowane na działania przez Centralne Przetwarzanie komputera Jednostka. Moment, w którym tworzona jest wykonywalna wersja programu, określa, kiedy następuje powiązanie adresu. Niektóre języki programowania, takie jak „C” i COBOL, wymagają kompilacji, podczas gdy inne, głównie skrypty, działają z oryginalnego tekstu programu, a nie z wersji binarnej skompilowanej na kodzie maszynowym.

Wideo dnia

Czas kompilacji

Pierwszym typem wiązania adresu jest wiązanie adresu w czasie kompilacji. To przydziela miejsce w pamięci na kod maszynowy komputera, gdy program jest kompilowany do wykonywalnego pliku binarnego. Powiązanie adresu przydziela adres logiczny do punktu początkowego segmentu w pamięci, w którym przechowywany jest kod obiektowy. Alokacja pamięci jest długoterminowa i można ją zmienić tylko przez ponowną kompilację programu.

Czas ładowania

Jeśli alokacja pamięci jest wyznaczona w momencie alokacji programu, żaden program nie może nigdy przenosić się z jednego komputera na drugi w stanie skompilowanym. Dzieje się tak, ponieważ kod wykonywalny będzie zawierał przydziały pamięci, które mogą być już używane przez inne programy na nowym komputerze. W tym przypadku adresy logiczne programu nie są powiązane z adresami fizycznymi, dopóki program nie zostanie wywołany i załadowany do pamięci.

Czas egzekucji

Wiązanie adresów czasu wykonania zwykle dotyczy tylko zmiennych w programach i jest najczęstszą formą wiązania skryptów, które nie są kompilowane. W tym scenariuszu program żąda miejsca w pamięci dla zmiennej w programie przy pierwszym napotkaniu tej zmiennej podczas przetwarzania instrukcji w skrypcie. Pamięć przydzieli miejsce tej zmiennej, dopóki sekwencja programu się nie skończy, lub chyba że określona instrukcja w skrypcie zwolni adres pamięci związany ze zmienną.