VIRTUALNA MEMORIJA Emina Krivokapa UVOD Virtualna memorija je

  • Slides: 10
Download presentation
VIRTUALNA MEMORIJA Emina Krivokapa

VIRTUALNA MEMORIJA Emina Krivokapa

UVOD Virtualna memorija je razdvajanje logičkog adresnog prostora koji vidi korisnik od fizičkog adresnog

UVOD Virtualna memorija je razdvajanje logičkog adresnog prostora koji vidi korisnik od fizičkog adresnog prostora u kojem se program izvodi. Ovo razdvajanje omogućava programeru da raspolaže s neograničenim logičkim prostorom iako se program stvarno izvodi u relativnom malom fizičkom prostoru. Virtuelna memorija olakšava posao programeru, ne samo što raspolaže s neograničenim logičkim prostorom, nego što ne treba da vodi računa o strukturi programa koju je zahtjevao sustav s prebacivanjem ili dinamičkim punjenjem. Osnovna ideja virtualne memorije je da veličina programa, podataka i steka može prekoračit količinu fizičke memorije.

Za virtualnu memoriju je neophodno korespodenciju logičkih (virtuelnih) i fizičkih adresa, radi stvaranja uslova

Za virtualnu memoriju je neophodno korespodenciju logičkih (virtuelnih) i fizičkih adresa, radi stvaranja uslova za automatsko pretvaranje logičkih adresa u fizičke. Zbog toga, virtuelna memorija dijeli logički i fizički adresni prostor u stranice. Svaka stranica obuhvata isti broj lokacija jednak nekom stepenu broja 2. Logički adresni prostor se sastoji od logičkih stranica, smještenih u masovnoj memoriji, a fizički adresni prostor sačinjavaju fizičke stranice, smještene u radnoj memoriji. Kada zatreba, kopija logičke stranice se prebacuje u fizičku stranicu, a samo izmjenjena kopija se vraća iz fizičke stranice u logičku stranicu. Virtuelna memorija obično se realizira kao straničenje na zahtjev (demand paging).

Straničenje na zahtjev ( demand paging ) Straničenje na zahtjev koristi koncept sličan prebacivanju.

Straničenje na zahtjev ( demand paging ) Straničenje na zahtjev koristi koncept sličan prebacivanju. Proces je pohranjen na sekundarnoj memoriji, obično na disku. Kada se namjerava izvesti proces upisuje se samo jedan njegov dio u radnu memoriju. Kod upisivanja procesa u memoriju uobičajno se koristi tzv. lijeni prebacivač (lazy swapper) koji upisuje stranicu u memoriju tek kada je ona potrebna. Termin swepper može se smatrati netočnim jer se on obično odnosi na prebacivanje cijelog procesa. Ispravnije je korištenje termina pegger koji se odnosi na prebacivanje stranice. Proces se sada može promatrati kao niz stranica koji se prema potrebi upisuju u memoriju. Ovaj pristup dodjeli memorije zahtjeva i određenu sklopovsku podršku. Prvenstveno potrebno je razlučiti koje su stranice upisane u memoriju, a koje se samo nalaze na disku. Ovaj problem riješava se proširenjem tablice stranica bitom prisutnosti koji daje informaciju da li se stranica nalazi u radnoj memoriji ili ne, slika 9. 2.

Slika 9. 2. Tablica stranica kad sve stranice nisu u radnoj memoriji [1] Kada

Slika 9. 2. Tablica stranica kad sve stranice nisu u radnoj memoriji [1] Kada se pristupa pojedinoj stranici, operacijski sustav preko tabele stranica ispituje da li je adresirana stranica u memoriji ili ne. Ako je stranica upisana u fizičku memoriju, bit prisustva je postavljen u jedinicu, tada se izračunava fizička adresa naredbe ili podataka i pristupa mu se. Ali ako adresirana stranica nije u memoriji tada ju je potrebno upisati u memoriju i tek onda izvršiti pristup.

TABELA STRANICA Svrha tabele stranica je mapiranje virtualnih stranica u okvire stranica. Polje virtualne

TABELA STRANICA Svrha tabele stranica je mapiranje virtualnih stranica u okvire stranica. Polje virtualne stranice u virtualnoj adresi može se zamjeniti sa poljem za okvir stranice i na taj način dobiti fizičku adresu u memoriji. Mora se obratit pažnja na dva glavna pitanja: 1. Tabela stranica može biti veoma velika 2. Mapiranje mora biti veoma brzo. Za dugačke stranice postaje izražen problem interne fragmentacije ( jer sve stranice nisu uvijek potpuno iskorištene, pa se u njima javljaju neupotrebljive lokacije). Za kratke stranice postaje izražen problem veličine tabele stranica ( jer tada logički adresni prostor ima više stranica, pa zato i tabela stranica ima više elemenata).

Struktura unosa u tebele stranica : Najvažnije polje je broj okvira stranice. Imamo prisutan/odsutan

Struktura unosa u tebele stranica : Najvažnije polje je broj okvira stranice. Imamo prisutan/odsutan bit. Iako je taj bit 1, unos je validan i može se upotrijebiti. Ako je 0, virtualna stranica kojoj pripada unos nije trenutno u memoriji. Pristup unosu tabele stranica sa 0 na mjestu tog bita izaziva stvaranje greške stranice. Slika 1. [2]

Višenivoovske tabele stranica Slika 4. [1] Na slici 4. prikazana je 32 -bitna virtuelna

Višenivoovske tabele stranica Slika 4. [1] Na slici 4. prikazana je 32 -bitna virtuelna adresa koja je podjeljena na 10 bitno PT 1 polje i 12 -bitno ofset polje. Pošto je ofset 12 -bitni stranice su 4 KB, a ima ih ukupno (2)20. Tajna metode višenoovskih tabela stranica je izbjegavanje držanja svih tabela stranica u memoriji, cijelo vrijeme. [1].

Stepen multiprogramiranja kod virtuelne memorije zavisi od broja radnih skupova, koji se istovremeno mogu

Stepen multiprogramiranja kod virtuelne memorije zavisi od broja radnih skupova, koji se istovremeno mogu smjestiti u raspoloživu radnu memoriju. Za uspjeh koncepta virtuelne memorije važno je da se stalno prate radni skupovi istovreemeno postojećih procesa i da se povremeno izbacuju procesi, čim radna memorija postane pretijesna za sve radne skupove. Na ovaj način se oslobođavaju fizički blokovi za preostale procese, neophodni smještanje njihovih radnih skupova. Prilikom kasnijeg ubacivanja procesa, uputno je ubacivati kopije svih logičkih stranica, koje obrazuju njegov radni skup. Pored radnog skupa, procese karakteriše i minimalan skup. Broj fizičkih stranica u minimalnom skupu zavisi od procesora. Na primjer, za procesor, čije naredbe imaju najviše dva operanda, minimalni skup sadrži šest fizičkih stranica, jer se, u ekstremnom slučaju, i bajti mašinske naredbe, kao i bajti oba njena operanda, mogu nalaziti u različitim susjednim fizičkim stranicama. Pošto se naredba može izvršiti samo kada su u radnoj memoriji prisutni svi bajti njenog mašinskog formata i svi bajti njenog operanada, predhodno pomenuti ekstremni slučaj uslovljava da je pridruživanje minimalnog skupa procesu preduslov bilo kakve njegove aktivnosti.

Virtelna memorija pokazuje najbolje rezultate, kada uvijek ima slobodnih fizičkih stranica. To se može

Virtelna memorija pokazuje najbolje rezultate, kada uvijek ima slobodnih fizičkih stranica. To se može postići, ako se uvede poseban stranični sistemski proces, koji se peridično aktivira, da bi oslobodio izvjestan broj fizičkih stranica. On, pri tome, odabira fizičke stranice za oslobođenje po nekom od predhodno opisanih algoritama zamjene. Zadatak straničnog sistemskog procesa je i da u masovnu memoriju prebacuje izmjenjene kopije logičkih stranica (i da tako čuva ažurnost masovne memorije). Sloj za upravljanje virtuelnom memorijom sadrži, pored operacija zauzimanja i oslobađanja (namjenjenih slojevima iznad ovog sloja), stranični sistemski proces i obrađivače vremenskog i straničnog prekida. Obrađivač straničnog prekida se aktivira, kada je referencirana logička stranica, čija kopija nije prisutna u radnoj memoriji (odnosno, u nekoj od njenih fizičkih stranica). Donji dio ovog sloja sačinjavaju njegovi obrađivači prekida, jer ih poziva mehanizam prekida, znači, hardver, koji je ispod najnižeg sloja operativnog sistema.