Vous êtes sur la page 1sur 21

Seminarski rad

POJAM I KONCEPT VIRTUELNE MEMORIJE

Upravljanje memorijom je jedna od osnovnih funkcija operativnog sistema. Za izvravanje


svakog procesa je potrebna operativna memorija. Savremeni operativni sistemi omoguavaju svakom
procesu da dobije vie memorije (virtuelne) nego to je ukupna veliina stvarne, tj. fizike memorije na
datom raunarskom sistemu. Glavni cilj kod upravljanja memorijom je da se kombinovanjem velike
spore memorije sa malom brzom memorijom ostvari efekat brze memorije. 1
Programi koji se izvravaju moraju biti prisutni u glavnoj memoriji raunara. Do prelaska na
izvrenje, programi se obino dre u sekundarnoj memoriji u svom izvrnom objektnom obliku.
Prelasku na izvrenje programa prethodi punjenje glavne memorije programom. Sastavni deo
punjenja je dodela memorije programu, tj. odreivanje slobodnog bloka u koji se program iz
sekundarne memorije prenosi u glavnu memoriju. Po zavretku izvrenja programu se oduzima
memorija, tj. blok memorije koji mu je dodeljen se proglaava slobodnim. Poslovi dodele memorije
programima, punjenja memorije, punjenja memorije i oslobaanja memorije od okonanih programa
su nadlenosti operativnog sistema raunara. Uzeti zajedno, ovi poslovi nazivaju se upravljanje
memorijom.2
Upravljanje memorijom postaje sloeno u sluaju da:

u glavnoj memoriji nema dovoljno prostora za dranje celih programa i njima


pridruenih podataka u toku izvrenja programa, ili

u glavnoj memoriji se smenjuje vie procesa (programa u izvrenju) pri


multiprogramskom radu raunara.

Fizika
memorija

Adresni prostor

Virtuelna memorija

Memorijski ip

Hard disk
Slika 1. Koncept rada virtuelne memorije

U tenji da se korisnici raunara oslobode svih zaduenja vezanih za upravljanje memorijom


kao apstrakcija glavne memorije nastala je virtuelna memorija.3 Potreba za ovakvim nainom
Dejan Simi, Pavle Batavelji, Organizacija raunara i operativni sistemi, Fakultet organizacionih nauka, Beograd, 2004.,
str. 153.
2 Neboja Milenkovi, Arhitektura i organizacija raunara, Elektronski fakultet, Ni, 2004., str. 277.
3 Ibidem., str. 278.
1

Seminarski rad
upravljanja javila se sa razvojem raunarskih sistema koji rade u reimu izvravanja vie zadataka
(engl. multitasking system) i opsluivanju vie korisnika (engl. multiuser system). U daljem izlaganju
za oba naina rada koristie se termin multiprogramski rad.4
U multiprogramskim sistemima upravljanje memorijom mora obezbediti izolovanje adresnih
prostora razliitih programa, ali i dozvoliti kontrolisanu deobu memorije za kooperaciju i sinhronizaciju
programa. Virtuelna memorija uspeno objedinjuje hardverske izuzetke, hardverom potpomognuto
prevoenje adresa, glavnu memoriju, sekundarnu memoriju i jezgro operativnog sistema da svakom
procesu obezbedi, veliki, uniformni i privatni prostor.
Virtuelna memorija omoguuje izvravanje programa iji su samo neki delovi prisutni u
glavnoj memoriji raunara, pri emu su samo neki delovi prisutni u glavnoj memoriji raunara,
odnosno ije potrebe za memorijom prevazilaze raspoloivu fiiku memoriju. Veliina adresnog
prostora u sistemu sa virtuelnom memorijom ograniena je samo brojem adresnih bitova koje
procesor moe generisati, a ne veliinom raspoloive fizike memorije. Na primer, procesor sa 32bitnim
adresama
i
virtuelnom
Glavna
memorijom ima virtuelni adresni prostor
memorija
veliine 232 odnosno 4GB, dok
ip procesora
0
raspoloiva glavna (fizika) memorija
4
Prevoenje
moe biti veliine 256MB. Virtuelna
adresa
8
memorija svakom procesu (programu)
Virtuelna
Fizika 12
adresa
adresa 16
doputa korienje celog virtuelnog
(VA)
(FA)
CPU
MMU
20
adresnog prostora. Ovo zahteva da se
4116
20
svakom korisniku pridrui odgovarajui
identifikator, koji se naziva identifikator
procesa (skr. PID) ili identifikator
adresnog prostora. (skr. ASID).
Osnovna prednost korienja
virtuelne memorije je mogunost
Re podatka
izvravanja programa koji zahteva
memorijski prostor vei od fizike
Slika 2. Preslikavanje virtuelne u fiziku adresu pri izvrenju
instrukcije LOAD
memorije
raspoloive
na
datom
raunarskom sistemu. Koncept virtuelne
memorije stvara utisak korisniku da je njegov program u potpunosti uitan u memoriju i izvren. Pre
nastanka koncepta virtuelne memorije programer je morao da vodi rauna da njegov program moe
da stane u fiziku memoriju.5 Kljuna koncepcija na kojoj se zasniva virtuelna memorija je odvajanje
virtuelnih, odnosno logikih adresa, koje se koriste u programu, od adresa lokacija glavne memorije i
sekundarne memorije u kojima se programi uvaju. Virtuelne adrese sistem generie pri prevoenju
i/ili poveziuvanju programa. Ove adrese na jedinstven nain odreuju elemente koji pripadaju jednom
logikom adresnom prostoru. Meutim, sistem odlae konkretnu dodelu memorije programu sve do
trenutka kada poinje izvrenje programa. Naime, tek kada operativni sistem, prema trenutnom
zauzeu memorije, moe na najbolji nain dodeliti memoriju tom programu. Pri izvrenju programa
svako obraanje memoriji zahteva prevoenje virtuelne adrese koju generie procesor u fiziku
adresu, odreenu dodelom memorije i relativnom adresom instrukcije ili podatka u programu.
Prevoenje virtuelnih u fizike adrese vri jedinica za upravljanje memorijom (engl. memory
management unit, skr. MMU), koja je obino implementirana u ipu procesora. Na slici 2. je prikazano
M-4

Multiprogramski rad je multipleksiranje vremena rada procesora izmeu vie procesa prisutnih u glavnoj memoriji za bolje
iskoriavanje raspoloivih resursa raunara.
5 Dejan Simi, Pavle Batavelji, Organizacija raunara i operativni sistemi, Fakultet organizacionih nauka, Beograd, 2004.,
str. 171.
4

Seminarski rad
prevoenje efektivne virtuelne adrese 4116 u instrukciji LOAD u fiziku adresu 20, po kojoj se pristupa
glavnoj memoriji.6 Memorija je adresiva na nivou bajtova, sa lokacijama duine 4B, a prikazane
adrese su dekadne. Mogunost da se programi izvravaju pri bilo kojoj dodeli memorije programu
zahteva potovanje sledeeg ogranienja: u programima se ne smeju koristiti naini adresiranja sa
fiksnim adresama, kao to je to sa fiksnim odnosno apsolutno adresiranje. Najpogodniji nain
adresiranja je bazno adresiranje, koje je savremenim procesorima esto i jedini nain adresiranja
podataka u memoriji.
Kod velikog broja savremenih raunara ne postoji jedan prema jedan korespondencija izmeu
adresa koje se generiu u programu i adresa operativne memorije. Adrese koje se generiu u
programu zovu se virtuelne adrese, a adrese operativne memorije realne adrese. Opseg adresa koje
se generiu u programu se zove virtuelni adresni prostor, a opseg adresa operativne memorije realni
adresni prostor.
Pri dodeli memorije programu prirodno je da veliina dodeljenog bloka memorije bude
odreena veliinom programa. Kako veliine programa mogu varirati u irokim granicama, dodela
memorije je sloena i vodi neefikasnom korienju memorije. Naime, prenoenje u memoriju i iz
memorije programa razliitih duina vremenom dovodi do pojave velikog broja malih slobodnih
blokova memorije, koji se pojedinano mogu iskoristiti za nove dodele, a zbirno mogu initi znaajan
deo memorije. Ova pojava naziva se spoljanja fragmentacija memorije. Virtuelna memorija kod koje
se se virtuelni adresni prostor deli u segmente ije su duine odreene duinom programa naziva se
segmentna virtuelna memorija (engl. segmented virtual memory). Kod nje se i dodela memorije vri u
takvim segmentima. Dodela memorije programima moe pojednostaviti ako se svaki program
upakuje u izvestan broj stranica fiksnih duina. Za datu veliinu stranica i duinu programa potreban
broj stranica odreuje se tako da njihova zbirna duina bude jednaka ili vea od duine programa.
Virtulena memorija kod koje se virtuelni adresni prostor deli u ovakve stranice naziva se stranina
virtuelna memorija (engl. paged virtual memory). Kod nje se i memorija dodeljuje programu u
stranicama. Pri tome se takoe javljaju neiskorieni delovi memorije, ovog puta u vidu neiskorienih
delova poslednjih stranica dodeljenih programima. Ova pojava naziva se unutrana fragmentacija
memorije. Stranina virtuelna memorija se danas koristi mnogo ee nego segmentna virtuelna
memorija.
Kod virtuelnih memorija stranine organizacije virtuelni adresni prostor se deli na delove
fiksne veliine koji se nazivaju stranice, a realni adresni prostor se deli na delove fiksne veliine koji
se nazivaju blokovi. Veliina stranice odgovara veliini bloka. Pojedine stranice svih procesa se po
potrebi smetaju u raspoloive blokove operativne memorije. Kada se svi blokovi operativne memorije
popune stranicama razliitih procesa, neka od tih stranica se vraa na disk da bi se oslobodio blok u
operativnoj memoriji za neku novu stranicu. Kod virtuelnih memorija segmentne organizacije virtuelni
adresni prostor se deli na delove promenljive veliine koji se nazivaju segmenti. Pojedini segmenti
svih procesa se po potrebi smetaju u delove operativne memorije koji po veliini odgovaraju
veliinama segmenata koji se u njih smetaju. Kada je kompletna operativna memorija popunjena
segmentima razliitih procesa, jedan ili vie segmenata se vraa na disk da bi se u operativnoj
memoriji oslobodio prostor dovoljan za smetanje segmenta koji se dovlai. Kod segmentno-stranine
organizacije virtuelne memorije virtuelni adresni prostor se deli na delove promenljive veliine koji se
nazivaju segmenti, a onda se segmenti dele na delove fiksne veliine koji se nazivaju stranice. Realni
adresni prostor se deli na delove fiksne veliine koji se nazivaju blokovi. Veliina stranice odgovara
veliini bloka. Pojedine stranice pojedinih segmenata svih procesa se po potrebi smetaju u
raspoloive blokove operativne memorije. Kada se svi blokovi operativne memorije popune

Neboja Milenkovi, Arhitektura i organizacija raunara, Elektronski fakultet, Ni, 2004., str. 279.

Seminarski rad
stranicama segmenata procesa, neka od stranica se vraa na disk da bi se oslobodio blok za neku
novu stranicu nekog segmenta nekog procesa.7
Program za upravljanje memorijom proiruje RAM memoriju sa rezervisanim delom
memorijskog prostora na hard disku. Proireni deo RAM memorije se zove swap prostor8. Proirenje
RAM memorije swap prostorom ima isti efekat kao instaliranje dodatne RAM memorije. U veini
sluajeva dovoljno je poveati swap prostor kako bi se izvravali vei programi. Operativni sistem,
odnosno program za upravljanje memorijom jedino mora da obezbedi da program i podaci budu
raspoloivi u RAM memoriji kada su potrebni. Delovi programa kojima se ne pristupa esto, delovi
programa koji se koriste za upravljanje grekama, kao i delovi programa kojima se dugo nije pristupilo
se prenose na swap prostor. Kada bilo koji od tih delova zatreba program za upravljanje memorijom
taj deo prenosi u RAM memoriju.9
Treba pomenuti da je koncepcija virtuelne memorije prvi put impelementirana u raunaru
Atlas, koji je razvijen na Manesterskom univerzitetu. Prototip ovg raunara je zavren 1961. godine.
Komercijalni model ovog raunara poela je da proizvodi firma Ferranti 1963. godine.

http://rti7020.etf.bg.ac.yu/rti/ri3aor/index.html
Swap space enlgeski naziv za prostor na hard disku koji se dodeljuje virtulnoj memoriji; esto se naziva i swap file zato
to u sekundarnoj memoriji on ima oblik fajla (datoteke).
9 Dejan Simi, Pavle Batavelji, Organizacija raunara i operativni sistemi, Fakultet organizacionih nauka, Beograd, 2004.,
str. 171.
8

Seminarski rad

STRANINA VIRTELNA MEMORIJA

Kod stranine virtuelne memorije virtuelni adresni prostor podeljen je na virtuelne stranice, a
fiziki adresni prostor na fizike stranice, za koje se esto koristi i termin okvir stranice. Veliina
stranica L odreena je celobrojnim stepenom dvojke, i najee iznosi L=4KB. Virtuelni prostor
veliine 2V sadri virtuelnih stranica oznaenih brojevima 0, 1, ..., V-1. Fiziki adresni prostor veliine
2R bajtova sadri R fizikih stranica oznaenih brojevima 0, 1, ..., R-1. Data virtuelna adresa aV deli se
na pomeraj unutar stranice p i broj virtuelne stranice BVS. Pri svakom obraanju memoriji ova
virtuelna adresa preslikava se u fiziku adresu af, koja se takoe deli na pomeraj unutar stranice p i
broj fizike adrese.
Proces najee popunjava mnogo
manje virtuelnih stranica no to ih ima u
Glavna
VS 0
memorija
virtelnom
adresnom
prostoru.
Takve
VS 1
FS 0
GM
nepopunjene (nekreirane) strane u daljem
VS 2
FS 1
GM
tekstu bie referirane kao nepostojee. Proces
VS 3
DSK
moe kreirati nove virtuelne stranice dinamiki
NP
u okviru hipa10, upuujui zahteve za dodelu
GM
memorije. Od kreiranih virtuelnih stranica
FS (R-1)
DSK
procesa, neke se u prisutne u glavnoj
VS (V-1)
DSK
memoriji, dok se ostale nalaze na disku.
Takvu situaciju prikazuje slika 3.11 Na ovoj slici
Slika 3. Preslikavanje virtulenih stranica procesa u fiziku
GM oznaava virtuelne stranice prisutne u
memoriju. VS oznaava virtuelne a FS fizike stranice
glavnoj memoriji, DSK one prisutne samo na
disku, a NP nepostojee stranice. Stranina virtuelna memorija omoguuje da se virtuelnim
stranicama, sukcesivnim u virtuelnom adresnom prostoru procesa, dodele proizvoljne fizike stranice,
to je na ovoj slici sluaj sa VS 1 i VS 2.
Virtuelna
memorija
NP

Virtuelna adresa
BVS

pomeraj

Stranina tablica
P

BFS

Indeks
u ST

Bazna adresa
stranine tablice
Registar procesora

BFS

pomeraj

Fizika adresa

Slika 4. Korienje stranine tablice pri prevoenju virtuelne u fiziku


adresu

10
11

Prevoenje virtuelnih u
fizike adrese vri se pri svakom
obraanju
memoriji.
Ovo
prevoenje vri se korienjem
stranine tablice (ST), koja za
svaku virtuelnu stranicu ima po
jednu stavku. Stavka stranine
tablice (SST) adresira se brojem
virtuelne stranice BVS dobijene iz
virtuelne adrese aV izdvajanjem
pomeraja iz nje. Ovakva stavka
stranine tablice sadri broj fizike
stranice BFS u koju se preslikava
virtuelna stranica BVS. Pomeraj u
virtuelnoj adresi aV se neizmenjen
prenosi u polje pomeraja fizike

Hip (engl. heap) podruje virtelnog adresnog prostora na raspolaganju koje se moe dinamiki iriti.
Neboja Milenkovi, Arhitektura i organizacija raunara, Elektronski fakultet, Ni, 2004., str. 280.

Seminarski rad
adrese (slika 4).12 Pored veliine BFS stavka stranine tablice sadri i sledee indikatore koji se
odnose na tu virtuelnu stranicu: P prisutna u glavnoj memoriji, K koriena u proteklom periodu, M
modifikovana u glavnoj memoriji, R dozvoljen pristup radi itanja i W dozvoljen pristup radi
upisa. Ako je virtuelna stranica prisutna u glavnoj memoriji, tj. P(SST) = 1, imamo pogodak stranice, a
P(SST) = 0 signalizira da stranica nije u glavnoj memoriji, i tada se javlja greka stranice (engl. page
fault). Virtuelna stranica koja je modifikovana u glavnoj memoriji a izabrana za zamenu sa drugom
virtuelnom stranicom, mora se vratiti na disk. Indikator K koristi se u LRU algoritmu (vie o ovom i
drugim algoritmima bie opisano u poglavlju Strategije i algoritmi pribavljanja i zamene podataka u
memoriji) zamene virtuelnih stranica u memoriji. Indikatori R i W koriste se u zatiti memorije. Bazna
adresa stranine tablice tekueg procesa uva se u nekom registru procesora. Pored ove stranine
tablice, mora postojati jo jedna tablica koja za svaku kreiranu virtuelnu stranicu sadri i njenu adresu
na disku.
Problem koji nastaje kod opisanog reenja korienja tabele stranica je injenica da su za
svaki pristup podacima potrebna dva pristupa fizikoj memoriji. Prvi memorijski pristup je pristup tabeli
stranica, a drugi stvarnim podacima. Ubrzanje se moe ostvariti pomou ke ili skrivene memorije
(engl. cache memory). Mogue opcije za realizaciju su asocijativna memorija, memorija sa direktnim
preslikavanjem itd.13
Prevoenjem virtuelne adrese u sluaju pogotka upravlja MMU kroz sledee korake (slika 5):

Korak 1: Procesor formira virtuelnu adresu VA i alje je u MMU.

Korak 2: MMU formira adresu stavke stranine tablice A(SST) i upuuje zahtev za
pribavljanje SST iz kea/glavne memorije

Korak 3: Ke/glavna memorija vraaju u MMU zahtevanu SST.

Korak 4: MMU formira fiziku adresu i dostavlja je keu/glavnoj memoriji.

Korak 5: Ke/glavna memorija vraaju procesoru zahtevanu re podatka. 14


ip procesora
2
A(SST)

Procesor

MMU

VA

SST
3

Ke/glavna
memorija

FA
4
Podatak

Slika 5. Uee hardvera raunara u prevoenju virtuelne adrese pri pogotku stranice

Nasuprot pogotka stranice, pri kojoj u upravljanju prevoenjem adresa uestvuje samo
hardver, greka stranice zahteva sadejstvo hardvera i kernela operativnog sistema sistema,
definisano sledeim koracima (slika 5):

Koraci 1-3: Istovetni su sa koracima 1-3 pri pogotku stranice.

12

Ibidem, str. 281.


Dejan Simi, Pavle Batavelji, Organizacija raunara i operativni sistemi, Fakultet organizacionih nauka, Beograd, 2004.,
str. 173174.
14 Neboja Milenkovi, Arhitektura i organizacija raunara, Elektronski fakultet, Ni, 2004., str. 280281.
13

Seminarski rad

Korak 4: Bit P(SST) = 0 pa MMU aktivira izuzetak, koji predaje upravljanje procesorom
rukovaocu izuzecima greke stranice u kernelu operativnog sistema.

Korak 5: Rukovalac izuzecima greke stranice pronalazi rtvovanu stranicu u glavnoj


memoriji (onu koja e biti zamenjena), i ako je ona modifikovana, vraa je na disk.

Korak 6: Rukovalac izuzecima greke stranice pribavlja novu stranicu u glavnu


memoriju i aurira u njoj i odgovarajuu SST.

Korak 7: Rukovalac izuzecima greke stranice vraa upravljanje procesu koji ga je


aktivirao, dovodei do restartovanja instrukcije na kojoj se javio izuzetak. Procesor
ponovo alje istu virtuelnu adresu u MMU. Meutim, sada je virtuelna stranica prisutna
u glavnoj memoriji pa se javlja pogodak, pri kome se zahtevani podatak dostavlja
procesoru na ve opisani nain.15

Rukovalac izuzetka greke


stanice

Izuzetak

ip procesora
2
rtvovana
stranica

A(SST)

1
Procesor

MMU
VA

SST
3

Ke /
glavna
memorija

Disk

nova
stranica
6

Slika 6. Uee hardvera raunara u prevoenju virtuelne adrese pri greci stranice

Ovakva stranina tablica, koja se naziva linearna stranina tablica ili potpuna stranina
tablica, ima V stavki. Za 32-bitni vitruelni adresni prostor sa adresiranjem na nivou bajtova i stranice
veliine 4KB, V = 232 / 212 = 220 = 1M. Ako je svaka stavka stranine tablice duine etiri bajta, cela
stranina tablica je veliine 4MB. Danas vei broj 64-bitnih procesora koristi virtuelni adresni prostor
od 43 i vie bitova. Postavlja se pitanje: Koliko su velike njihove stranine tablice? Jedno od reenja
za smanjenje broja stavki straninih tablica ovakvih procesora je mogunost korienja stranica
razliitih veliina, na primer 8KB, 64KB, 512KB i 4MB. S obzirom da je po jedna ovakva stranica
potrebna za svaki proces u sistemu tu se ispoljava ranije naveden problem neophodnosti dupliranog
pristupa. Stranine tablice ovih veliina ne mogu se drati u registrima procesora, ve u glavnoj
memoriji raunara.
Dakle, moe ovaj koncept ukljuuje reavanje dva glavna problema. Prvi se odnosi na veliko
zauzee memorije straninim tablicama procesa, a drugi na to da svako obraanje memoriji za
pribavljanje instrukcije ili podatka zahteva po jedno dodatno obraanje memoriji za prevoenje
virtuelne u fiziku adresu.

15

Ibidem, str. 282.

Seminarski rad

TLB KE ZA PREVOENJE VIRTUELNIH


U FIZIKE ADRESE

Problem dvostrukog obraanja memoriji se delimino moe reiti korienjem posebne ke


memorije u kojoj se dre najaktuelnije stavke stranine tablice. Ke memorija sa ovom namenom
poznata je kao Translation Lookaside Buffer, skr TLB. Pri svakom obraanju memoriji najpre se
prisupa TLB-u sa ciljem da se u njemu nae broj fizike stranice u kojoj je prisutna tekua virtuelna
stranica. U sluaju pogotka, nije potrebno obraanje straninoj tablici u memoriji, pa se prevoenje
adrese znatno ubrzava.16 Nastoji se da se obraanje TLB-u svede na samo jedan taktni ciklus, to
upuuje da se TLB implementira kao mala ke memorija sa potpunim asocijativnim preslikavanjem.
Struktura TLB-a i nejgovo uee u prevoenju virtuelnih adresa prikazano je na slici 7.17 Stavka TLBa sadri ako etiketu broj virtuelne stranice na koju se odnose, broj fizike stranice u kojoj je prisutna ta
virtuelna stranica i indikatore V, R, W i M. Indikator V pokazuje da li je ta stavka TLB-a vaea, a

Virtuelna adresa
BVS

pomeraj

TLB
V

etiketa

BFS

BFS

pomeraj

Fizika adresa

pogodak

Slika 7. TLB u postopku prevoenja virtuelnih adresa.

ostali indikatori imaju ista znaenja kao i kod stranine tablice. Pri prevoenju date virtuelne adrese
najpre sledi obraanje TLB-u. Ako je BVS virtuelne adrese jednak etiketi neke stavke TLB-a, sadraj
polja BFS te stavke prenosi se u adresni registar memorije i sledi obraanje memoriji. Ako se javi
promaaj u TLB-u sledi pristup straninoj tablici iz koje dobijamo informaciju da li je virtuelna stranica
prisutna u memoriji i gde, ili da ona tamo nije prisutna. U drugom sluaju javlja se greka stranice
(umesto promaaja kod kea), koja dovodi do istoimenog izuzetka, za ije opsluivanje se poziva
operativni sistem. Poto opsluivanje greke traje dugo (nekoliko ms), dolazi do promene konteksta
(prelaska sa tekueg na neki drugi program), do okonanja ovog opsluivanja. Opsluivanje greke
stranice ukljuuje prenoenje promaene stranice u glavnu memoriju, auriranje stranine tablice i
TLB-a. Kada se javi promaaj u TLB-u, ali se u straninoj tablici nae fizika stranica u kojoj je
prisutna virtuelna stranica, aurira se TLB kreiranjem nove stavke sa odgovarajuim poljima. U
pogoenoj stavci TLB-a ili stranine tablice proveravaju se bitovi zatite memorije R i W, i ako je

16
17

http://rti7020.etf.bg.ac.yu/rti/oo2or/index.html
Neboja Milenkovi, Arhitektura i organizacija raunara, Elektronski fakultet, Ni, 2004., str. 283.

Seminarski rad
pokuan nedozvoljeni pristup memoriji javlja se izuzetak povrede zatite memorije. Ove aktivnosti
prikazane su na slici 8.18
Virtulena adresa

Restartovanje instrukcije

Pregledanje
TLB-a
promaaj

pogodak

etnja kroz
strnainu tablicu

Provera zatite
Pristup dozvoljen

Stranica

u GM

Ne
Greka stranice
(OS pribavlja
stranicu)

Da

Ne

Auriranje
TLB-a

Greka
zatite

Da
Fizika adresa
(ka keu)

Slika 8. Aktivnosti pri prevoenju virtuelne adrese uz uee TLB-a

ta se sve deava sa sadrajem TLB-a pri promeni konteksta procesa? Poto TLB sadri
stavke stranine tablice tekueg procesa, promena konteksta procesa zahteva izmenu celokupnog
sadraja TLB-a. Dakle, pri naputanju tekueg procesa moraju se sve stavke TLB-a proglasiti
nevaeim, to se postie jednostavnim brisanjem indikatora V u svim njegovim stavkama.
Alternativno reenje je da se etiketi u svakoj stavci TLB-a doda identifikator procesa PID, koji bi
uestvovao u traenju stavke TLB-a koja odreuje zahtevano prevoenje virtuelne adrese. Sa
ovakvim reenjem nije protrebno brisati sadraj TLB-a pri promeni konteksta procesa. Njegov sadraj
se po potrebi popunjava stavkama stranine tablice novog procesa. 19
TLB je neizostavno hardversko pomagalo u implementaciji virtuelnih memorija. Broj stavki
TLB-a se kree od 32 do 256. TLB-i manjeg obima implementiraju se kao ke memorije sa potpunim
asocijativnim preslikavanjem, a oni veeg obima sa skupno-asocijativnim preslikavanjem i
asocijativnou 2:4. Mnogi procesori sa posebnim ke memorijama instrukcija i podataka imaju i
otvorene TLB-e za prevoenje virtuelnih adresa instrukcija i podataka.20

18

Ibidem, str. 284.


http://rti7020.etf.bg.ac.yu/rti/oo2or/index.html
20 http://rti7020.etf.bg.ac.yu/rti/ri3aor/index.html
19

10

Seminarski rad

HIJERARHIJSKA STRANINA TABLICA

Veliki obim stranine tablice, uz veliki broj procesa moe angaovati znatan deo glavne
memorije. Raunar naravno ne sme koristiti svoje resurse samo za svoje potrebe, vei deo toga mora
prepustiti korisniku. Dakle, reenje je da se glavnoj u glavnoj memoriji ne uvaju cele stranine tablice
svih procesa, ve samo trenutno aktuelni delovi svake od ovih tablica. Pri tome se naravno ne
odriemo TLB-a, iji je izbor aktuelnih stavki stranine tablice vrlo uzak.21
Razmotrimo virtuelnu memoriju sa 32-bitnim virtuelnim adresnim prostorom, adresivom na
nivou bajtova, i stranicama 4KB. Stranina tablica ima 1M stavki. Linearna struktura ovakve stranine
tablice moe se zameniti hijerarhijskom strukturom, na primer u dva nivoa, na sledei nain. Neka je
svaki blok stranine tablice sa po 1K njenih sukcesivnih stavki (nazovimo ga ST blok) adresiran
jednom stavkom pomone stranine tablice, nazovimo je stranina tablica nivoa 1 (STN1), koja
takoe ima 1K stavki. Sa stavkama duine 4B, STN1 je veliine jedne stranice, i moe se uvati u
glavnoj memoriji. Lokalnost programa ispoljava se i na nivou stranine tablice. To znai da e u
nekim vremenskim intervalima, merenim hiljadama ili milionoma obraanja memoriji, biti korien
samo neki podskup
stavki
stranine
tablice.
Ovaj
VIRTUELNA ADRESA
31
22
21
12 11
0
podskup korienih
v1
v2
pomeraj
stavki
stranine
Indeks u ST
Indeks u ST
nivoa 1
nivoa 2
tablice nalazi se u
malom broju STpomeraj
blokova, zovimo ih
aktivnim
STKoren tekue
v2
blokovima.
STstranine tablice
v1
blokovi su veliine
(Bazni registar
Stranina
procesora)
tablica nivoa 1
4KB. Zakljuujemo
da u prevoenju
virtuelnih adresa u
Stranina
tablica nivoa 2
nekim vremenskim
intervalima
uestvuje relativno
Stranica u glavnoj memoriji
Stranica u sekundarnoj memoriji
Stranice
mali broj aktivnih
podataka
SST nepostojee stranice
ST-blokova.
Sa
smenjivanjem ovih
vremenskih
Slika 9. Hijerarhijska stranina tablica u dva nivoa
intervala menjaju se
i aktivni ST-blokovi. Za aktuelni proces u glavnoj memoriji se onda mora drati STN1 i aktivni STblokovi. Za aktuelni proces u glavnoj memoriji se mora drati STN1 i aktivni ST-blokovi, s tim da se
aktivni ST-blokovi menjaju s vremenom. Prenosom aktivnih ST-blokova izmeu diska i glavne
memorije upravlja virtuelna memorija kao i sa prenosom programa i podataka korisnika.
Hijerarhijski organizovana stranina tablica sa dva nivoa prikazana je na slici 9.22 Polje broja
virtuelne stranice podeljeno je u dva nivoa duina po 10 bitova, iji su sadraji oznaeni sa v1 i v2.

21
22

Neboja Milenkovi, Arhitektura i organizacija raunara, Elektronski fakultet, Ni, 2004., str. 285.
Ibidem, str. 286

11

Seminarski rad
Bazni registar procesora adresira koren stranine tablice to je adresa poetka stranine tablice
nivoa 1 procesa. Vrednost v1 koristi se kao indeks stavke STN1. Svaka stavka ove stranine tablice
sadri podatke od jednom ST-bloku, koji su ovde stranine tablice nivoa 2 (skr. STN2). U te podatke
spada indikator prisutnosti STN2 u glavnoj memoriji, i ako je ona tamo prisutna, njena bazna adresa.
Na osnovu bazne adrese STN2, dobijene iz STN1, i veliine v2 kao indeksa u STN2 koja uestvuje u
prevoenju date virtuelne adrese. Broj fizike stranice dobijen iz te stavke sa dopisanim pomeranjem
iz virtuelne adrese daje fiziku adresu podatka u glavnoj memoriji. Ovakve pristupe stavkama STN1 i
STN2 do pristupa podatku u glavnoj memoriji, koji se nazivaju i etnja kroz stranine adrese (engl.
page table walking) organizuje hardver u okviru MMU-a.
Hijerarhijska stranina tablica moe smanjiti zauzee glavne memorije delovima straninih
tablica procesa. Meutim, ako je lokalnost obraanja procesa memoriji slabo izraena, aktivni STblokovi se esto menjaju. Ovo povlai potrebu za estom razmenom prethodno aktivnih ST-blokova i
novih aktivnih ST-blokova izmeu glavne memorije i diska, to poveava premaaje operativnog
sistema raunara. Znaajan nedostatak hijerarhijske organizacije stranine tablice je povean broj
obraanja memoriji, jednak broju nivoa stranine tablice, pri prevoenju u sluaju promaaja TLB-a.
Novi 64-bitni procesori sa vrlo velikim virtuelnim adresnim prostorom zahtevaju tri i vie nivoa
stranine tablice to znatno produuje prevoenje virtuelnih adresa. 23

23

Ovde se misli, pre svega na premaenje (engl. overhead) operativnog sistema odnosno vreme koje operativni sistem utroi
na upravljanje (administriranje) sistemom iznad vremena izvrenja korisnikih programa.

12

Seminarski rad

INVERTOVANA STRANINA TABLICA

Krupan nedostatak korienja linearnih ili hijerarhijskih tablica je da njihovo uvanje u glavnoj
memoriji moe zauzimati znatan njen deo. Ovo posebno dolazi do izraaja sa poveanjem virtuelnog
adresnog prostora, na primer pri prelasku sa 32-bitne na 64-bitnu arhitekturu, kada broj virtuelnih
stranica enormno poraste. Ovakvo drastino poveanje virtuelnog prostora ne moe biti praeno
adekvatnim poveanjem veliine glavne memorije. Prema tome, pogodnija je organizacija stranine
tablice koja raste srazmerno sa porastom fizikog, a ne virtuelnog adresnog prostora. Stranina
tablica sa takvom organizacijom postoji, i naziva se invertovana stranina tablica (engl. inverted page
table).
Broj stavki invertovane stranine tablice jednak je broju fizikih stranica, tako da je ona gusto
popunjena. Poto njene stavke za indeks imaju vrednosti iz skupa {0,1,,R-1} potreban je
mehanizam koji e dti broj virtuelne stranice tranformisati u indeks stavke invertovane stranine
tablice. Za to se moe koristiti tzv. he (engl. hash) funkcija. Ovde e biti razmotren jedan od vie
moguih korienja invertovanih straninih tablica.
Glavna memorija
Virtuelna adresa
BVS

pomeraj

He
funkcija

BVS

bvs
D

ind

RW

bvs

bvs

bvs

veza

Legenda
BVS - broj virtuelne stranice

veza

BFS - broj fizike stranice


PID - identifikator procesa
RW - pravo pristupa
U - upotrebi vezu
D - dodeljena veza - pokaziva
na sledeu SST

Invertovana stranina tablica


He tablica

Lista nedodeljenih fizikih stranica

Slika 10. Adresiranje invertovane stranine tablice i struktura njenih stavki

Za tranformisanje datog broja virtuelne stranice u indeks stavke koristi se he funkcija


zajedno sa pomonom he tablicom (slika 10).24 He tablica H ima dva puta vei broj stavki od broja
fizikih stranica. Stavka he tablice sadri identifikator D i indeks ind stavke u invertovanoj straninoj
tablici koja uestvuje u prevoenju adrese. Vrednost D=1 znai da je fizika stranica sa BFS=ind
dodeljena, a D=0 da nije dodeljena. U stavki invertovane stranine tablice bvs je broj virtuelne
stranice, veza je pokaziva (indeks) na sledeu stavku invertovane stranine tablice, a U je indikator
24

Neboja Milenkovi, Arhitektura i organizacija raunara, Elektronski fakultet, Ni, 2004., str. 288.

13

Seminarski rad
upotrebe veliine veza. RW kao i ranije odreuju pravo pristupa. Kao he funkcija esto se koristi
logika XOR funkcija izmeu PID i dela polja BVS. Pri prevoenju virtuelne adrese kao okviru tekueg
procesa he funkcija daje indeks stavke he tablice iht=h(BVS, PID). Vrednost ind iz ove stavke
upuuje na stavku invertovane stranine tablice IST(ind). BVS iz date virtuelne adrese poredi se sa
bvs u ovoj stavci. U sluaju jednakosti, virtuelna stranica BVS prevodi se u fiziku stranicu BFS=ind.
U sluaju neslaganja, nastavlja se ovo poreenje sa vrednostima bvs u stavkama invertovane
stranine tablice koje obrazuju listu koja je se zavrava stavkom u kojoj je U=0. Ako se u nekoj od
ovih stavki ustanovi jednakost, traeni broj fizike stranice odreen je vrednou veza iz prethodnog
elementa ove liste. Ako do kraja liste nema jednakosti, virtuelna stranica koju prevodimo nije u glavnoj
memoriji, pa se javlja greka stranice.
Po ustanovljenoj greci stranice toj stranici se dodeljuje fizika stranica iz liste F, koja sadri
brojeve nedodeljenih fizikih stranica. U stavci he tablice sa indeksom iht ispituje se identifikator D.
Pri D=0 za vrednost ind uzima se broj fizike stranice sa poetka liste F, a D se postavlja na 1. U
stavki sa indeksom ind u invertovanoj straninoj tablici bvs uzima vrednost BVS, a U se brie (dobija
vrednost 0). Pri D=1 postojea vrednost ind upuuje na stavku invertovane stranine tablice koja je
prva u listi stavki koje sadre brojeve virtuelnih stranica sa istom he vrednosu. Dolazi se do
poslednje stavke u toj listi, i za vrednost veza u njoj uzima se broj fizike stranice sa poetka liste F, a
U se postavlja na 1. Ista vrednost broja fizike stranice indeksira novu poslednju stavku u ovoj listi. U
nju se za vrednost bvs unosi BVS iz greke stranice, a U se brie. Iz liste F brie se broj dodeljene
fizike stranice. Ovim se auriranje stanja invertovane stranine tablice zavreno. Potrebno je
aurirati i TLB. I naravno, treba sa diska preneti stranicu u dodeljenu fiziku stranicu.
Invertovana stranina tablica je dobila takav naziv jer se adresiranje njenih stavki vri fizikim
a ne virtuelnim adresama. Broj obraanja memoriji pri prevoenju adresa korienjem invertovane
stranine tablice veliki je za najnepovoljniji sluaj. Opsena istraivanja pokazala su, meutim, da se
prosean broj obraanja kree izmeu 1 i 2. Daleko manji obim invertovanih u odnosu na linearne
stranine tablice, kao i ovako mali prosean broj obraanja memoriji pri prevoenju virtuelnih adresa,
razlozi su to su invertovane stranine tablice koriene u procesorima PowerPC i HP PA. 25

25

http://www.webopedia.com/TERM/v/virtual_memory.html

14

Seminarski rad

STRANINI PREKIDI

U pogledu podele programa na stranice i memorije na odgovarajue okvire strana i formiranje


tabele strana za preslikavanje programske adrese u memorijsku adresu ne postoje nikakve razlike
izmeu statikih stanica i dinamikih stranica. Sutinska razlika izmeu ova dva naina upravljanja
memorijom ogleda se meutim u upravljanju unoenjem. Naime, dok se kod statikih stranica sve
stranice programa unose u memoriju na samom poetku (odnosno, preciznije pre nego to pone
izvravanje) programa, kod dinamikih stranica unoenje u memoriju vri se iskljuivo po zahtevu
(engl. demand paging). To praktino znai da utabeli strana postoje strane koje se u posmatranom
trenutku nalaze u memoriji i za koje postoji adresa okvira u kome se smetene i strane koje se ne
nalaze u memoriji (ve na disku) i za koje pokaziva na okvir u tabeli strana ima nil vrednost. Kada
se u toku izvravanja programa trai pristup adresi koja pripada strani koja nije u memoriji dolazi do
prekida programa. Ova vrsta prekida naziva se stranini prekid (engl. page fault). Postupak u
izvrenju jedne instrukcije moe se prema tome prokazati na sledei nain:
1. Utvrdi da li je adresa kojoj se pristupa u memoriji. Ako jeste nastavi sa izvravanjem
instrukcije. U suprotnom korak 2.
2. Prekini izvravanje programa.
3. Nai slobodan okvir u memoriji. Ako takav okvir ne postoji izbaci jednu od strana,
odnosno oslobodi jedan od okvira koji su dodeljeni programu.
4. Pronai na disku stranu kojoj se pristupa i upii je u slobodan (ili osloboen) okvir.
5. Auriraj tabelu strana (upii adresu okvira u kojoj je smetena strana).
6. Iniciraj izvravanje instrukcije koja je izazvala prekid.
Ovde je posebno interesantno da uoimo korak 3. Naime, ukoliko ne postoji ni jedan
slobodan okvir (meu kojima je operativni sistem dodelio posmatranom programu) neophodno je da
se jedna od strana koja se trenutno nalazi u memoriji izbaci iz memorije. Izbor takve strane vri se
pomou odreenog algoritma zamene strana. Imajui u vidu injenicu da je operacija pronalaenja
strane na disku i njeno unoenje u memoriju vremenski skupa operacija, to lo algoritam zamene
strana moe da izazove este stranine prekide to znatno smanjuje performanse sistema za
upravljanje memorijom.
Kada se neki program prvi put pozove u operativnoj memoriji nema stranica koje pripadaju
tom programu. Stranice se zatim uitavaju u okvire redosledom onako kako su potrebne tom
programu. U nekom trenutku svi okviri su popunjeni. Ako tada program zatrai pristup stranici koja
nije u jednom od okvira, nastaje stranini prekid. Operativni sistem mora da uita traenu stranicu u
operativnu memoriju. Ali, ako su svi okviri popunjeni potrebno je da operativni sistem oslobodi jedan
okvir primenom algoritma za zamenu stranica.26

26

Dejan Simi, Pavle Batavelji, Organizacija raunara i operativni sistemi, Fakultet organizacionih nauka, Beograd, 2004.,
str. 174 175.

15

Seminarski rad

STRATEGIJE I ALGORITMI PRIBAVLJANJA I


ZAMENE PODATAKA U MEMORIJI

Podaci se sa diska u glavnu memoriju mogu pribavljati po zahtevu, unapred ili njihovom
kombinacijom. Strategijom pribavljanje po zahtevu virtuelna stranica se sa diska prenosi u memoriju
posle nastanka greke stranice. Ona nastaje u okviru instrukcije a ne po njenom zavretku. Procesor
po nastanku ove greke koju zapaa kroz pojavu izuzetka greke stranice, pamti informacije potrebne
za restartovanje instrukcije u kojoj je dolo do greke stranice i poziva rukovaoca izuzetka. Po
opsluenom izuzetku obnavlja informacije o prekinutoj instrukciji i restartuje njeno izvrenje.
Pribavljanje se unapred zasniva na prostornoj lokalnosti: ako se program obratio stranici i vrlo je
verovatno da e se uskoro obratiti susednim stranicama ...i-2, i-1, i+1, i+2,... itd. Pribavljanje ovih
stranica unapred moe iskljuiti greke stranica pri skorom obraanju njima. U tome mogu od velike
koristi ke memorije diskova.27
Pri pojavi greke stranice u toj stranici se mora dodeliti fizika stranica. Izbor fizike stranice
vri algoritam zamene stranica. Sistem vodi evidenciju o nedodeljenim stranicama, na primer u obliku
liste F iz pretprolog poglavlja. Kada ova lista nije prazna, onda se za dodelu uzima fizika stranica sa
poetka liste. Ako se pri tome takva lista formira za svaki proces odvojeno, aloritam zamene je lokalni.
Ako je lista zajednika za sve procese, algoritam zamene je globalni. Lokalni algoritam zamene
pogodan he kada se svakom procesu dodeljuje fiksni broj stranica, koji ne mora biti isti za sve
procese. Globalni algoritam zamene doputa da se na novoj stranici podataka dodeli bilo koja fizika
stranica. Time on prua veu slobodu u izboru fizikih stranica za dodelu, pa e na njemu biti
bazirana sledea izlaganja.28
Kada su sve stranice ve dodeljene, mora se izabrati neka od njih da se u njoj ve prisutna
stranica podataka zameni novom, u kojoj se javlja greka stranice. Za izbor se mogu koristiti sledei
algoritmi zamene stranica:

RAND (Random) sluajni izbor,

FIFO (First in First Out) izbor bloka koji je prvi napunjen,

OPT (Optimal) optimizacija na osnovu pretpostavki o nekorienju i

LRU (Least Recently Used) izbor na osnovu vremena korienja.

RAND i FIFO ne zasnivaju se na informacijama o korienju blokova podataka u virtuelnoj


memoriji (engl. non usage based). Na prvi pogled, izgleda udno da to vai za FIFO algoritam, to
postaje jasno ako se zna da je redosled blokova podataka, kandidata za zamenu, odreen samo
redosledom njihovog prenoenja u virtuelnu memoriju posle odgovarajuih promaaja, a da kasniji
pogoci ne menjaju ovaj redosled. LRU se zasniva na informacijama o korienju blokova (engl. usage
based). Zahvaljujui ovome, strategija zamene LRU daje bolje rezultate od FIFO i RAND strategije.

Elekrtonika interfejsa u disk drajvu sadri bafer memoriju, veliine 2MB, 8MB ili 16MB i jedna od njenih uloga je uloga
ke memorije diska. Aplikacije obino pristupaju podacima sekvencijalno, pa je korisno da diskovi na optimalan nain
podre takav nain pristupa podacima. U te svrhe disk kontroleru je dodata funkcija upravljanja pribavljanjem unapred
sekvencijalnih podataka. Naime, posle svake naloene operacije itanja, disk kontroler e autonomno nastaviti da ita
sekvencijalne podatke i da ih smeta u bafer. Ako je sledei blok potrebnih podataka sekvencijalan u odnosu na pretodnim
nalogom proitani blok, disk moe da opslui zahtev direktno iz bafera, to je mnogo bre jer nema kanjenja. U baferu
diska se privremeno uvaju i podaci aktuelni pri izvrenju nekog programa, a za koje nema dovoljno prostora u glavnoj
memoriji raunara.
28 http://rti7020.etf.bg.ac.yu/rti/ri3aor/index.html
27

16

Seminarski rad
FIFO algoritam svakoj stranici dodeljuje vreme uitavanja te stranice u operativnu memoriju i
iz operativne memorije izbacuje onu stranicu koja je najranije uitana. Nije neophodno memorisati
vreme uitavanja stranice u operativnu memoriju, jer se impementacija moe uraditi i pomou FIFO
reda ekanja, tj. FIFO liste. FIFO algoritam zamene stranica se moe lako programski realizovati, ali
perforanse nisu uvek dobre. Sa poveanjem broja okvira broj straninih prekida bi trebalo da opada.
Meutim, kod FIFO algoritma moe se desiti da sa poveanjem broja strana raste i broj straninih
prekida.29
Algoritam koji bi dao najbolje rezultate zahteva poznavanje ponaanja programa u
budunosti. Ovakvu optimalnu strategiju zamene predloio je Beladi (Bellady) 1966. godine u radu
koji se odnosio na virtuelne memorije. Ona se moe formulisati otprilike ovako: za zamenu se bira
blok koji e od svih kandidata za zamenu biti korien u najdaljoj budunosti.30 OPT algoritam
izbacuje onu stranicu stranicu koja se najdue nee koristiti i na taj nain se ostvaruje najmanji broj
straninih prekida za zadati broj okvira.31 Mada je strategija zamene neostvariva u praktinim
uslovima, ona daje donju granicu faktora promaaja sa kojom se uporeuju ostale ostvarive strategije
zamene (LRU, RAND i FIFO).
Postoje i drugi algoritmi za ovu namenu, ali navedeni su najkorieniji, s tim to je za
dananje koncepte virtuelne memorije najpogodniji, a i najee se koristi LRU u kombinaciji sa nekim
od ostalih. Ovo je posledica toga da prema LRU algoritmu broj kandidata, esto je mnogo vei od
jedan pa strikna implementacija ovog algoritma nije mogua. Treba spomenuti da termin najmanje
skoro korieni blok podataka oznaava blok podataka od ijeg je poslednjeg korienja proteklo
najdue vreme.
LRU algoritam svakoj stranici dodeljuje vreme korienja i iz operativne memorije izbacuje
onu stranicu koja nije najdue koriena. LRU se implementira ili pomou brojaa pristupa stranici ili
pomou steka na kome se memoriu brojevi stranica. LRU algoritam zahteva znaajnu hardversku
podrku, korisnikih procesa od najmanje 10. S obziram da mali broj raunarskih sistema obezbeuje
dovoljno hardverske podrke za LRU algoritam u praksi se koristi dodatni Ref bit (engl. reference bit)
za svaku vrstu u tabeli stranica i taj se bit hardverski postavlja i brie.
PRIMER: Neka je dat sistem sa 4 okvira i 8 stranica. Inicijalno okviri su prazni. Stranicama pristupa
program na osnovu sledeeg traga adresa:
0
7
2
1
7
3
2
4
7
2
5
1
Odrediti broj straninih prekida ako se koristi LRU algoritam za zamenu stranica.
U tabeli 1. je u prvoj vrsti prikazan trag adresa. Od druge do pete vrste tabele nalaze se raspoloivi
okviri. Vrednost unutar okvira predstavljaju adrese stranica. Osenene su kolone u trenucima kada
nema straninih prekida.
0

0
7

0
7
2

0
7
2
1

0
7
2
1

3
7
2
1

3
7
2
1

3
7
2
4

3
7
2
4

3
7
2
4

5
7
2
4

5
7
2
1

Prema tome, ako se koristi LRU algoritam za zamenu stranica broj straninih prekida bie 8. 32

Dejan Simi, Pavle Batavelji, Organizacija raunara i operativni sistemi, Fakultet organizacionih nauka, Beograd, 2004.,
str. 175.
30 Neboja Milenkovi, Arhitektura i organizacija raunara, Elektronski fakultet, Ni, 2004., str. 260.
31 Dejan Simi, Pavle Batavelji, Organizacija raunara i operativni sistemi, Fakultet organizacionih nauka, Beograd, 2004.,
str. 176.
32 Ibidem, str. 176.
29

17

Seminarski rad
Pri definisanju sadraja stavki stranine tablice naveden je i indikator K koriena u
prethodnom periodu. Korienjem ovog indikatora prema sledeum algoritmu dobija se aproksimacija
LRU zamene stranica u memoriji. Kao to je ve spomenuto memorija sadri R fizikih stranica iz
skupa {0, 1, , R-1}. Pri dodeli fizike stranice i u stavki stranine tablice indikator K se brie.
Uvedimo broja BR koji broji po modulu R, sa poetnim sadrajem 0. Pri svakom obranju fizikoj
stranici i, u stavci stranine tablice sa ovom fizikom stranicom K se postavlja na 1. Posle svake
greke stranice sistem organizuje prolaz kroz stavke stranine tavlice koje odgovaraju virtuelnin
stranicama izvravajui pri tom sledei algoritam izveden paskalskim pseudokodom:
traenje := true;
while traenje do
begin
if K[BR] := 0 then
begin
traenje := false;
K[BR] := 1;
izabrati za zamenu fiziku stranicu iz ove stavke;
end
else
K[BR] := 0;
BR := (BR + 1) mod R
end;
Startujui sa zateenim sadrajem brojaa BR skeniramo straninu tablicu traei pri tome
stavku sa K=0. U svakoj stavci sa K=1 koju proemo K se menja na 0. Kada naiemo na prvu stavku
sa K=0, fiziku stranicu iz te stavke biramo za zamenu, postavljamo K na 1 i inkrementiramo broja
BR da ne startuje novo traenje od te stavke. Ovaj algoritam za zamenu bira fiziku stranicu koja nije
bila koriena od poslednje posete te stranice pri skeniranju. Poto skeniranjem nisu obuhvaenje sve
stranice, i ne za ceo ivotni vek procesa, ovaj algoritam je samo aproksimacija LRU procesa. 33
Pored navedenih postoje i drugi algoritmi zamene stranica kao to su algoritam druge anse
(engl. second chance), algoritmi sa registrom istorije pristupa stranici, gde svaki bit daje informaciju
da li se u poslednjih n milisekundi pristupilo datoj stranici i algoritmi koji se zasnivaju na broju pristupa
stranici (engl. most frequently used). Algoritam druge anse poboljanje FIFO algoritma. Koristi se
Ref bit koji ima vrednost 1 ako se stranici pristupilo u poslednjih n milisekundi ili vrednosr 0 u
suprotnom. Kada je vrednost Ref bita 0 tada algoritam radi kao FIFO. Kada je Ref=1 tada se stranica
ne izbacuje iz memorije, ve se Ref bit postavlja na nulu i vreme uitavanja stranice se aurira sa
tekuim vremenom, odnosno deskriptor stranice se stavlja na kraj FIFO liste. Drugim reima, stranici
se daje druga ansa i prelazi se na sledeu FIFO stranicu. Realan je sluaj i da su svi Ref bitovi
postavljeni na vrednost 1. Da bi se tada spreila mogunost da ne psotoji stranica za izbacivanje iz
memorije, nakon prvog resetovanja Ref bita za datu stranicu uvodi se zabrana promene vrednosti Ref
bita, tj. Ref bit ima vrednost 0. Ako se toj stranici nakon toga i pristupi vrednost Ref bita ostaje 0.
Algoritam druge anse se moe implementirati i pomou krune liste. Tada pokaziva ukazuje na
sledeu stranicu koju treba zameniti.
Nedostatak upravljanja memorijom pomou dinamikih stranica je dodatno korienje
resursa. Za tabelu stranica potrebna je dodatna memorija. Jedno reenje je da se primeni stranienje
na samu tabelu stranica. Ostala reenja uvode sloeniju strukturu podataka za preslikavanje vituelne
u fiziku adresu. Sam proces preslikavanja takoe unosi kanjenje.34

33
34

Neboja Milenkovi, Arhitektura i organizacija raunara, Elektronski fakultet, Ni, 2004., str. 291.
Dejan Simi, Pavle Batavelji, Organizacija raunara i operativni sistemi, Fakultet organizacionih nauka, Beograd, 2004.,
str. 175.

18

Seminarski rad

ZATITA VIRTUELNE MEMORIJE OD


NEOVLAENOG PRISTUPA

Pri istovremenom izvravanju vie procesa u sistemu postoji opasnost od neovlaenog


pristupa jednog procesa podacima drugog procesa. Ovo se mora spreiti odgovarajuim reenjima.
Postoji i potreba da omogui deoba nekih programa i/ili podataka u svrhu sinhronizacije procesa i
razmene podataka izmeu njih. Pri tome pristupi deljenim programima ili podacima mogu biti
ogranieni na odreene aktivnosti. Na primer, programima se moe pristupati samo radi itanja, ili se
podaci mogu samo itati i dodavati, ali ne i menjati. Takva zatita se u virtuelnoj memoriji lako izvodi
na sledei nain. Neka Proces_i i Proces_j imaju kako privatne, tako i deljive stranice podataka. Pri
dodeli memorije ovim procesima, deljivim stranicama podataka dodeljuju se iste fizike stranice.
Na slici 11. prikazan je primer dva procesa. Proces_i ima privatnu stranicu vs1 i deljivu
stranicu vs2. Proces_j ima privatnu stranicu vs0 i deljivu stranicu vs1. 35

Proces i

Virtuelni
adresni
prostori

Glavna
memorija

VS 0
VS 1

FS 0

VS 2

FS 1

VS (V-1)

Proces j

FS h
VS 0
VS 1

FS (R-1)

VS 1
VS (V-1)
Slika 11. Dodela fizikih stranica privatnim i deljivim virtuelnim stranicama

Deljive stranice su deljive ba izmeu ova dva procesa. Privatnim stranicama oba procesa
dodeljuju se razliite fizike stranice, dok se deljivim stranicama dodeljuje ista fizika stranica. Pri
dodeli memorije ovim stranicama upisuju se i odgovarajue vrednosti indikatora R i W u
odgovarajuim stavkama stranine tablice odnosno TLB-a. Pri svakom prevoenju virtuelne adrese
pokuaj pristupa jednog procesa privatnim stranicama drugog procesa izaziva izuzetak povrede
pristupa procesa svojim deljenim stranicama. Do istog izuzetka dovodi i pokuaj nedozvoljenog tipa
pristupa procesa svojim deljenim stranicama.

35

Neboja Milenkovi, Arhitektura i organizacija raunara, Elektronski fakultet, Ni, 2004., str. 291292.

19

Seminarski rad

KE MEMORIJE U VIRTUELNOM
ADRESNOM PROSTORU

U sistemima sa virtuelnom memorijom procesor generie virtuelne adrese koje za obraanje


memoriji moraju biti prevedene u fizike adrese. Kako je ke i memorija element fizike memorije,
postavlja se pitanje da li se ona mora adresirati fizikim adresama. Ovo zato to svako prevoenje
virtuelne adrese zahteva vreme, koje u tom sluaju odlae i pristup keu, to dovodi do zastoja u radu
procesora. Na slici 12. prikazani su procesor, MMU, ke i glavna memorija u dve konfiguracije koje se
razlikuju po tome da li se ke adresira fizikim adresama ili virtuelnim adresama.36

Procesor

Procesor

VA
MMU

VA

FA

Fiziki
ke

Glavna
memorija

FA

Virtuelni
ke

MMU

Glavna
memorija

Slika 12. Adresiranje kea fizikim adresama (gore) i virtuelnim adresama (dole)

Ke adresiran fizikim adresama (fiziki ke) dolazi u tom lancu iza MMU-a. Veliki nedostatak
ovog reenja je da se obraanje keu moe zapoeti po okonanju prevoenja virtuelne adrese. U
ovom reenju nema nikakvih ogranienja, a povoljno je i sa stanovita eventualne direktne
komunikacije kea i U/I sistema raunara.
Kod procesora sa virtuelnom memorijom adrese koje se generiu su virtuelne pa postoji
potreba za njihovim prevoenjem u fizike adrese svaki put kada se pristupa fizikoj memoriji. Ukoliko
u procesoru postoji i ke memorija postupak prevoenja virtuelnih u realne adrese i pristup ke
memoriji je mogue realizovati na dva naina: najpre se pristupa ke memoriji, pa se tek kod pristupa
operativnoj memoriji vri prevoenje virtuelnih u realne adrese, ili najpre se vri prevoenje virtuelnih
u realne adrese, pa se tek posle toga pristupa ke memoriji. U prvom sluaju u ke memoriji se
nalaze virtuelne adrese, pa se ovakva realizacija ke memorije naziva i virtuelna ke memorija. U
drugom sluaju u ke memoriji se nalaze realne adrese, pa se ovakva realizacija ke memorije naziva
i realna ke memorija. Posmatrano sa aspekta performansi ke memorije virtuelni ke je bolji nego
realni ke. Tada u sluaju pogotka koji se daleko ee javlja nego promaaj, ne bi bilo prevoenja
virtuelne u realnu adresu. U suprotnom sluaju vreme pristupa pogotku (engl. hit acces time) bi
trebalo stalno uveavati za vreme prevoenja virtuelne u realnu adresu. Virtuelni ke, meutim, unosi
odreene probleme za koje su potrebna odgovarajua reenja.
Prvi problem je posledica injenice da razliiti korisnici imaju iste virtuelne adrese koje se
preslikavaju na razliite fizike adrese. Na primer, svaki korisnik u sluaju stranine organizacije
virtuelne memorije ima stranice broj nula, jedan, itd. koje se, meutim, preslikavaju u razliite blokove.
Isto to vai i za segmente sa brojevima nula, jedan itd. koji se, meutim, preslikavaju u razliite delove
memorije. Stoga bi po prebacivanju procesora sa korisnika na korisnika novi korisnik mogao da utvrdi
da se potreban blok, recimo stranica nula, nalazi u keu i da mu pogreno pristupi, kako je to blok sa
istim brojem stranice nula koji je u keu ostao od prethodnog korisnika. Tu postoje dva reenja. Prvo
je da se svi ulazi ke memorije proglase za nevaee pri prebacivanju procesora sa korisnika na
36

Ibidem, str. 292.

20

Seminarski rad
korisnika. Drugo je da se tag proiri sa PID brojem. U prvom sluaju se kvari procenat promaaja
(engl. miss rate) a u drugom poveava duina taga.
Drugi problem sa virtuelnim keom se sastoji u tome da razliiti korisnici mogu da koriste
razliite virtuelne adrese za istu fiziku adresu. To se deava u sluaju stranine organizacije virtuelne
memorije u sluaju deljivih segmenata. Ove dvostruke adrese, nazvane sinonimi ili aliasi, mogu da
dovedu do toga da se u virtuelnom keu pojave dve kopije istog podatka. U sluaju realnog kea ovo
ne moe da se desi, zato to bi razliite virtuelne adrese uvek bile prevedene na istu fiziku adresu.
Ovaj problem se moe reiti kombinacijom hardvera i softvera, korienjem tehnike bojenja stranica
(engl. page colouring). Kod bojenja stranica softverski se obezbeuje da aliasi imaju odreen broj
bitova virtuelnih adresa identine. Ako je taj broj l i ako je kapacitet ke memorije 2l bajta ili manji i
koristi direktno preslikavanje, tada e blokovi stranica aliasa zauzimati isti ulaz u virtuelnom keu.
Stoga se ne moe desiti da se u virtuelnom keu nau dve kopije fizikog podatka. Ovde je u keu
jedan blok za razliite virtuelne adrese, ali se nepotrebno prebacuje iz ke u operativnu memoriju i
nazad, pri promeni virtuelne adrese aliasa.
Adresiranje kea moe se zapoeti virtuelnom adresom, a dovriti prevedenom fizikom
adresom (virtuelni ke). U tom sluaju se pomeraj u virtuelnoj adresi, koji se neizmenjen prenosi u
fiziku adresu, koristi za adresiranje skupa ke blokova i itanje njihovih etiketa. Kao to je ve
spomenuto, ove etikete se odreuju na osnovu viih delova memorijskih adresa. Po prevoenju
virtuelne u fiziku adresu adresu, ona se moe uporediti sa proitanim etiketama blokova u
adresiranom skupu ke blokova. Ako se prevoenje adresa obavi sa pogotkom TLB-a, nema zastoja
u pristupu keu i u radu procesora. Ovde postoji sledee ogranienje. Ako je l duina polja pomeraja u
virtuelnoj adresi a r i b su duine polja indeksa i adrese rei u bloku kod ke memorije, onda za
ovakvo adresiranje mora biti ispunjen uslov
l r + b. Iz ovoga sledi
2l 2r + b. 2l = L je veliina stranice podataka, a 2r + b = 2r + 2b = S x B. Onda je L S x B.
Ako obe strane nejednakosti pomnoimo sa A, dobiemo
LxAAxSxB=C
(A, S, B su asocijativnost, broj skupova ke blokova i duina blokova ke memorije respektivno. C je
kapacitet kea u bajtovima). Sledi ogranienje
C L x A.
Za L = 4KB potrebna je velika asocijativnost da se dobije virtuelni ke dovoljnog kapaciteta. Za C =
32KB, A = 8.37
Postoje i druga, sloenija reenja za virtuelni ke koja ne podleu ovom ogranienju.
Prednost virtuelnog kea je pristup bez ekanja na okonanje prevoenja virtuelne adrese.
Nedostatak je nemogunost direktne komunikacije kea i U/I sistema. Kod ulaza/izlaza se obino radi
sa fizikim adresama, pa bi za interakciju sa virtuelnim keom bilo potrebno njihovo preslikavanje u
virtuelne adrese.

37

Ibidem, str. 293.

21

v1

Seminarski rad

REFERENCE

Katedra za Raunarsku tehniku i informatiku, Elektrotehniki fakultet,


Univerzitet u Beogradu, 2005., http://rti7020.etf.bg.ac.yu/

Webopedia 2005., www.webopedia.com

Neboja Milenkovi, Arhitektura i organizacija raunara, Elektronski fakultet,


Ni, 2004.

Dejan Simi, Pavle Batavelji, Organizacija raunara i operativni sistemi,


Fakultet organizacionih nauka, Beograd, 2004.

22

Vous aimerez peut-être aussi