UPRAVLJANJE MEMORIJOM
Upravljanje memorijom je jedna od osnovnih funkcija operativnih sistema. Za izvršavanje svakog procesa je potrebna operativna memorija.
Savremeni operativni sistemi omogućavaju svakom procesu da dobije više virtuelne memorije, nego što je ukupna veličina stvarne (fizičke) memorije na datom računarskom sistemu.
Glavni cilj kod upravljanja memorijom je da se kombinovanjem velike spore memorije sa malom brzom memorijom ostvari efekat velike brze memorije.
Za upravljanje memorijom bitni su programski prevodilac, operativni sistem i hardver.
Prvo, programski prevodilac struktuira adresni prostor date aplikacije.
Zatim, operativni sistem preslikava strukture programskog prevodioca u hardver.
Na kraju, hardver izvršava stvarne pristupe memorijskim lokacijama.
Problem upravljanja memorijom
Najvažnije aktivnosti operativnog sistema u dijelu za upravljanje memorijom su:
- vođenje evidencije o tome koji se dijelovi memorije trenutno koriste i ko ih koristi,
- donošenje odluke o učitavanju procesa u memoriju, odnosno koje procese prebaciti u memoriju kada memorijski prostor postane raspoloživ,
- dodjela i oslobađanje memorijskog prostora po potrebi.
Da bi se jedan program izvršio neophodno je da se u memoriju unesu i njegove instrukcije i podaci, kako bi bili dostupni centralnom procesoru. To ne znači da sve instrukcije i svi podaci moraju da budu u memoriji sve vrijeme tokom izvršavanja programa. Moguće je unijeti u memoriju samo jedan dio instrukcija programa sa podacima neophodnim za njihovo izvršavanje. Po izvršavanju tog dijela programa u memoriju se može unijeti, u sve lokacije, sljedeći niz naredbi sa podacima potrebnim za njihovo izvršavanje.
U uslovima višeprogramskog rada ovakva mogućnost je posebno zanimljiva. Držanjem u memoriji dijelova, a ne cijelih programa, moguće je aktivirati više programa u jednom vremenskom intervalu čime se povećava stepen višeprogramskog rada, a time i stepen iskorišćenja ostalih resursa računara.
Operativni sistem problem upravljanja memorijom svodi na problem vremenske i prostorne raspodjele programa ili dijelova programa između dva nivoa memorije. Drugim riječima, upravljanje memorijom se sastoji od sljedeće tri komponente:
- upravljanje unošenjem (“fetch policy”) – u smislu donošenja odluke o tome kada će se program ili njegovi dijelovi unijeti u memoriju,
- upravljanje smještanjem (“placement policy”) – u smislu donošenja odluke o tome gdje će se program ili njegovi dijelovi smjestiti u memoriji,
- upravljanje zamjenom (“replacement policy”) – u smislu donošenja odluke o tome koji će se program ili dijelovi programa izbaciti iz memorije da bi se oslobodio prostor za unošenje drugog programa ili dijelova drugog ili istog programa.
Samo upravljanje memorijom može da bude statičko i dinamičko. Statičko upravljanje memorijom je kada se cio program unosi u memoriju prije izvršavanja programa. Dinamičko upravljanje memorijom je kada se veličina memorije određuje na osnovu veličine programa u trenutku unošenja programa u memoriju ili kada se dijelovi programa mogu unostiti u memoriju u toku izvršavanja programa.

Prema tome, u opštem slučaju postoje sljedeći načini upravljanja memorijom:
- pomoću statičkih particija,
- pomoću dinamičkih particija,
- pomoću statičkih stranica,
- pomoću statičkih segmenata,
- pomoću dinamičkih stranica,
- pomoću dinamičkih segmenata,
- pomoću dinamičkih stranica i segmenata.