You are on page 1of 28

UVOD

Ljudi su prije mnogo godina bili suoeni sa problemom, u kojima su programi bili preveliki da bi stali u memoriju. Rijeenje za ovaj problem je bila podjela programa na dijelove, zvane dopune (overlays). Ove dopune su se nalazile na disku i operativni sistem bi ih po potrebi prebacivao u memoriju i obratno. Osnovna ideja virtualne memorije je omoguiti da veliina podatka, programa i steka moe prekoraiti koliinu fizike memorije. Kod veine raunara ne postoji jedan prema jedan komunikacija izmeu adresa koji generie program i adresa operativne memorije. Adrese operativne memorije se nazivaju realne adrese, a adrese koje generie program zovu se virtualne adrese. Svi programi i podaci nekog procesa nalaze se na disku i samo neki njihovi dijelovi se po potrebi uzimaju sa diska i smjetaju u neki dio operativne memorije. Zato se kod ovih raunara, za svaki proces vodi evidencija o svakom njenom dijelu koji se nalaze u operativnoj memoriji i na kojem mjestu. To se realizuje pomou tzv. tabela preslikavanja, koje se formiraju za svaki proces u operativnoj memoriji.

VIRTUALNA MEMORIJA
Organizacija virtualne memorije
Postoje tri vrste organizacije virtualne memorije, a to su: -

stranina segmentna i segmentno stranina organizacija

Stranina organizacija virtualne memorije


Kod stranine organizacije virtualne memorije virtualni adresni prostor se dijeli na dijelove fiksne veliine koje se nazivaju stranice, a realni adresni prostor se dijeli na fiksne dijelove koji se nazivaju blokovi. Veliina stranice odgovara veliini bloka. Pojedine stranice svih procesa se po potrebi smjetaju u slobodne blokove, a kada se svi blokovi operativne memorije popune stranicama procesa, neka od stranica se vraa na disk da bi se oslobodio blok za neku novu stranicu. Kod ove organizacije virtualna adresa ima dva polja: broj stranice (page) duine p bita i adresa rijei (word) u stranici duine w bita. Veliina virtualnog adresnog prostora je 2p+w rijei, a veliina stranice 2w rijei. Realna adresa ima takoer dva polja: broj bloka (block) duine b bita i adresu rijei (word) u bloku duine w bita. Veliina adresnog prostora je 2b+w rijei, a veliina bloka 2w rijei. Na slici 1.1.1. prikazana je struktura virtualne i realne adrese i duine njihovih dijelova u bitovima. Tabela stranica (PT) jednog procesa data je na gore navedenoj slici. Ova tabela ima poseban ulaza za

svaku stranicu procesa. U njima se nalaze stranice koje su neophodne za preslikavanje stranica virtualnog adresnog prostora procesa u blokove operativne memorije. Poto u virtualnom adresnom prostoru procesa ima 2p stranica, pa zbog toga i tabela stranica ima 2p ulaza. Poetna adresa tabele stranica nalazi se u posebnom registru procesora koji se naziva pokaziva (ukaziva) na PT (PTP). Na osnovu sadraja pokazivaa (ukazivaa) i broja stranice, jedinica za preslikavanje virtualnih adresa u realne adrese dolazi do deskriptora stranice, a time i do potrebnih informacija za preslikavanje. Poetne adrese tabela svih procesa uva operativni sistem. Tokom prijelaza sa jednog procesa na drugi, operativni sistem prvo uva kontekst procesa kome se oduzima procesor, a potom se restaurira kontekst procesa kome se dodjeljuje procesor. Tako se poetna adresa upisuje u ukaziva na PT kome se dodjeljuje procesor. Tako se obezbjeuje da jedinica za preslikavanje pristupi tabeli stranica.

Slika 1.1.1. Virtualna, realna adresa i tabela stranica za straninu organizaciju virtualne memorije

Deskriptor stranice sadri sljedea polja: V (1 bit) stranica u memoriji D (1 bit) modifikovana stranica block (b bita) broj bloka disk (d bita) adresa na disku

Polje V nam pokazuje da li je data stranica u operativnoj memoriji. Operativni sistem postavlja ovo polje tokom prebacivanja date stranice sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje i to u dva sluaja: -

ako je postavljen, da formira realnu adresu i ako nije postavljen, da generie prekid

Polje D nam pokazuje da li je data stranica modifikovana. Jedinica za preslikavanje postavlja ovo polje ako je bila operacija upisa. Koristi ga operativni sistem i to u dva sluaja:
-

ako je postavljen, da vrati datu stranicu na disk i ako nije postavljen da datu stranicu ne vraa na disk

Polje block oznaava broj bloka u kome se nalazi dana stranica. Vrijednost ovog polja ima smisla samo ako je polje V postavljeno. Ovo polje postavlja operativni sistem prilikom prebacivanja date stranice sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje i to ako je polje V postavljeno, da formira realnu adresu.

Polje disk oznaava adresu date stranice na disku. Operativni sistem postavlja ovo polje prilikom formiranja tabele stranice datog procesa. Ovo polje koristi samo operativni sistem, radi lociranja date stranice na disku, prilikom prebacivanja stranice iz diska u odreeni blok operativne memorije. Veliina adrese stranice na disku je d bitova.

Ako se stranica nalazi u memoriji, preslikavanje virtualne adrese u realnu, realizuje se potpuno hardverski pomou jedinice za preslikavanje. Ovo se odvija u nekoliko koraka:

deskriptor date stranice nalazi se u polju page virtualne adrese koje predstavlja broj ulaza u tabelu stranica. Poto deskriptor stranice zauzima 2l rijei, potrebno je broj ulaza u tabelu pretvoriti u pomjeraj u odnosu na poetak tabele stranica. Ovaj pomjeraj se sabira sa sadrajem ukazivaa na PT u kojem se nalazi poetna adresa i tako se dobija adresa deskriptora date stranice. Nakon toga treba uitati odgovarajui broj rijei da bi se dolo do polja V i polja block koja koristi jedinica preslikavanje. Polje V deskriptora pokazuje da li je dana stranica u memoriji. Zbog toga se sa adrese formirane u prethodnom koraku ita prva rije u kojoj se nalazi polje V deskriptora i vri se provjera da li je ovo polje postavljeno. Ako je stranica u memoriji,utvrditi e se da je polje V postavljeno. Data stranica se nalazi u bloku iji broj sadri polje block deskriptora. Zbog toga se ita odreeni broj rijei deskriptora da bi se do njega dola. Na osnovu polja block iz deskriptota stranice i polja word iz virtualne adrese formira se realna adresa.

Ako stranica nije u memoriji, izvravaju se samo prethodna tri koraka. U ovom sluaju se kod koraka tri, utvruje da polje V nije postavljeno, pa se generie prekid. Sve do izvravanja prekida, pa i samo izvrenje prekida realizuje se hardverski pomou jedinice za preslikavanje, a sve ostalo softverski. Ovo realizuje poseban dio operativnog sistema u sljedeim koracima: Prvo se oduzme procesor datom procesu, uva se njegov kontekst i proces se stavlja u red blokiranih procesa. Zatim se dovlai data stranica sa diska u neki od blokova operativne memorije. Nakon toga procesor se dodjeljuje nekom od radnosposobnih procesa. Vri se restaurizacija njegovog konteksta. Tada se u programski broja upisuje nova vrijednost i kontrola predaje se tom novom procesu. Prebacivanje stranice sa diska u neki od blokova operativne memorije se odrauje u sljedeim koracima: Prvo se trai blok u koji e se smjestiti stranica. Ukoliko ima slobodnih blokova, na osnovu nekog algoritma odluuje koji blok treba dodijeliti datoj stranici. Ako nema slobodnih blokova, na osnovu nekog algoritma se odluuje koju stranicu treba izbaciti iz operativne memorije da bi se oslobodio odreeni blok za datu stranicu. Ukoliko je stranica koja je odabrana za izbacivanje modifikovana, ona se mora vratiti na disk prije nego to se pone korisiti blok u kojoj se ona nalazila. Adresa stranice na disku se dobija na osnovu polja disk deskriptora date stranice. Nakon izvrenog vraanja, u polje V deskriptora vraene stranice se upisuje 0. Nakon toga dovlaimo sa diska stranicu koju treba smjestiti na mjesto vraene stranice. Adresa te stranice se dobija iz polja diska deskriptora te stranice. Nakon toga u polje block deskriptora se upisuje broj bloka u koju je upisana dana stranica, a u polje V se upisuje 1.

Segmentna organizacija
Kod ove organizacije virtualni adresni prostor se dijeli na dijelove promjenljive veliine koji se nazivaju segmenti. Ovi segmenti se po potrebi smjetaju u pojedine dijelove operativne memorije koji po veliini odgovaraju veliinama segmenata koji se u njih smjetaju. Kod segmentne organizacije virtualna adresa ima dva polja: broj segmenta (segm) duine s bita i adresa rijei (word) u segmentu duine w bita. Veliina virtualnog adresnog prostora je 2s+w rijei, a veliina segmenta 2w rijei. Veliina realnog adresnog prostora je 2a rijei, pa je veliina realne adrese a bita. Na slici 1.1.2. prikazana je struktura virtualne i realne adrese i duine njihovih dijelova u bitovima. Tabela segmenata (ST) jednog procesa data je na gore navedenoj slici. Ova tabela ima poseban ulaza za svaki segment procesa. U njima se nalaze informacije koje su neophodne za preslikavanje segmenata virtualnog adresnog prostora procesa u pojedine dijelove operativne memorije veliine segmenata. Ove informacije se zovu deskriptori segmenata. Poto u virtualnom adresnom prostoru procesa ima 2s segmenata, pa zbog toga i tabela segmenata ima 2s ulaza. Poetna adresa tabele segmenata nalazi se u posebnom registru procesora koji se naziva pokaziva (ukaziva) na ST (STP). Na osnovu sadraja pokazivaa (ukazivaa) i segmenata, jedinica za preslikavanje virtualnih adresa u realne adrese dolazi do deskriptora segmenta, a time i do potrebnih informacija neophodnih za preslikavanje. Poetne adrese tabela segmenata svi procesa uva operativni sistem. Tokom prijelaza sa jednog procesa na drugi, operativni sistem prvo uva kontekst procesa kome se oduzima procesor, a potom se restaurira kontekst procesa kome se dodjeljuje procesor. Tako se poetna adresa upisuje u ukaziva na ST kome se dodjeljuje procesor. Tako se obezbjeuje da jedinica za preslikavanje pristupi tabeli segmenata.

Slika 1.1.2. Virtualna, realna adresa i tabela stranica za segmentnu organizaciju virtualne memorije Deskriptor segmenta sadri sljedea polja:

V (1 bit) segment u memoriji D (1 bit) modifikovani segment IRW (3 bita) bitovi prava pristupa length (w bita) veliina segmenta saddr (a bita) poetna adresa segmenta u operativnoj memoriji disk (d bita) adresa segmenta na disku

Polje V nam pokazuje da li je dati segment u operativnoj memoriji. Operativni sistem postavlja ovo polje tokom prebacivanja datog segmenta sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje i to u dva sluaja: ako je postavljen, da formira realnu adresu i ako nije postavljen, da generie prekid

Polje D pokazuje da li je dati segment modifikovan. Ovo polje postavlja jedinica za preslikavanje ako je bila operacija upisa u segment. Operativni sistem koristi ovo polje kada odabere dati segment za zamjenu i to u dva sluaja:
-

ako je postavljen, da vrati dati segment na disk i ako nije postavljen da ne vraa dati segment na disk

IRW polje oznaava dozvoljen pristup datom segmentu. Ako je postavljen bit I, onda se iz njega smiju itati samo instrukcije. U sluaju postavke R bita , smiju se itati podaci, a ako je postavljen W bit, mogu se upisivati podaci. Ovo polje kreira operativni sistem prilikom formiranja tabele segmenata datog procesa. Jedinica za preslikavanje koristi ovo polje da tokom uporeivanja sa sadrajem registra accreg, utvrdi da li zahtjevani pristup segmentu odgovara dozvoljenom pristupu segmentu.

Polje length odreuje duinu segmenta, a polje saddr oznaava poetnu adresu dijela operativne memorije u kojem se nalazi dati segment. Polje disk oznaava adresu segmenta na disku.

Za sluaj da je segment u operativnoj memoriji, preslikavanje virtualne adrese u realnu adresu realizuje se hardverski pomou jedinice za preslikavanje. Navedeno preslikavanje se odvija u sljedeim koracima: Deskriptor segmenta se nalazi u tabeli segmenata. Poto deskriptor zauzima 2l rijei, potrebno je broj ulaza u tabelu segmenata pretvoriti u pomjeraj u odnosu na poetak tabele. Ovo se ostvaruje pomjeranjem ulijevo za l mjesta sadraja polja segm. Pomjeraj formiran u prethodnom koraku se sabira sa sadrajem registra ukaziva na ST i time se dobija adresa deskriptora datog segmenta. Nakon toga potrebno je oitati odgovarajui broj rijei, jer se u njima nalaze polja V, IRW, length i saddr koja koristi jedinica preslikavanje. Zatim se provjerava da li je polje V postavljeno, dok polja IRW, length i saddr sadravaju bitove prava pristupa, veliine memorije i poetnu adresu segmenta u operativnoj memoriji. Nadalje, sabiranjem polja saddr iz deskriptora i polja word iz virtualne adrese formira se realna adresa. Uporeivanjem polja IRW i sadraja registra accreg utvruje se da li se zahtjeva pristup koji je dozvoljen segmentu, dok uporeivanjem polja length i polja word se utvruje da li je adresa u segmentu unutar specificirane veliine segmenta. Ako su signali ACCESS i BOUND neaktivni, zahtjevani pristup segmentu i virtualna adresa su korektni i kreirana realna adresa se koristi za pristup operativnoj memoriji, u suprotnom nema pristupa operativnoj memoriji, ve se generie prekid. Ostatak posla odrauje operativni sistem u sljedeim koracima: Prvo, oduzima procesor datom procesu i uva njegov kontekst. Zatim alje poruku na konzolu da je proces terminiran. Nadalje, dodjeljuje procesor jednom od radnosposobnih procesa i tada se restaurira njegov kontekst. U programski broja se upisuje nova vrijednost i kontrola se predaje tom procesu.

Ako se segment ne nalazi u memoriji, odrauju se samo prva tri koraka. U 3 koraku se ispita da polje V nije postavljeno, pa se generie prekid. Sve do generisanja prekida se odrauje hardverski, a ostalo odrauje operativni sistem u sljedeim koracima: prvo se oduzima procesor datom procesu, njegov se kontekst se uva i proces stavlja u red blokiranih procesa. Zatim se prebacuje dati segment sa diska u neki dio operativne memorije, dodjeljuje procesor nekom od radnosposobnih procesa i tada se restaurira njegov kontekst. Prebacivanje segmenta sa diska u operativnu memoriju obavlja se u sljedeim koracima: prvo, trai se dio operativne memorije u koju e se smjestiti dati segment. Ukoliko ima slobodnih dijelova, segment se smjeta po nekom algoritmu, a ako nema slobodnih mjesta, po nekom algoritmu se odluuje koji segment treba izbaciti iz operativne memorije, da bi se oslobodio prostor i smjestio dati segment. Ako je segment koji treba biti izbaen modifikovan, mora se prvo vratiti na disk da bi se mogao koristiti prostor namjenjen za novi segment. Nakon vraanja segmenta na disk, u polje V se upisuje 0. Dalje, adresa dovuenog segmenta se dobija iz polja disk deskriptora segmenta. Nakon dovlaenja, upolje se saddr se upisuje poetna adresa dijela segmenta u operativnoj memoriji, a u polje V se upisuje 1.

Segmentno stranina organizacija


Kod segmentno stranine organizacije virualni adresni prostor se dijeli na dijelove promjenljive veliine koji se zovu segmenti, a zatim se segmenti dijele na dijelove fiksne veliine koji se nazivaju stranice. Kod ove organizacije virtualna adresa ima tri polja: broj segmenta (segm) duine s bita, broj stranice (page) duine p bita i adresa rijei u stranici (word), duine w bit. Veliina virtualnog adresnog prostora dato je sa 2s+p+w rijei i ona se sastoji od 2s segmenata maksimalne veliine 2w rijei, a oni se dalje dijele na 2p stranica veliine 2w rijei. Realna adresa kod ove organizacije ima dva polja: broj bloka (block) duine b bita i adresa rijei (word) u bloku duine w bita. Veliina realnog adresnog prostora je 2b+w rijei, a veliina bloka 2w rijei. Na slici 1.1.3. prikazana je struktura virtualne i realne adrese i duine njihovih dijelova u bitovima. Kod ove organizacije, svaki proces ima jednu tabelu segmenata, a onoliko tabela stranica koliko ima segmenata u virtualnom adresnom prostoru. Za sljedei proces postoji jedna tabela segmenata i maksimalno 2p tabela stranica. Na gore navedenoj slici prikazana je tabela segmenata (ST) jednog procesa. Ova tabela ima poseban ulaz za svaki segment procesa. Tu se nalaze informacije potrebne za preslikavanje segmenata virtualnog prostora u blokove fizike memorije. Ove informacije se nazivaju deskriptori segmenata. Poto imamo 2s segmenata, to i tabela ima 2s ulaza. U posebnom registru procesora, zvani pokaziva na ST (STP) nalazi se poetna adresa tabele segmenata. Na osnovu sadraja ovog pokazivaa i broja segmenata, jedinica za preslikavanje dolazi do deskriptora segmenta i tako do potrebnih informacija za preslikavanje. Operativni sistem uva poetne adrese tabela segmenata svi procesa. Tokom prijelaza sa jednog procesa na drugi, operativni sistem prvo uva kontekst procesa kojem se oduzima procesor, zatim restaurira kontekst procesa kojem se dodjeljuje procesor. Tada se u pokaziva na ST upisuje poetna adresa tabele segmenata procesa kojem se dodjeljuje procesor i tako se obezbjeuje da jedinica za preslikavanje pristupi tabeli segmenata.

Slika 1.1.3. Virtualna, realna adresa i tabela stranica za segmentno - straninu organizaciju virtualne memorije

Deskriptor segmenta sadri sljedea polja: -

IRW (3 bita) bitovi prava pristupa length (p bita) veliina segmenta PTP (b+w bita) poetna adresa tabele stranica u operativnoj memorij

IRW polje oznaava dozvoljen pristup datom segmentu. Ako je postavljen bit I, onda se iz njega smiju itati samo instrukcije. U sluaju postavke R bita , smiju se itati podaci, a ako je postavljen W bit, mogu se upisivati podaci. Ovo polje kreira operativni sistem prilikom formiranja tabele segmenata datog procesa. Jedinica za preslikavanje koristi ovo polje da tokom uporeivanja sa sadrajem registra accreg, utvrdi da li zahtjevani pristup segmentu odgovara dozvoljenom pristupu segmentu.

Polje length odreuje duinu segmenta, a polje saddr oznaava poetnu adresu dijela operativne memorije u kojem se nalazi dati segment. Polje disk oznaava adresu segmenta na disku.

Polje PTP oznaa poetnu adresu operativne memorije u kojoj se nalazi tabela stranica datog segmenta. Ovo polje postavlja operativni sistem prilikom formiranja tabele segmenata i tabela stranica,a koristi ga jedinica za preslikavanje za formiranje realne adrese. Tabela stranica (PT) jednog segmenta data je na gore navedenoj slici. Ova tabela ima poseban ulaza za svaku stranicu procesa. U njima se nalaze informacije koje su potrebne za preslikavanje stranica segmenta u blokove operativne memorije. Poto u virtualnom adresnom prostoru procesa ima 2p stranica, pa zbog toga i tabela stranica ima 2p ulaza. Poetna adresa tabele stranica nalazi se u posebnom registru procesora koji se naziva pokaziva (ukaziva) na PT (PTP). Na osnovu sadraja pokazivaa (ukazivaa) segmenta i broja stranice, jedinica za preslikavanje virtualnih adresa u realne adrese dolazi do deskriptora stranice, a time i do potrebnih informacija za preslikavanje. Deskriptor stranice sadri sljedea polja: -

V (1 bit) stranica u memoriji D (1 bit) modifikovana stranica block (b bita) broj bloka disk (d bita) adresa na disku

Polje V nam pokazuje da li je data stranica u operativnoj memoriji. Operativni sistem postavlja ovo polje tokom prebacivanja date stranice sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje i to u dva sluaja: ako je postavljen, da formira realnu adresu i ako nije postavljen, da generie prekid

Polje D nam pokazuje da li je data stranica modifikovana. Jedinica za preslikavanje postavlja ovo polje ako je bila operacija upisa. Koristi ga operativni sistem i to u dva sluaja: ako je postavljen, da vrati datu stranicu na disk i ako nije postavljen da datu stranicu ne vraa na disk

Polje block oznaava broj bloka u kome se nalazi dana stranica. Vrijednost ovog polja ima smisla samo ako je polje V postavljeno. Ovo polje postavlja operativni sistem prilikom prebacivanja date stranice sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje i to ako je polje V postavljeno, da formira realnu adresu.

Polje disk oznaava adresu date stranice na disku. Operativni sistem postavlja ovo polje prilikom formiranja tabele stranice datog procesa. Ovo polje koristi samo operativni sistem, radi lociranja date stranice na disku, prilikom prebacivanja stranice iz diska u odreeni blok operativne memorije. Veliina adrese stranice na disku je d bitova.

Za sluaj da je segment u operativnoj memoriji, preslikavanje virtualne adrese u realnu adresu realizuje se hardverski pomou jedinice za preslikavanje. Navedeno preslikavanje se odvija u sljedeim koracima: Deskriptor segmenta se nalazi u tabeli segmenata. Poto deskriptor zauzima 2l rijei, potrebno je broj ulaza u tabelu segmenata pretvoriti u pomjeraj u odnosu na poetak tabele. Ovo se ostvaruje pomjeranjem ulijevo za l mjesta sadraja polja segm. Pomjeraj formiran u prethodnom koraku se sabira sa sadrajem registra ukaziva na ST i time se dobija adresa deskriptora datog segmenta. Nakon toga potrebno je oitati odgovarajui broj rijei, jer se u njima nalaze polja IRW, length i PTP koja koristi jedinica preslikavanje. . Uporeivanjem polja IRW i sadraja registra accreg utvruje se da li se zahtjeva pristup koji je dozvoljen segmentu, dok uporeivanjem polja length i polja page se utvruje da li je broj stranice u segmentu unutar specificirane veliine segmenta. Ako su signali ACCESS i BOUND neaktivni, zahtjevani pristup segmentu je korektan i pristupa se deskriptoru stranice u tabeli stranica, u suprotnom nema pristupa tabeli, ve se generie prekid. Ostatak posla odrauje operativni sistem u sljedeim koracima:

Prvo, oduzima procesor datom procesu i uva njegov kontekst. Zatim alje poruku na konzolu da je proces terminiran. Nadalje, dodjeljuje procesor jednom od radnosposobnih procesa i tada se restaurira njegov kontekst. U programski broja se upisuje nova vrijednost i kontrola se predaje tom procesu. Ako stranica nije u memoriji, odrauju se koraci osim koraka 7. U ovom sluaju imamo dvije situacije. U prvoj situaciji, odrauju se prva 3 koraka, gdje se utvruje da li je jedan ili oba signala (ACCESS ili BOUND) aktivna, pa se zatim prelazi na 8 korak. U drugoj situaciji odrauju se koraci 1 do 6. U 6 koraku se utvruje da V nije postavljeno, pa se deava prekid. Sve do generisanja prekida se odrauje hardverski, a ostalo odrauje operativni sistem u sljedeim koracima: Tada se u programski broja upisuje nova vrijednost i kontrola predaje se tom novom procesu. Prebacivanje stranice sa diska u neki od blokova operativne memorije se odrauje u sljedeim koracima: Prvo se trai blok u koji e se smjestiti stranica. Ukoliko ima slobodnih blokova, na osnovu nekog algoritma odluuje koji blok treba dodijeliti datoj stranici. Ako nema slobodnih blokova, na osnovu nekog algoritma se odluuje koju stranicu treba izbaciti iz operativne memorije da bi se oslobodio odreeni blok za datu stranicu. Ukoliko je stranica koja je odabrana za izbacivanje modifikovana, ona se mora vratiti na disk prije nego to se pone korisiti blok u kojoj se ona nalazila. Adresa stranice na disku se dobija na osnovu polja disk deskriptora date stranice. Nakon izvrenog vraanja, u polje V deskriptora vraene stranice se upisuje 0. Nakon toga dovlaimo sa diska stranicu koju treba smjestiti na mjesto vraene stranice. Adresa te stranice se dobija iz polja diska deskriptora te stranice. Nakon toga u polje block deskriptora se upisuje broj bloka u koju je upisana dana stranica, a u polje V se upisuje 1.

Organizacija jedinica preslikavanja


Imamo tri vrste jedinica za preslikavanje, a to su: jedinica sa asocijativnim preslikavanjem jedinica sa direktnim preslikavanjem jedinica sa set asocijativnim preslikavanjem

Jedinica sa asocijativnim preslikavanjem


Poto u adresnom prostoru procesa ima 2p stranica, broj procesa je 2k i u jedinici za preslikavanje se mogu istovremeno uvati deskriptori stranica razliitih procesa, moe se zakljuiti da je tag duine k+p bita i da je formiran da k najstarijih bitova predstavljaju broj procesa (user) i p najmlaih bitova, predstavljaju broj stranice (page) iz virtualne adrese, to je i prikazano na slici 1.2.1.

Slika 1.2.1. Jedinca sa asocijativnim preslikavanjem za virtualnu memoriju stranine organizacije

Jedinica za preslikavanje prikazana na slici, sastoji se od sljedeih dijelova:


-

Do2n-1 (dirty bitovi) 2n flip flopova No2n-1 (valid bitovi) 2n flip flopova TAG memorija asocijativna memorija kapaciteta 2n rijei, irinie k+p bitova CD koder DATA memorija RAM memorija kapaciteta 2n rijei irine b bita

Dirty bitovi nam pokazuju da li je bilo upisa u neku od lokacija date stranice za svaki od 2n ulaza jedinice za preslikavanje. Valid bitovi nam pokazuju da li je odgovarajui ulaz TAG memorije vaei za svaki od 2n ulaza jedinice za preslikavanje. TAG memorija nam slui za uvanje 2n TAG polja stranica i za generisanje aktivnih vrijednosti signala saglasnosti Mo2n-1 . CD slui za generisanje aktivne vrijednosti signala saglasnosti HIT i broja ulaza u jednicu za preslikavanje za koju je otkrivena suglasnost. DATA memorija slui za uvanje 2n deskriptora stranica. Signal HIT postaje aktivan, ako se sadraj bilo kojeg ulaza slae sa TAG bitovima generisane adresei i ako je odgovarajui V bit postavljen. Bitovi (n) se koriste kao adresa u DATA memoriji. Polje block nam daje b najstarijih bitova, a polje word w najmlaih bitova realne adrese. Sve ove gore naveden aktivnosti se odrauju hardverski. U formiranju tag polja ne uestvuju samo page polje generisane adrese, nego i vrijednost registra user procesora. Ako se stranica nalazi u operativnoj memoriji, polje block deskriptora se dovlai u hardver. Koritenjem FIFO ili LRU algoritma zamjene, bira se ulaz jedinice za preslikavanje u koji e se smjestiti deskriptor. Zatim se block deskriptora upisuje u dati ulaz DATA memorije. Nadalje, na isti ulaz TAG memorije se upisuje polje tag generisane adrese. Na isti ulaz V flip flopova se upisuje 1, a na ulaz D flip flopova se upisuje 0. Ako se utvrdi da se stranica ne nalazi u operativnoj memoriji, doi e do generisanja prekida.

Jedinica sa direktnim preslikavanjem


Poto u adresnom prostoru procesa ima 2s segmenata, broj procesa je 2k i u jedinici za preslikavanje se mogu istovremeno uvati deskriptori segmenata razliitih procesa, onda je 2s segmenata svih 2k procesa grupirano u 2m grupa sa 2k+s-m segmenata u grupi. Moe se zakljuiti da je polje tag duine k+s-m bita i polje ulaz duine m bita. Jedinica za preslikavanje prikazana na slici, sastoji se od sljedeih dijelova:
-

TAG memorija RAM memorija kapaciteta 2m rijei irine 1+1+(k+s-m)+3+w+a bita koja se sastoji od: V (valid bitovi) duine 1 bit D (dirty bitovi) duine 1 bit tag polje duine k+s-m bita IRW polje duine 3 bita

polje length duine w bita polje addr duine a bita,

CMP (k+s-m) bitni komparator CMP1 3 bitni komparator CMP2 w bitni komparator

Valid bitovi nam pokazuju da li je odgovarajui ulaz TAG memorije vaei za svaki od 2m ulaza jedinice za preslikavanje. Dirty bitovi nam pokazuju da li je bilo upisa u neku od lokacija datog segmenta za svaki od 2n ulaza jedinice za preslikavanje. Tag bitovi uvaju 2m tag polja segmenta. IRW bitovi nam pokazuju dozvoljen pristup segmentu. Length bitovi nam pokazuju duinu segmenta i addr bitovi nam pokazuju poetnu adresu operativne memorije u kojoj se nalazi dati segment. CMP slui sa generisanje signala HIT, ako je tag polje generisane adrese isto kao i sadraj tag polja TAG memorije i ako je V bit postavljen. CMP1 slui sa generisanje signala ACCESS, ako je sadraj registara accreg isti kao sadraj polja IRW TAG memorije CMP2 slui sa generisanje signala BOUND, ako je sadraj polja word virtualne adrese manji od sadraja polja length TAG memorije. Bitovi tag iz TAG memorije se porede sa tag bitovima iz generisane adrese, ako postoji suglasnost izmeu njih i V bit je postavljen, signal HIT postaje aktivan. Polja addr i word virtualne adrese se sabiraju i daju a bitova realne adrese. Da bi se svi segmenti preslikali u svoj dio operativne memorije, u formiranju tag polja ne uestvuje samo segm polje generisane adrese, ve i vrijednost registra user. Ako utvrdimo da se u jedinici za preslikavanje ne nalaze relevantni dijelovi deskriptora, ide se hardverski u tabelu segmenata i ita se deskriptor. Ako se segment nalazi u operativnoj memoriji, u jedinicu za preslikavanje se dovlae polja IRW, addr i length. Ova polja se upisuju u ulaz DATA memorije,dok se u ulaz TAG memorije upisuje polje tag, Nadalje, u ulaz V bitova se upisuje 1, a u isti ulaz D bitova se upisuje 0. Ako segment nije u memoriji generie se prekid.

Slika 1.2.2. Jedinca sa direktnim preslikavanjem za virtualnu memoriju segmentne organizacije

Jedinica sa set asocijativnim preslikavanjem

Kod ovog preslikavanja se razmatra sluaj kad postoje dva ulaza po setu i ovo se najee susree u praksi. Poto u adresnom prostoru procesa ima 2s+p stranica, broj procesa je 2k i u jedinici za preslikavanje se mogu istovremeno uvati deskriptori stranica razliitih procesa, a broj setova je 2m i poto postoje dva ulaza po setu, moe se zakljuiti da je polje TAG duine k+s+p-m bita i da je polje set duine m bita kao to e biti prikazano na slici. Jedinica za preslikavanje se sastoji od sljedeih dijelova:
-

TAG memorija ulaza 0 RAM memorija kapaciteta 2m rijei irine 1+1+(k+s+p-m) +3+w+a bita koja se sastoji od: V (valid bitovi) duine 1 bit D (dirty bitovi) duine 1 bit tag polje duine k+s+p-m bita polje block duine m bita TAG memorija ulaza 1 RAM memorija kapaciteta 2m rijei irine 1+1+(k+s+p-m) +3+w+a bita koja se sastoji od istih polja kao i prethodna tag memorija

CMP0 komparator TAG memorije ulaza 0 CMP1 komparator TAG memorije ulaza 1

TAG memorija ulaza 0 uva 2m block polja deskriptora stranica zajedno sa V, D i tag bitovima SET0 do SET2m1 . Dirty bitovi nam pokazuju da li je bilo upisa u neku od lokacija date stranice za svaki od 2m setova ulaza jedinice za preslikavanje za ulaz 0. Valid bitovi nam pokazuju da li je odgovarajui ulaz TAG memorije vaei za svaki od 2m setova ulaza jedinice za preslikavanje za ulaz 0. Tag bitovi uvaju 2m tag polja stranica za ulaz 0.

Block bitovi uvaju 2m block polja deskriptora stranica za ulaz 0. CMP0 generie signal HITi,0 za ulaz 0, ako je tag polje generisane adrese isti kao i sadraj tagi,o polja TAG memorije ulaza adresiran set poljem i ako je Vi,o bit postavljen. Isto vrijedi i za ulaz 1. Bitovi tagi,o iz TAG memorije ulaza 0 se porede sa tag bitovima iz generisane adrese, ako postoji suglasnost izmeu njih i Vi,o bit adresiran bitovima set generisane adrese je postavljen, signal HITi,0 postaje aktivan. Isto vrijedi i za ulaz 1. Konano, signal HIT postaje aktivan, ako je jedan od signala HITi,0 i HITi,1 aktivan. U formiranju tag polja ne uestvuju samo page polje generisane adrese, nego i vrijednost registra user procesora. Ako utvrdimo da se u jedinici za preslikavanje ne nalaze relevantni dijelovi deskriptora, ide se hardverski u tabelu stranica i ita se deskriptor. Ako se stranica nalazi u operativnoj memoriji, polje block deskriptora se dovlai u hardver. Korienjem FIFO ili LRU algoritma zamjene u okviru datog seta bira se ulaz jedinice za preslikavanje u koju se smjeta deskriptor, zbog toga to za svaki set postoje ulazi 0 i 1. Zatim se polje block deskriptora upisuje u polje block datog ulaza, a takoer se upisuje polje tag generisane adrese. U ulaz V bitova se upisuje 1, a u ulaz D bitova 0. Ako se stranica ne nalazi u operativnoj memoriji, generie se prekid.

Slika 1.2.3. Jedinca sa set - asocijativnim preslikavanjem za virtualnu memoriju segmentno - stranine organizacije

USPOREDBA VIRTUALNE MEMORIJE SA KE MEMORIJOM


Procesori sa virtualnom memorijom, kod kojih se generiu adrese su virtualne, pa zbog toga postoji potreba da se one prevedu u fizike svaki put kad se pristupa fizikoj (operativnoj) memoriji. Meutim, ako u procesoru postoji i ke memorija, prevoenje virtualne adrese u realnu adresu se moe realizovati na dva naina: prvo se pristupa ke memoriji, pa tek onda kad se pristupi operativnoj memoriji, vri se prevoenje virtualne u realnu adresu ili prvo se izvri prevoenje, a tek onda se pristupa ke memoriji

Kod prvog sluaja, virtualna adresa se nalazi u ke memoriji, pa se ovakva realizacija ke memorije esto naziva i virtualna ke memorija. U drugom sluaju u ke memoriji se nalaze realne adrese, pa se ona esto naziva i realna ke memorija. Gledajui sa aspekta perfomansi ke memorije, virtualni ke je bolji od realnog.

Virtualni ke
Realizacije virtualnog kea unosi odreene probleme koje treba rijeiti. Prvi problem nastaje kada razliiti korisnici imaju iste virtualne adrese koje se preslikavaju na razliite fizike adrese. Na primjer, u sluaju stranine organizacije, svaki korisnik ima stranice broj 0, 1, itd, koje se preslikavaju u razliite blokove. Zato bi svaki novi korisnik, pri prebacivanju procesora sa jednog na drugog korisnika, mogao da utvrdi da se potreban blok, npr., stranica sa brojem 0 nalazi u keu i da mu pogreno pristupi, jer je to blok sa istim brojem stranice jo od prethodnog korisnika. Za ovaj problem postoje dva rijeenja. Prvo rijeenje je da se svi ulazu ke memorije proglase nevaeim pri prelasku sa jednog korisnika na drugog. Drugo je rijeenje da se tag proiri sa tzv., PID brojem (proces identifikator). Meutim, kod prvog se kvari ' miss rate ', ako kod drugog se poveava duina tag-a.

Drugi problem nastaje kada razliiti korisnici koriste razliite virtualne adrese za istu fiziku adresu. Ovo se deava kod stranine organizacije u sluaju djeljivih segmenata. Ove dvostruke adrese, zvani sinonimi ili aliasi, mogu dovesti da se u virtualnom keu pojave kopije istog podatka. Ovo se moe rijeiti kombinacijom hardvera i softvera i to koritenjem tehnike page coloring (bojenje stranica). Kod ove tehnike se obezbjeuje da aliasi imaju odreen broj identinih bitova virtualnih adresa. Ako je taj broj l, ako je kapacitet ke-a 2l bajta ili manji i ako se koristi direktno preslikavanje, tad e blokovi aliasa zauzimati isti ulaz u virtualnom keu. Tako ne moe da se nau kopije fizikog podatka.

Realni ke
Kod ovog kea prvo se mora izvriti prevoenje virtualne u realnu adresu, to bi poveavalo ' hit time ' i usporilo rad procesora. Zbog toga se u procesorima sa ovim keom koriste tehnike koje smanjuju ovaj efekat. Kod prve tehnike istovremeno se vri preslikavanje virtualne u realnu adresu i pristupa realnom keu. Da bi se ovo moglo realizovati, ograniava se veliina ke memorije, tako da ona ne moe biti vea od veliine stranice. Jedinici za preslikavanje se pristupa na osnovu broja stranice, tako da bi se dobio broj bloka realne adrese,a keu se pristupa na osnovu adrese rijei i tako se dobije ' tag ' koji je realan. Ove dviej operacije se odvijaju paralelno. Nakon njihove realizacije vri se uporeivanje realnog ' tag-a ' iz realne ke memorije i ' tag ' bitova, dobiven iz jedinice za ubrzavanje. Ako postoji suglasnost, pristupa se ke memoriji, ako ne , anulira se sadraj ke-a.

Slika 2.2. Istovremeno preslikavanje i pristupanje ke memoriji

Kod druge tehnike, u jedinici za ubrzavanje preslikavanja virtualne u realne adrese pri prvom prevoenju, u dva posebna registra se pamte broj bloka i stranice. Kod svake slijedee virtualne adrese, vri se paralelno prevoenje broja stranice u broj bloka i provjerava se da li je to pristup istoj stranici, koja je pohranjena u registru stranice. Ako je pristup istoj stranici, onda se na osnovu broja bloka zapamenog u registru bloka formira realna adresa i pristupa se ke memoriji, a ako nije eka se da se zavri prevoenje u jedinici za ubrzavanje, pa se onda paralelno pristupa ke memoriji i pamte se broj bloka i stranice u odgovarajuim registrima.

ZAKLJUAK
Iz gore navedenog, moemo zakljuiti da je virtualna memorija strategija dodjele memorije koja dozvoljava da samo dio programa koji se izvodi bude u radnoj memoriji. Temeljna prednost ovakvog pristupa je da program moe biti i vei od radne memorije. Tako korisniki program moe poprimiti proizvoljnu veliinu, a sistem za upravljanje memorijom preslikava logiki prostor korisnika u ogranieni prostor u radnoj memoriji.

LITERATURA
[1] OPERATING SYSTEM CONCEPTS with Java, sixth edition, Silberschatz, Galvin, Gagne [2] http://rti.etf.rs/rti/ri3aor/literatura/predavanja/Memorija_iz_AOR1_2005_2006_v2.pdf [3] ponude.biz/ppt/Memory%20Management%2017%20www.ponude.biz.pp [4] www.fesb.hr/~emudnic/Nastava/.../8%20Virtualna%20memorija.doc

You might also like