You are on page 1of 14

SVEUILITE/ UNIVERZITET VITEZ TRAVNIK

FAKULTET POSLOVNE INFORMATIKE


VITEZ
STUDIJ PRVOG CIKLUSA, II. GODINA STUDIJA
SMJER: INFORMACIJSKE TEHNOLOGIJE

NEVEN POPOVI

VIRTUELNA MEMORIJA
SEMINARSKI RAD

TRAVNIK, 2016

SVEUILITE/ UNIVERZITET VITEZ TRAVNIK

FAKULTET POSLOVNE INFORMATIKE


VITEZ
SMJER: INFORMACIJSKE TEHNOLOGIJE

VIRTUELNA MEMORIJA
SEMINARSKI RAD

IZJAVA: Ja, Neven Popovi, student Sveuilita/Univerziteta VitezVitez, Indeks


broj 0312-14/RIT odgovorno i uz moralnu i akademsku odgovornost izjavljujem da
sam ovaj rad izradio potpuno samonstalno uz koritenje citirane literature i pomo
profesora, odnosno asistenta.

Predmet: Operativni sistemi


Profesor: Doc.dr. Sinia Mini
Asistent: Mr. Mahir Zajmovi
Student: Neven Popovi
Broj Indeksa: 0312-14/RIT

Travnik, Septembar 2016.

Sadraj:
1. UVOD 4
2. POJAM VIRTUELNE MEMORIJE 5
3.
4.
5.
6.
7.
8.

ISTORIJA RAZVOJA VIRTUELNE MEMORIJE 7


STRANIENJE (engl. PAGING)....................................................................8
STRANIENJE VIRTUELNE MEMORIJE 9
STRANIENJE NA ZAHTJEV (engl. DEMAND PAGING)
9
IZBJEGAVNJE RASIPANJA........................................................................13
ZAKLJUAK.................................................................................................14

1. UVOD

U seminarskom radu opisane su razliite strategije upravljanja memorijom koje se susreu ili su
se susretale u operativnim sistemina. Sve navedene strategije imaju jedinstven cilj: imati u
memoriji to vei broj procesa kako bi se realizirao to vei nivo vieprocesiranja. Takoe, imaju
jedinstven zahtjev da cijeli program koji se izvodi mora biti u radnoj memoriji. Pojam virtualne
memorije omoguava korisnicima da poveaju memoriju i to ak vie i od RAM-memorije.

2. POJAM VIRTUALNE MEMORIJE

Virtualna memorija je strategija dodjele memorije koja dozvoljava da samo dio programa koji se
izrsava bude u operativnoj memoriji. Temeljna prednost ovakvog pristupa je da program moe
biti i vei od radne memorije. Tako da korisniki program moe poprimiti proizvoljnu veliinu, a
program za upravljanje memorijom preslikava logiki prostor korisnika u ogranieni prostor u
radnoj memoriji. Ovakav program za upravljanje memorijom nije jednostavno realizovati. Loa
implementacija ovakvog program moe znaajno smanjiti performanse cijelog operativnog
sistema. Virtualna memorija je razdvajanje logikog adresnog prostora koji vidi korisnik od
fizikog adresnog prostora u kojem se program izvodi. Ovo razdvajanje omoguava programeru
da raspolae s neogranienim logikim prostorom iako se program stvarno izvodi u relativno
malom fizikom adresnom prostoru. Virtualna memorija olakava posao programeru, ne samo
to raspolae s neogranienim logikim prostorom, nego to ne treba da vodi rauna o strukturi
programa koji je zahtjevao sistem s prebacivanjem ili dinamikim punjenjem. Princip virtualne
memorije prikazan je na slici 1.

Slika 1.

Virtualna memorija obino se realizuje kao stranienje na zahtjev (engl. demand paging).
Mogue ju je primjeniti u sistemima koji koriste podjelu memorije na segmente. Nekoliko
sistema rjeilo je virtualnu memoriju pomou segmenata, gdje su segmenti podjeljeni na stranice.
Tako korisnik vidi program podjeljen na segmente, a operativni sistem djeli segmente na
stranice. Tako je IBM OS/2 koristio koncept segmentacije na zahjev. Vano je napomenuti da
algoritmi zamene segmenata su znatno sloeniji od algoritama zamjene stranica budui su
segmenti promjenljive veliine, a stranice fiksne veliine.

3. ISTORIJA RAZVOJA VIRTUALNE MEMORIJE

Prije razvoja virtualne memorije, svi vei programi morali su sadrati logika za upravljanje s dva
nivoa skladitenje (primarni nivo (RAM) i sekundarni (Hard dis)), koristei overlaying tehnike.
Programi su bili odgovorni za kretanje overlay-a natrag i napred od sekundarnog nivoa
skladitnja u osnovni. Glavni razlog za uvoenje virtualne memorije je, dakle, ne samo kako bi
proirili primarne memorije,nego I da napravimo razliku izmeu ekstenzija da bi olakali
upotrebu programerima. Mnogi sistemi ve su imali mogunost da podjele memoriju izmeu
vie programa (koristi se za multiprogramming i multiprocessing), pod uslovom primjene "base
and bounds registers" na rane modele PDP-10, bez proirivanja virtualne memorije. To daje
svakoj aplikaciji privatni adresni prostor poevi od adrese od 0, s adresom u privatni adresni
prostor,tako to provjerava i prijavljuje da biste bili sigurni da je u djelu memorije dodjeljeno za
primjenu.Virtualna memorija je razvijala od 1959.godine do 1962. godine na univerzitetu u
Manesteru za Atlas Computer-e, zavrena je u 1962. Godine. Meutim, Fritz-Rudolf Gntsch,
jedan od Njemakih pionirskih kompjuterskih naunika, a kasnije izumitelj u Telefunken TR
440 , tvrdi da je izmislio pojam 1957 u njegovoj doktorskoj disertaciji Logiki koncept
digitalnog raunarskog ureaja s viestrukim asinhronim ureajima za skladitenje i
automatskom brzom memorijom (Logischer Entwurf eines digitalen Rechengertes mit mehreren
asynchron laufenden Trommeln und automatischem Schnellspeicherbetrieb). 1961. godine,
Burroughs je izdao B5000, prvi komercijalni raunar sa virtualnom memorijom. Kao i mnogim
tehnologijama u razvoju raunara,pojam virtualne memorije nije se prihvatio bez izazova. Prije
nego to se moglo implementirati u glavnim operativnim sustavima, mnogi modeli, eksperimenti,
a teorije morale su biti razvijene u prevazilaenju brojnih problema. Do 1969. godine debata oko
virtualne memorije za komercijalne raunare se zavrila. IBM-ov istraivaki tima na elu sa
David Sayre pokazao je da virtualna memorije overlay sistema radi bolje od runo kontrolisanih
sistema. Moda prvi miniraunar koji je uveo virtualnu memoriju bio je norveki Nord-1.
Virtualna memorija je uvedena na x86(32-bitnoj) arhitekturi Intel 80286 procesorom.

4. STRANIENJE (engl. PAGING)

Stranienje je proces spremanja neaktivnih stranica virtualne memorije na disk, vraajui ih u


stvarnoj memoriji po potrebi. Veina sistema virtualne memorije omoguava programima
korienje virtualnih adresa u rasponima koji prelaze u ukupnom iznosu od stvarne memorije
(RAM-a, npr.). Da bi to uinili oni koristite disk za spremanje datoteka stranica virtualne
memorije koje trenutno nisu aktivne,vraajui ih u stvarnoj memoriji kada su potrebni. Stranice
se ne mora vratiti istoj stvarnoj adresi sa koje je bila spremljena samo su programi svesni
virtualne adrese. Obino kada e stranica biti vraena na adresu stvarne memorije, stvarna
memorija ve sadri drugu virtualnu memorijsku stranicu koja e se sauvati na disk prije nego
to se povratak izvri.

5. STRANIENJE VIRTUELNE MEMORIJE

Gotovo sve implementacije virtualne memorije vre djeljenje virtualnog adresnog prostora za
primjenu programa u stranice, a stranica je blok stalne virtualne memorijske adrese. Stranica je
obino veliine 4K bytes, a sa sistemima velike virtualne adrese ili raspona velikih koliina
stvarne memorije (npr. RAM) obino koristiti veu veliinu stranica.

6. STRANIENJE NA ZAHTEV (engl. DEMAND PAGING)

Stranienje na zahtjev koristi koncept slian prebacivanju. Proces je pohranjen na sekundarnoj


memoriji, obino disku. Kada se namjerava izvriti proces, upisuje se samo jedan njegov dio u
radnu memoriju. Kod upisivanja procesa u memoriju uobiajeno se koristi tzv. lenji prebaciva
(engl. lazy swapper) koji upisuje stranicu u memoriju tek kada je ona potrebna. Termin swapper
moe se smatrati netanim jer se on obino odnosi na prebacivanje cijelog procesa. Ispravnije je
korienje termina pegger koji se odnosi na prebacivanje stranice. Proces se sada moe
promatrati kao niz stranica koji se prema potrebi upisuju u memoriju. Ovakav pristup dodjeli
memorije zahtjeva i odreenu sklopovsku podrku. Prvenstveno potrebno je razvrstati koje su
stranice upisane u memoriju, a koje se samo nalaze na disku. Ovaj problem rjeava se
proirenjem tablice stranica bitom prisutnosti koji daje informaciju da li se stranica nalazi u
radnoj memoriji ili ne. Prikaz na slici 2.

Slika 2.
Kada se pristupa pojedinoj stranici, OS preko tablice stranica ispituje da li je adresirana stranica
u memoriji ili ne. Ako je stranica u upisana u fiziku memoriju, bit prisustva je postavljen u
jedinicu, tada se izraunava fizika adresa naredbe ili podatka i pristupa mu se. Ali ako
adresirana stranica nije u memoriji tada ju je potrebno upisati u memoriju i tek onda izvriti
pristup. Procedura pristupa stranici moe se opisati na sljedei nain:
a. Sistem prvo provjerava bit prisustva adresirane stranice kako bi se odredilo da li je stranica u
memoriji ili ne.
b. Ukoliko stranica nije u memoriji (dolo je do tzv. promaaja) generie se prekid koji javlja
operativnom sistemu da treba da pronae stranicu na sekundarnoj memoriji i prebaci je u
radnu memoriju. Obino kao promaaj rezultat je prekid prava korienja procesora, pa se
proces prebacuje u red ekanja na U/I ureaj, u ovom sluaju disk.
c. Operativni sistem pronalazi slobodan okvir u radnoj memoriji ( OS vodi listu slobodnih
okvira).
d. Prebacuje se traena stranica u odabrani okvir.
e. Osvjeava se tablica stranica procesa na nain da se stranici pridruuje dodijeljeni okvir.
Ovim je praktino proces pripravan da nastavi s izvoenjem.
f.

Prekinuta naredba se ponovo izvodi a stranici se pristupa kao da je ona oduvijek bila u
memoriji.
Prikaz na slici 3.

10

Slika 3.
U cijelom ovom procesu vano je primjetiti da se nakon prekida sauva stanje procesa kao i da
se nakon unosa stranice u radnu memoriju kao osvjeavanja tablice stanja moe nesmetano
nastaviti. Jedina razlika je u tome to je sada adresirana stranica u radnoj memoriji. Teoretski
postoji vjerovatnoa da tokom izvoenja jedne naredbe doe do viestrukih promaaja. Naime,
program se moe nalaziti na jednoj stranici, a podaci na drugoj. Ovakve situacije, koje na sreu
nisu este, dovele bi do znaajnog pada performansi sistema. Kao i kod dodjele memorije po
stranicama, virtualna memorija zahtjeva znaajnu hardversku podrku kako bi se odrale dobre
performanse sistema. Uz hardver potrebna je i dodatna programska podrka. Takoe, za
implementaciju ovakvog sistema dodjele memorije potrebne su i odreene preinake arhitekture
raunala. Temeljni problem je potreba za ponavljanjem naredbe ukoliko doe do promaaja. Do
promaaja moe doi u bilo kojoj fazi izvoenja naredbe. Ukoliko do promaaja doe kod
dohvata naredbe jednostavno se nakon unosa stranice u memoriju ponavlja njen dohvat i onda
nastavlja s njenim izvoenjem. Ali ukoliko doe do promaaja tokom dohvata operanada tada je
potrebno ponovo dohvatiti naredbu, dekodirati je, pa dohvatiti operand koji je sada u radnoj
memoriji. Problem moe nastupiti ukoliko procesor raspolae s naredbama koje mijenjaju
istovremeno sadraje vie memorijskih lokacija. Tako je npr. IBM 370, a i Intel 80x86 ima
naredbe za prebacivanje niza karaktera s jedne na drugu lokaciju. Poseban problem nastaje
ukoliko izvorni i kranji niz dijele neke lokacije, slika 4. Ako je promaaj nastupio nakon to je
izmjenjen dio izvornog niza tada nije mogue ponoviti zapoetu a prekinutu naredbu.

11

Slika 4.
Navedeni problem mogue je rijeiti na dva naina. Prvi je da se prije prebacivanja ispitaju
poetne i krajne adrese oba niza kao i da se prema potrebi odmah unesu potrebne stranice u
memoriju. Drugi pristup bila bi primena privremenih spremnika u koju bi se pohranile
vrijednosti promenljivih lokacija. U sluaju obnovili bi se sadraji promenljivih lokacija i
ponovila bi se naredba. Slian problem susree se kod procesora koji koriste posebne modove
adresiranja kao npr. autoinkrement i autodekrement (npr. PDP 11 ili Motorola 68000). Ovi
adresni modovi koriste sadraj spremnika kao pokaziva na podatak kojem se pristupa, pri emu
se automatski sadraj spremnika inkrementira ili dekrementira. Autodekrement umanjuje
vrijednost pokazivaa (sadraj spremnika) pre pristupa operandu, dok aoutinkrement poveava
vrednost pokazivaa(sadraj spremnika) nakon pristupa operandu. Tako naredba
MOV (R2)+,-(R3)
kopira sadraj memorijske lokacije na koju pokazuje spremnik R2 na memorijsku lokaciju na
koju pokazuje spremnik R3, s time da se sadraj spremnika R2 poveava za 2 nakon upisa
vrijednosti u memoriju, a sadraj spremnika R3 umanjuje se za 2 prije dohvata operanda.
Ukoliko operand na koji pokazuje umanjena vrijednost spremnika R3 nije u memoriji (promaaj)
tada nastupa problem pri ponovljenom izvoenju naredbe. Mogue rijeenje je uvoenje
zasebnog privremenog spremnika koji pamti prethodni sadraj spremnika tako da je pri
ponavljanju naredbe mogue obnoviti prvobitnu vrijednost spremnika.Svakako navedeni
12

problemi postavljaju posebne zahtjeve na arhitekturu procesora koji koristi stranienje na


zahtjev. Sklopovi koji upravljaju memorijom nalaze se izmeu procesora i memorije i moraju biti
potpuno transparentni korisniku. Zato ovakav sustav za upravljanje memorijom nije mogue
realizirati kod svih procesora.

7. IZBJEGAVANJE RASIPANJA

Sve implementacije tee da izbjegnu problem nazivan "rasipanje", gdje raunar potroi previe
vremena mjeanjem (engl. Shuffling) blokovima virtualne memorije izmeu stvarne memorije i
diskova, i zato ini da rade sporije. Bolji dizajn primjene programa mogu pomoi, ali u stvarnosti
jedini lijek je instalirati vie stvarne memorije.

13

8. ZAKLJUAK

U ovom seminarsko radu opisana je virtualna memorija i naina njenog funkcionisanja. Isto
grafiki je prikazano nain na koji se vre ti procesi.

LITERATURA

http://en.wikipedia.org/wiki/Virtual_memory

14

You might also like