Što je memorijska adresa?

U odnosu na računala, memorijska adresa je numerička vrijednost koja upućuje na jedan element podataka unutar medija za pohranu. Lokacija računalne memorije može biti unutar memorije s slučajnim pristupom (RAM) računala, na tvrdom disku ili datotečnom sustavu, ili čak na uređaju za privremenu pohranu koji se koristi kao oblik virtualne memorije kada nema dovoljno memorije sustava . Veličina memorijske lokacije ovisi o arhitekturi računalnog sustava ili uređaja, ali općenito se kreće od 8-bitnog bajta do 64-bitnog cijelog broja. Postoje razne metode koje se koriste za pristup i upravljanje memorijom, mnoge od njih koriste komad hardvera poznat kao jedinica za upravljanje memorijom (MMU), dok se drugi u potpunosti oslanjaju na softver. Svi sustavi imaju ograničenje na maksimalnu memorijsku adresu kojoj se može pristupiti, što je obično maksimalna veličina najvećeg cjelobrojnog tipa dostupnog na sustavu.

Najčešći tip memorijske adrese odnosi se na mjesto unutar RAM memorije računalnog sustava, što omogućuje brz pristup podacima koji se dinamički mijenjaju. Stvarne informacije pohranjene u memoriji računala mogu se kretati od sirovih podataka kao što su brojevi ili tekstualni dokumenti koji se mijenjaju ili pregledavaju, do stvarnog programskog koda pohranjenog na određenim memorijskim adresama dok se izvršava. Kada program završi izvođenje, informacija o memorijskoj adresi koja se koristila postaje nevažeća jer se RAM oslobađa za sljedeći program koji će se koristiti.

Kako je tehnologija napredovala, pojam “memorija adresa” se promijenio i od 2011. ne odnosi se uvijek na stvarnu fizičku adresu. Umjesto toga, može se odnositi na lokaciju koju može razriješiti MMU računala ili uređaja. To znači da MMU pruža razinu apstrakcije između programera i programa, umjesto da dopušta operativnom sustavu ili drugom hardveru da upravlja kretanjem i dodjelom memorije kako smatra prikladnim. Posrednički prijevod memorijske adrese znači da programer ne mora učiti novu memorijsku shemu ili mijenjati izvorni kod za različite vrste računalnih arhitektura.

U mnogim računalnim sustavima i operacijskim sustavima memorijska adresa se možda ne odnosi uvijek na podatke ili kod u memoriji. Postoje sheme u kojima se adresa može odnositi na ulaznu ili izlaznu točku za periferni uređaj kao što je monitor ili virtualni uređaj kao što je utičnica. U tim slučajevima, informacija koja se nalazi na određenoj adresi zapravo se prenosi na hardverski uređaj koji predstavlja. Ovo može biti nevjerojatno učinkovit način za pristup uređaju kao što je pisač, ali također može dovesti do ozbiljnih ranjivosti i zbrke prilikom otklanjanja pogrešaka u programu.