Virtualna memorija u OS-u: što je, straničenje po zahtjevu, prednosti
⚡ Pametni sažetak
Virtualna memorija je mehanizam pohrane koji korisniku daje iluziju velike glavne memorije tretirajući dio sekundarne memorije kao RAM. Omogućuje izvršavanje procesa većih od fizičke memorije i implementira se pomoću straničenja na zahtjev.

Što je virtualna memorija?
Virtualna memorija je mehanizam pohrane koji korisniku nudi iluziju vrlo velike glavne memorije. To se postiže tretiranjem dijela sekundarne memorije kao glavne memorije. U virtualnoj memoriji korisnik može pohranjivati procese veće veličine od dostupne glavne memorije.
Stoga, umjesto učitavanja jednog dugog procesa u glavnu memoriju, OS učitava različite dijelove više od jednog procesa u glavnu memoriju. Virtualna memorija se uglavnom implementira sa straničenjem po zahtjevu i segmentacijom po zahtjevu.
Zašto je potrebna virtualna memorija?
Evo razloga za korištenje virtualne memorije:
- Kad god vaše računalo nema prostora u fizičkoj memoriji, ono što treba zapamtiti zapisuje na tvrdi disk u swap datoteku kao virtualnu memoriju.
- Ako računalo radi Windows treba više memorije/RAM-a nego što je instalirano u sustavu, za tu svrhu koristi mali dio tvrdog diska.
Kako radi virtualna memorija?
U modernom svijetu, virtualna memorija postala je prilično uobičajena ovih dana. Koristi se kad god je potrebno učitati neke stranice u glavnu memoriju za izvršavanje, a memorija nije dostupna za taj broj stranica.
Dakle, u tom slučaju, umjesto da spriječi ulazak stranica u glavnu memoriju, OS traži RAM prostor koji se minimalno koristi u posljednje vrijeme ili koji se ne referencira i premješta ga u sekundarnu memoriju kako bi napravio mjesta za nove stranice u glavnoj memoriji.
Dajte nam razumjeti upravljanje virtualnom memorijom uz pomoć jednog primjera.
Na primjer
Pretpostavimo da OS-u treba 300 MB memorije za pohranu svih pokrenutih programa. Međutim, trenutno je dostupno samo 50 MB fizičke memorije pohranjene u RAM-u.
- OS će zatim postaviti 250 MB virtualne memorije i koristiti program pod nazivom Virtual Memory Manager (VMM) za upravljanje tih 250 MB.
- Dakle, u ovom slučaju, VMM će na tvrdom disku stvoriti datoteku veličine 250 MB za pohranu potrebne dodatne memorije.
- OS će sada nastaviti adresirati memoriju kao da uzima u obzir 300 MB stvarne memorije pohranjene u RAM-u, čak i ako je dostupno samo 50 MB prostora.
- Zadatak VMM-a je upravljati s 300 MB memorije čak i ako je dostupno samo 50 MB stvarnog memorijskog prostora.
Što je Demand Paging?
Mehanizam straničenja na zahtjev vrlo je sličan a paging sustav s zamjenomping, gdje se procesi pohranjuju u sekundarnu memoriju, a stranice se učitavaju samo na zahtjev, a ne unaprijed.
Dakle, kada dođe do promjene konteksta, OS nikada ne kopira nijednu stranicu starog programa s diska ili bilo koju stranicu novog programa u glavnu memoriju. Umjesto toga, započet će izvršavanje novog programa nakon učitavanja prve stranice i dohvatit će stranice programa na koje se referira.
Tijekom izvršavanja programa, ako program referencira stranicu koja možda nije dostupna u glavnoj memoriji jer je zamijenjena, procesor to smatra nevažećom referencom memorije. To je zato što greška stranice prenosi kontrolu natrag s programa na operacijski sustav, koji zahtijeva pohranjivanje stranice natrag u memoriju.
Vrste metoda zamjene stranica
Evo nekih važnih metoda zamjene stranica:
- FIFO
- Optimalni algoritam
- Zamjena LRU stranice
Zamjena FIFO stranice
FIFO (First-in-first-out) je jednostavna metoda implementacije. U ovoj metodi memorija odabire stranicu za zamjenu koja je najduže bila u virtualnoj adresi memorije.
Značajke
- Kad god se učita nova stranica, uklanja se stranica koja je najdulje bila u memoriji. Dakle, lako je odlučiti koju stranicu ukloniti, jer se njezin identifikacijski broj uvijek nalazi na početku FIFO stoga.
- Najstarija stranica u glavnoj memoriji je ona koja bi trebala biti prva odabrana za zamjenu.
Optimalni algoritam
Optimalna metoda zamjene stranice odabire onu stranicu za zamjenu za koju je vrijeme do sljedeće reference najdulje.
Značajke
- Optimalni algoritam rezultira najmanjim brojem grešaka stranica. Ovaj algoritam je teško implementirati.
- Optimalni algoritam za zamjenu stranica ima najnižu stopu grešaka stranica od svih algoritama. Ovaj algoritam postoji i trebao bi se zvati MIN ili OPT.
- Zamijenite stranicu koja vjerojatno neće biti korištena dulje vrijeme. Koristi se samo vrijeme kada je potrebno koristiti stranicu.
Zamjena LRU stranice
Puni oblik LRU-a je najmanje nedavno korištena stranica. Ova metoda pomaže operativnom sustavu da pronađe korištenje stranice u kratkom vremenskom razdoblju. Ovaj algoritam treba implementirati povezivanjem brojača sa svakom stranicom.
Kako radi?
- Stranica koja se najdulje nije koristila u glavnoj memoriji bit će odabrana za zamjenu.
- Jednostavan za implementaciju, vodite popis, zamijenite stranice gledajući u prošlost.
Značajke
- Metoda zamjene LRU-a ima najveći broj. Ovaj brojač se naziva i registar starenja, koji određuje starost i koliko se s njima povezanih stranica treba referencirati.
- Stranica koja se najdulje nije koristila u glavnoj memoriji je ona koju treba odabrati za zamjenu.
- Također čuva popis i zamjenjuje stranice gledajući u prošlost.
Stopa grešaka
Stopa kvarova je učestalost kojom projektirani sustav ili komponenta otkazuje. Izražava se u kvarovima po jedinici vremena. Označava se grčkim slovom λ (lambda).
Prednosti virtualne memorije
Evo prednosti/koristi korištenja virtualne memorije:
- Virtualna memorija pomaže dobiti na brzini kada je samo određeni segment programa potreban za izvođenje programa.
- Vrlo je koristan u implementaciji multiprogramskog okruženja.
- Omogućuje pokretanje više aplikacija odjednom.
- Pomaže vam uklopiti mnoge velike programe u manje programe.
- Zajednički podaci ili kod mogu se dijeliti između memorije.
- Proces može postati čak i veći od cjelokupne fizičke memorije.
- Podaci/kod trebaju se čitati s diska kad god je to potrebno.
- Kod se može postaviti bilo gdje u fizičkoj memoriji bez potrebe za premještanjem.
- Više procesa treba održavati u glavnoj memoriji, što povećava učinkovito korištenje procesora.
- Svaka stranica se pohranjuje na disk dok ne bude potrebna, nakon čega se uklanja.
- Omogućuje pokretanje više aplikacija u isto vrijeme.
- Ne postoji određeno ograničenje stupnja multiprogramiranja.
- Treba pisati velike programe jer je dostupan virtualni adresni prostor veći u usporedbi s fizičkom memorijom.
Nedostaci virtualne memorije
Evo nedostataka/nedostataka korištenja virtualne memorije:
- Aplikacije mogu raditi sporije ako sustav koristi virtualnu memoriju.
- Vjerojatno će trebati više vremena za prebacivanje između aplikacija.
- Nudi manje prostora na tvrdom disku za vašu upotrebu.
- Smanjuje stabilnost sustava.
- Omogućuje većim aplikacijama pokretanje u sustavima koji ne nude dovoljno fizičke RAM memorije za njihovo pokretanje.
- Ne nudi iste performanse kao RAM.
- Negativno utječe na cjelokupnu izvedbu sustava.
- Zauzima prostor za pohranu koji se inače može koristiti za dugoročno pohranjivanje podataka.

