Što je jedinica za upravljanje memorijom?

Računalni hardver koji je odgovoran za upravljanje memorijskim sustavom računala naziva se jedinica za upravljanje memorijom (MMU). Ova komponenta služi kao međuspremnik između CPU-a i sistemske memorije. Funkcije koje obavlja jedinica za upravljanje memorijom obično se mogu podijeliti u tri područja: upravljanje hardverskom memorijom, upravljanje memorijom operativnog sustava i upravljanje memorijom aplikacije. Iako jedinica za upravljanje memorijom može biti zasebna komponenta čipa, obično je integrirana u središnju procesorsku jedinicu (CPU).

Općenito, hardver povezan s upravljanjem memorijom uključuje memoriju s slučajnim pristupom (RAM) i memorijske predmemorije. RAM je fizički pretinac za pohranu koji se nalazi na tvrdom disku. To je glavno skladište računala gdje se podaci čitaju i zapisuju. Memorijske predmemorije koriste se za čuvanje kopija određenih podataka iz glavne memorije. CPU pristupa ovim informacijama koje se nalaze u predmemoriji memorije, što pomaže ubrzati vrijeme obrade.

Kada fizičkoj memoriji ili RAM-u ponestane memorijskog prostora, računalo automatski koristi virtualnu memoriju s tvrdog diska za pokretanje traženog programa. Jedinica za upravljanje memorijom dodjeljuje memoriju iz operacijskog sustava raznim aplikacijama. Virtualno adresno područje, koje se nalazi unutar središnje procesorske jedinice, sastoji se od niza adresa koje su podijeljene na stranice. Stranice su sekundarni blokovi za pohranu jednake veličine. Automatizirani proces straničenja omogućuje operativnom sustavu da iskoristi prostor za pohranu razbacan na tvrdom disku.

Umjesto da korisnik dobije poruku o pogrešci da nema dovoljno memorije, MMU automatski daje upute sustavu da izgradi dovoljno virtualne memorije za izvršavanje aplikacije. Kontinuirani prostor virtualne memorije stvara se iz skupa blokova virtualne memorije jednake veličine za pokretanje aplikacije. Ova značajka je glavni ključ za učinkovit i učinkovit rad ovog procesa jer sustav nije dužan stvoriti jedan dio virtualne memorije da bi se nosio s programskim zahtjevima. Stvaranje različitih veličina memorijskog prostora za smještaj programa različitih veličina uzrokuje problem poznat kao fragmentacija. To bi moglo dovesti do mogućnosti da nema dovoljno slobodnog prostora za veće programe kada je ukupni raspoloživi prostor zapravo dovoljan.

Upravljanje aplikacijskom memorijom podrazumijeva proces dodjele memorije potrebne za pokretanje programa iz dostupnih memorijskih resursa. U većim operativnim sustavima može biti pokrenuto mnogo kopija iste aplikacije. Jedinica za upravljanje memorijom često aplikaciji dodjeljuje memorijsku adresu koja najbolje odgovara njezinim potrebama. Jednostavnije je tim programima dodijeliti iste adrese. Također, jedinica za upravljanje memorijom može distribuirati memorijske resurse programima prema potrebi. Kada se operacija završi, memorija se reciklira za korištenje na drugom mjestu.
Jedan od glavnih izazova za jedinicu za upravljanje memorijom je osjetiti kada podaci više nisu potrebni i kada se mogu odbaciti. To oslobađa memoriju za korištenje u drugim procesima. Automatsko i ručno upravljanje memorijom postalo je zasebno područje proučavanja zbog ovog problema. Neučinkovito upravljanje memorijom predstavlja veliki problem kada je u pitanju optimalna izvedba računalnih sustava.