26.02.2015 Views

Operativni Sistemi - Univerzitet u Novom Sadu

Operativni Sistemi - Univerzitet u Novom Sadu

Operativni Sistemi - Univerzitet u Novom Sadu

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6. LRU – okvir koji smo najdavnije koristili<br />

(Least Recently Used Page Replacement Algorithm)<br />

Biramo onu stranicu koju smo najdavnije koristili: stranice sa kojima smo radili u bliskoj<br />

prošlosti, verovatno ć e nam trebati i u bliskoj buduć nosti. Ovaj algoritam radi jako dobro, ali se teško<br />

ostvaruje. Implementacija zahteva podršku od strane hardvera. Imamo nekoliko realizacija:<br />

1. Pomoću brojača (hardverska podrš ka): procesor ima brojač instrukcija. Kada se rač unar<br />

startuje, brojač se resetuje na nulu. Nakon svake instrukcije poveć amo ga za jedan. Svaki<br />

okvir ima svoj interni brojač . Svaki put kada pristupimo okviru, prebacimo sadržaj brojač a<br />

procesora u interni brojač okvira. Kada dođe do page fault prekida, upravljač memorijom<br />

pregleda sve interne brojač e i bira stranicu č iji je brojač najmanji (to znač i da je korišć ena<br />

najdavnije). Nedostatak: pri svakom pristupu memorije moramo izvršiti plus jedan pristup radi<br />

prebacivanja sadržaja glavnog brojač a u lokalni.<br />

2. Pomoću povezane liste (softversko reš enje): slič no kao kod FIFO algoritma, stranice<br />

stavljamo u red opsluživanja. Kada se javlja page fault prekid, biramo prvu iz reda, novu<br />

stavljamo na kraj reda. Svaki put kada pristupimo nekoj stranici, ažuriramo listu: stranicu<br />

vadimo iz liste i prebacimo na kraj reda. Ova realizacija je jako spora: pri svakom pristupu<br />

memoriji moramo ažurirati listu.<br />

3. Pomoću dvodimenzionalnog niza (matrice – hardverska podrš ka): imamo matricu formata<br />

NxN, gde N označ ava broj okvira interne memorije. Matrica se inicializuje na nulu (nulamatrica).<br />

Prilikom pristupa k-tom okviru, k-tu vrstu matrice ispunimo sa jedinicama a k-tu<br />

kolonu sa nulama. Tada vrste označ avaju mladost odgovarajuć e stranice u binarnom zapisu<br />

(što je broj već i, stranica je korišć ena u bližoj prošlosti). Biramo stranicu sa najmanjim<br />

brojem.<br />

Primer: neka imamo 4 okvira, tada nam treba matrica formata 4x4, neka je redosled pristupa<br />

sledeć i : 1,1,2,3,1,4. Tada ć emo izbaciti drugu stranicu jer je ona najdavnije korišć ena.<br />

1 2 3 4 1 2 3 4 1 2 3 4<br />

1 0 1 1 1 0 1 1 1 0 0 1 1<br />

2 0 0 0 0 0 0 0 0 1 0 1 1<br />

3 0 0 0 0 0 0 0 0 0 0 0 0<br />

4 0 0 0 0 0 0 0 0 0 0 0 0<br />

1 2 3 4 1 2 3 4 1 2 3 4<br />

1 0 0 0 1 0 1 1 1 0 1 1 0<br />

2 1 0 0 1 0 0 0 1 0 0 0 0<br />

3 1 1 0 1 0 1 0 1 0 1 0 0<br />

4 0 0 0 0 0 0 0 0 1 1 1 0<br />

7. NFU – okvir koji najređ e koristimo<br />

(Not Frequently Used Page Replacement Algorithm)<br />

Biramo stranicu koja je najređe (najmanji broj puta) korišć ena. Oslanja se na R bit: svaki okvir<br />

ima svoj brojač i R bit. R bit označ ava da li smo pritupili datoj stranici u predhidnih 20ms. Inicijalna<br />

vrednost i brojač a i R bita je 0. Pri svakom prekidu hardverskog sata OS pogleda sve R-bitove, doda<br />

71

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!