Mi az a címkötés?
A számítógép memóriája logikai és fizikai címeket is használ. A cím-összerendelés egy fizikai memóriahelyet rendel egy logikai mutatóhoz azáltal, hogy fizikai címet társít egy logikai címhez, amely virtuális címként is ismert. A cím-összerendelés a számítógép memóriakezelésének része, és az operációs rendszer végzi el a memóriához hozzáférést igénylő alkalmazások nevében.
Memóriakezelés
A cím-összerendelés egy program kódjának a memóriában való tárolására vonatkozik. A programokat ember által olvasható szöveggel írják, a programozási nyelv szerkezeti követelményei által felállított szabályokat követve, és kulcsszavakat használnak, amelyeket a számítógép központi feldolgozó egysége értelmez műveletekké. A program végrehajtható verziójának létrehozásának pontja határozza meg, hogy mikor történik cím-összerendelés. Egyes programnyelveket, például a "C"-t és a COBOL-t le kell fordítani, míg mások, főleg a szkriptek, az eredeti programszövegből futnak, nem pedig egy gépi kóddal lefordított bináris verzióból.
Fordítási idő
A cím-összerendelés első típusa a fordítási idejű cím-összerendelés. Ez helyet foglal a memóriában a számítógép gépi kódjának, amikor a programot végrehajtható bináris fájlba fordítják. A cím-összerendelés logikai címet rendel a szegmens kezdőpontjához a memóriában, ahol az objektumkód tárolva van. A memóriafoglalás hosszú távú, és csak a program újrafordításával módosítható.
Betöltési idő
Ha a program lefoglalásakor a memóriafoglalás ki van jelölve, akkor egyetlen program sem tud átmásolni egyik számítógépről a másikra lefordított állapotában. Ennek az az oka, hogy a végrehajtható kód olyan memóriafoglalásokat tartalmaz majd, amelyeket az új számítógép más programjai már használhatnak. Ebben az esetben a program logikai címei nincsenek fizikai címekhez kötve, amíg a programot meg nem hívják és a memóriába betöltik.
Végrehajtási idő
A végrehajtási idő cím-összerendelése általában csak a programok változóira vonatkozik, és ez a legelterjedtebb összerendelés olyan szkriptek esetében, amelyeket nem fordítanak le. Ebben a forgatókönyvben a program memóriaterületet kér egy változó számára a programban, amikor először találkozik ezzel a változóval a parancsfájlban lévő utasítások feldolgozása során. A memória addig foglal helyet a változónak, amíg a programsorozat véget nem ér, vagy hacsak a szkriptben egy adott utasítás fel nem engedi a változóhoz kötött memóriacímet.