Upload
darko-vasilevski
View
79
Download
2
Embed Size (px)
DESCRIPTION
seminarska za virtuelni memorii
Citation preview
ВОВЕД
U{te od najranite denovi na razvojot na
kompjuterite, programerite sakale neograni~eni
koli~estva na brza memorija. Na~in za da im se pomogne
e formiraweto na iluzija deka raspolagaat so
neoograni~eni koli~estva brza memorija. Postojat mnogu
tehniki za sozdavawe na ovaa iluzija i za podobruvawe na
nejzinite performansi.
1. Osnovni koncepti на виртуелна меморија
Kako {to ke{ memorijata se koristi kako metoda za
ovozmo`uvawe brz pristap, taka glavnata memorija mo`e
da se odnesuva kako “ ke{ memorija “ za sekundarnata
memorija, obi~no implementirana kako magneten disk.
Ovaa tehnika se narekuva virtuelna memorija.
Postojat dve glavni motivacii za virtuelna memorija :
mo`nosta za efikasno delewe na memorijata pome|u
pove}e programi i otstranuvawe na te{kotiite za
programirawe poradi maloto, ograni~eno koli~estvo na
glavna memorija.
Neka postojat pove}e programi koi {to se izvr{uvaat
istovremeno na kompjuterot. Vkupnoto koli~estvo na
memorija potrebno da se izvr{at site tie programi mo`e da
bide mnogu pogolemo od fizi~kata memorija, a sepak vo
odreden moment od vremeto aktivno se koristi samo eden
del od fizi~kata memorija.
1
Glavnata memorija treba da gi sodr`i samo aktivnite
delovi na programite, isto kako {to ke{ memorijata go
sodr`i samo aktivniot del od edna programa. Ova
ovozmo`uva efikasna podelba na procesorot i glavnata
memorija me|u korisnicite.
Drugata motivacija e da im se ovozmo`i na
korisni~kite programi da zafa}aat pove}e memorija
otkolku {to navistina ima glavna memorija. Porano
programerite odreduvale podelba na programata na delovi
koi {to vo tekot na izvr{uvaweto na programata se
smestuvale vo glavnata memorija i se obnovuvale vo
sekundarnata pod kontrola na korisni~ka programa.
Poradi toa programiraweto pretstavuvalo golem problem.
Virtuelnata memorija, pak od druga strana, avtomatski
upravuva so dvo nivovskata hierarhija pretstavena so
glavnata memorija i sekundarnata memorija.
Za sekoja programa se definira adresen prostor
(address space ) odnosno odreden broj memoriski lokacii
rezervirani za taa programa. So toa se vr{i za{tita na
programite edna od druga i na operativniot sistem od
programite. Virtuelnata memorija go ovozmo`uva
prenesuvaweto na adresniot prostor za sekoja programa.
Konceptot na rabota na virtuelnata memorija i na
ke{ memorijata e ist, no se koristat razli~ni termini. Taka
blok vo virtuelna memorija se narekuva stranica (page) , a
aktivnosta {to doveduva do nepogoduvawe generira
gre{ka na stranica (page fault ).
Procesorot sozdava virtuelna adresa (virtual
address ), koja so pomo{na hardver i softver se preveduva
2
vo fizi~ka adresa ( physical address ) vo glavnata
memorija, kako {to e prika`ano na slikata br.1
Sl.1.Mapirawe na virtuelnite adresi vo fizi~ki
Procesot na mapirawe na stranicite od virtuelno
adresiranata memorija vo fizi~kata memorija se narekuva
mapirawe na memorijata (memory mapping ) ilim
preveduvawe na adresi ( address translation ).
Virtulenata memorija isto go poednostavuva na~inot
na koj se zapi{uvaat programite vo memorijata, bidej}i
vr{i relokacija. Toa zna~i deka memoriskite stranici se
smestuvaat na razli~ni mesta vo memorijata, t. e. za da
se smesti edna programa ili edna datoteka ne e potrebno
da se bara kontinuiran sloboden del od memorijata tuku se
baraat prazni odnosno nepotpolneti memoriski stranici vo
fizi~kata memorija. Za ovaa aktivnost porano bil potreben
dodaten hardver i specijalna podr{ka na operativniot
sistem koja {to virtuelnata memorija ja sproveduva.
Kako {to e prika`ano na slikata br. 2 , virtuelnata
adresa se sostoi od broj na virtuelna stranica ( virtual
3
page number ) i strani~no pomestuvawe ( page off set ).
Brojot na virtuelna stranica se preveduva vo broj na
fizi~ka stranica ( physical page number ), koj go formira
gorniot del na fizi~kata adresa, dodeka pomestuvaweto
go formira gorniot del. Brojot na bitovi na delot za
pomestuvawe ja definira goleminata na stranicata. Brojot
na adresibilni stranici kaj virtuelnata adresa ne mora da se
sovpa|a so soodvetniot broj na adresibilni stranici kaj
fizi~kata adresa.
Sl. 2.Formirawe na fizi~ka od virtelna adresa
Nepogoduvaweto doveduva do gre{ka na stranica i
prakti~no e golema zaguba vo vreme. Zatoa pri
dizajniraweto na virtuelna memorija se vnimava na :
- Stranicata treba da bide dovolno golema za da go
amortizira visokoto vreme na pristap ( tipi~na golemina e
od 4 KV do 64 KV );
- Prednost imaat organizaciite koi ja namaluvaat
ratata na nepogoduvawe odnosno tehniki so fleksibilno
smestuvawe stranici.
4
- Nepogoduvawata vo virtuelnata memorija mo`e
softverski da se re{avaat so dovolno pameten algoritam
za smestuvawe stranica.
- Za realizacija na virtuelnata memorija ne se koristi
tehnikata zapis- preku ( write- through ) bidej}i odzema
mnogu vreme, odnosno se koristi tehnika koja ne
pobaruva mnogu obraќawe do diskот.
2. Tabela na stranici (page table)
Za namaluvawe na nepogoduvaweto se optimizira
na~inot na smestuvawe na stranicite. Koga stranicite se
smestuvaat na proizvolno mesto vo memorijata,
operativniot sistem pri zamena mo`e da izbere proizvolna
starnica. Polno asocijativno ( fully associative ) mapirawe
postoi koga virtuelnata memorija dozvoluva virtuelna
stranica da bide mapirana za proizvolna fizi~ka starnica,
jasno so koristewe posofisticiran algoritam za zamena na
stranica, koj {to ovozmo`uva da se zameni stranica koja
pove}e nema da se koristi.
Bidej}i sekoja stranica mo`e da bide smestena na
bilo koe mesto vo memorijata potreben e mehanizam da
se pronajde, t.e. se formira tabela na stranici ( page table ).
Tabelata na stranici e indeksirana po brojot na stranici od
virtuelnata adresa i gi sodr`i soodvetnite fizi~ki broevi na
stranici kako {to e poka`ano na slikata br. 3 .
Taa gi sodr`i duri i onie stranici {to ne se prisutni vo
memorijata. Na sekoja programa i soodvetstvuva tabela
na stranici koja so mapira virtuelniot adresen prostor vo
5
fizi~kata memorija. Pozicijata na tabelata na stranici vo
memorijata se ozna~uva so pomo{ na registar koj
poka`uva kon po~etokot na tabelata i se narekuva
registar na tabelata na stranici ( page table register ).
Na~inot na koj se formira fizi~kata adresa so pomo{ na
registarot na tabelata na stranici i tabelata na stranici e
prika`ana na slikata br. 3. so pomo{na bitot za
validnosti ( valid bit ) se ozna~uva dali stranicata e vo
memorija ili ne. ako stranicata e vo memorija toga{ vo
tabelata se sodr`i brojot na fizi~ka stranica, a vo sprotivno
nastanuva gre{ka na stranica. Bidej}i tabelata gi sodr`i
mapirawata za sekoja mo`na stranica nema potreba od
tag bit ( tag ).
Sl. 3.Formirawe fizi~ka adresa so pomo{ na
tabelata
na stranici
Po~etnata adresa na tabelata na stranica ja dava
poka`uva~ot kon tabelata na stranici. Goleminata na
stranicata na slikata br. 3 e 2 = 4 KB, virtuelniot
6
adresen prostor e 2 = 4 GB, fizi~kiot adresen prostor
e 2 = 1 GB , a brojot na podatoci koi mo`at da se smestat
vo tabelata na podatoci e 2 = 1 milion na vlezni podatoci.
Osven tehnikata za polno asocijativnata realizacija
na virtuelnata memorija teoriski postojat i drugi tehniki za
mapirawe na blok od podolno vo pogorno memorisko nivo.
Ograni~eno asocijativna tehnika e onaa koja mo`e
stranicata da ja mapira vo odredeno mno`estvo na
stranici, a direktno mapirana tehnika se odreduva so
to~no odreduvawe kade mo`e da se mapira sekoja
stranica. Ovie dve tehniki ne se primenuvaat kaj
virtuelnata memorija poradi zgolemeniot transfer na
podatoci pome|u diskot i memorijata.
3. Zamena na stranica
Tabelata na stranici, programskiot broja~ i registrite
ja definiraat sostojbata na programata. Ako procesorot
zapo~ne da obrabotuva druga programa toga{ ovaa
sostojba treba da se snimi za da mo`e izvr{uvaweto na
drugata programa da se pro~ita sostojbata i programata
da prodol`i da se izvr{uva. Ovaa sostojba obi~no se
narekuva proces. Procesot e aktiven ako procesorot go
obrabotuva. Operativniot sistem mo`e odreden proces da
go napravi aktiven samo so ~itawe na sostojbata na
procesorot, vklu~uvaj}i go i programskiot broja~ koj
ovozmo`uva prodol`uvawe na procesot od kade {to bil.
Samo so ~itaweto na registerot na tabelata na stranici se
ovozmo`uva pristap do tabelata na stranici.
7
Koga }e nastane gre{ka na stranica, odnosno bitot
za validnost e isklu~en, operativniot sistem ja prezema
kontrolata preku sistemot za prekin so cel da ja pronajde
stranicata vo podolnoto nivo koe obi~no e magneten disk.
Potoa odlu~uva kade da ja smesti vo glavnata memorija.
No, virtuelnata adresa ne ja dava adresata na diskot na
koj se nao|a. Zatoa operativniot sistem sozdava mesto na
diskot za site stranici i formira podato~na struktura kade
zapi{uva koja virtuelna stranica e zapi{ana na diskot.
Ovaa podato~na struktura mo`e da bide del od tabelata
na stranici ili pomo{ na indeksirana datoteka sli~no kako i
tabelata na stranici.
Na slikata br. 4 e pretstavena organizacija kade vo
edna tabela se sodr`at brojot na fizi~ka stranica ili
adresata na diskot vo zavisnost od bitot za validnost.
Sl. 4.Tabela na stranici so broj na fizi~ka stranica
ili adresa na disk
Ako bitot za validnost e vklu~en, odnosno
stranicata e prisutna vo memorijata, vo tabelata e zapi{an
brojot na soodvetnata fizi~ka stranica. Vo sprotivno ako
bitot za validnost e isklu~en stranicata ne e prisutna vo
memorijata, toga{ vo tabelata e zapi{ana soodvetnata
8
adresa na diskot. Vo mnogu sistemi tabelata na fizi~ki
adresi na stranici i na adresi na stranici na disk se
pretstaveni so dve razli~ni podato~ni strukturi, iako
logi~ki pretstavuvaat edna tabela. Ova e potrebno bidej}i
adresite na diskot se potrebni za site stranici.
Neka site stranici vo fizi~kata memorija se
upotrebeni. Operativniot sistem treba da odlu~i koja
stranica da ja zameni. Zaradi pogolema optimizacija
operativnite sistemi pretpostavuvaat koi stranici nema da
se koristat naskoro i od niv odbiraat stranica {to }e ja
zamenat . Povikuvaj}i se na principot na vremenska
lokalnost operativniot sistem mo`e da ja bara najmalku
koristenata vo posledno vreme LRU ( Least Recently Used
) stranica, bidej}i stranicata do koja ne e pristapeno vo
podolg vremenski period e pomalku verojatno deka ]e bide
potrebna otkolku onaa stranica do koja e pristapeno vo
posledno vreme. Za da mu pomogne na operativniot
sistem vo odreduvaweto na najmalku koristenata stranica
vo posledno vreme, ma{inata obezbeduva eden bit za
iskoristenost ( use bit ) ili bit za referenciranost (
reference bit ). Koga stranicata }e bide referencirana
nejziniot bit za referenciranost }e bide postaven, a po
nekoe vreme site bitovi za referenciranost }e bidat
nulirani i zapomneti, pa taka }e se znae do koi strenici e
pristapeno vo posledno vreme. Ako vakviot bit ne e
obezbeden od hardverot toga{ operativniot sistem mora
da najde drug na~in da predvidi koja stranica e najmalku
koristena vo posledno vreme.
9
Neka postoi 32- bitna virtuelna adresa, 4 KV- ni
stranici i 4 bajti po zapis vo tabelata na stranici.
Goleminata na tabelata na starnici iznesuva :
= stranici * bajti/ strana = 4 MV
Taka za tabela na stranici za edna programa se
potrebni po 4 MV memorija ! Ako vo isto vreme rabotat
pove}e programi, ne bi imalo mesto ni za tabelite na
stranici, a ne za ne{to drugo.
Najprosta tehnika {to se primenuva za da ne dojde
do toa e postavuvaweto na grani~en register, {to ja
ograni~uva goleminata na tabelata na stranici. Koga
virtuelniot broj na stranica }e bide pogolem od sodr`inata
na grani~niot registar toga{ podatocite mora da se vnesat
vo tabelata. Kolku procesot koristi pove}e stranici od
virtuelniot adresen prostor, tolku tabelata e pogolema. Za
primena na ovaa teghnika tabelata treba da raste samo vo
edna nasoka. Ovoj nedostatok se nadminuva so primena
na tehnika za delewe na tabelata na dve. So toa se
dozvoluva tabelata da odi od najvisokata virtuelna adresa
nadolu i od najmalata virtuelna adresa nagore. Ova zna~i
deka }e postojat dve razdeleni tabeli na stranici so dva
razli~ni grani~ni registri. So toa }e se podeli i adresniot
prostor na dva segmenti. Bitovite od gorniot del na
adresata }e opredeluvaat koj segment da se koristi za
nao|awe na adresata. Goleminata na eden segment mo`e
da bide do polovina od goleminata na adresniot prostor.
Vakviot na~in na segmentirawe se koristi od strana na
razli~ni arhitekturi, vklu~uvaj}i ja i MIPS RISC
10
arhitekturata. Istiot ne e vidliv ni za korisnicite ni za
operativniot sistem.
Drug pristap e so primena na rastura~ka funkcija
na virtuelnata adresa, so {to tabelata na stranici ima
golemina kolku {to e brojot na fizi~ki stranici vo glavnata
memorija. Ovaa struktura se narekuva invertirana
tabela na stranici. Nedostatok e toa {to pote{ko se
pronao|a brojot na soodvetnata fizi~ka stranica, bidej}i ne
mo`e ednostavno da se indeksira tabelata po brojot na
virtuelnata stranica.
Najmodernite sistemi isto taka dozvoluvaat
strani~ewe na tabelata na staranici, {to se sveduva na
dozvoluvawe na tabelata na stranici da prestojuva vo
virtuelniot adresen prostor, no isto taka sozdava i te{ko
re{liv problem : beskone~na serija gre{ki na stranica, koja
mora da bide izbegnat.
Razlikata pome|u vremeto na pristap na ke{ i
glavnata memorija e desetina ciklusi, pa mo`e da se
koristi tehnikata zapi{uvawe- preku, iako e potreben
bafer za da se skrie latentnosta pri zapi{uvawe od
procesoror. Kaj virtuelnata memorija zapi{uvaweto na disk
zema stotici do iljada ciklusi, pa stavaweto na bafer
zapi{uvawe- preku bi bilo sosema neprakti~no. zatoa za
realizacija na virtuelna memorija se koristi tehnikata zapis-
nazad, koja se sostoi vo toa {to individualnite zapisi se
akumuliraat vo stranicata i koga taa treba da se zameni se
zapi{uva na disk. So ovaa tehnika se za{teduva vo vreme
bidej}i poefikasno e da se zapi{e cela stranica otkolku da
se zapi{vaat individualni izmeni na diskot, poradi maloto
11
vreme za transfer nja podatoci na diskot vo odnos na
vremeto za prebaruvawe na soodvetnata pateka i sektor
na diskot. Bidej} tehnikata zapis- nazad pobaruva vreme
na transfer se dodava taka nare~eniot valkan bit ( dirty
bit )Dokolku dojde do izmena na podatocite od edna
stranica toga{valkaniot bit se postava i koga stranicata
treba da se zameni taa se zapi{va nazad na diskot,a
dokolku ne se izmenat podatocite od stranicata toga{ aiot
bit ne e postaven i taa nema da se zapi{ nazad na disk
koga se zamenuva.
4. Brz prevod na adresa : TLB
Tabelite na stranici se tolku golemi taka [to moraat
da bidat smesteni vo glavnata memorija. Zatoa sekoj
pristap do memorija se sostoi od dva pristapi do
memorijata : eden da se formira fizi~kata adresa i vtor da
se pro~ita podatokot.
Za da se namali vremeto na pristap se koristi
principot na vremenska i prostorna lokalnost, t. e. ako se
prevede edna virtuelna adresa naskoro }e treba istata da
se preveduva bidej}i zborovite od stranicata se povrzani
so prostorna i vremenska lokalnost. Se formira specijalna
ke{ memorija koja gi sodr`i vo posledno vreme koristenite
prevodi na adresi nare~en bafer za preveduvawe
( translation- lookaside buffer )- TLB. TLB e ke{ memorija koja
{to gi sodr`i samo mapirawata na tabelata na stranici, t. e.
sekoj tag vlez sodr`i del od brojot na virtuelna stranica, a
sekoj podato~en vlez go sodr`i brojot na fizi~ka stranica.
12
Bidej}i se pristapuva do TLB a ne do tabelata na stranici,
potrebno e toj da sodr`i i bit za referenciranost i valkan
bit, kako {to e prika`ano na slika br. 5.
Sl. 5. TLB e ke{ memorija za vlezovite na tabelata
na
stranici
Pri sekoe obra}awe se bara brojot na virtuelna
stranica vo TLB. Ako se dobie pogodok, toga{ brojot na
fizi~ka stranica se koristi da se formira fizi~kata adresa,
bitot za referenciranost se postava , a ako se izvr{i
zapi{uvawe toga{ i valkaniot bit se postava. Ako se pojavi
nepogoduvawe, toga{ treba da se opredeli dali se raboti
za gre{ka na starnica ili samo za TLB gre{ka. Ako
stranicata se nao|a vo memorijata toga{ toa e TLB gre{ka
i potrebno e samo od tabelata na stranici da se opredeli
brojot na fizi~ka stranica i da se vnese vo TLB. Ako
stranicata ne e vo memorija toga{ e nastanata vistinska
gre{ka na stranica i e potrebno za toa da se informira
13
operativniot sistem preku sistemot za prekin. Bidej}i TLB
ima pomal maksimalen broj na vlezni podatoci od tabelata
na stranici poverojatno e deka pri nepogo{uvaweto }e
nastane TLB gre{ka, a ne gre{ka na stranicata. Ako pri
vnesuvaweto na podatoci vo TLB nema pove}e mesto,
toga{ treba da se odredi koi vlezni podatoci, tag i
podato~en vlez, da se zamenat. Vo toj slu~aj valkaniot bit
i bitot za referenciranost se kopiraat vo tabelata na
stranici. Tie bitovi se edinstvenoto ne{to {to ne mo`e da
se menuva vo TLB. Za zapi{uvawe se koristi strategija
zapis-nazad, a bidej}i se o~ekuva mala rata na TLB gre{ki
taa strategija e mo e efikasna. Nekoi arhitekturi koristat
drugi na~ini za simulirawe nabitot za referenciranost i
valkaniot bit. Primer na arhitekturi {to ja otfrlaat potrebata
za zapis vo TLB, osven pri ~itawe vlezni podatoci pri
nepogoduvawe se arhitekturite MIPS R2000 i R3000. Na
tabelata br. 1 se pretstaveni nekoi tipi~ni vrednosti za
TLB :
Golemina na blok 1-2 vleza od tabelata na stranici (4-8 bajti)
Vreme na pogodok 1/2 do 1 ciklus na ~asovnikot
Kazna na
nepogoduvawe
10- 30 ciklusi na ~asovnikot
Rata na
nepogoduvawe
0,01% -1%
TLB golemina 32 -1024 vleza
Tabela 1:Tipi~ni golemini za arhitekturi od 1995
god.
14
Osven ovie parametri se razlikuva i na~inot na
povrzuvawe na prevodite so vlezovite na TLB . Mnogu TLB-
a koristat polno asocijativno povrzuvawe bidej}i
postignuva najmala rata na nepogoduvawe i TLB ima mal
broj na vlezovi. Odlu~uvaweto koj vlez da se zameni e
navistina te{ko. Poradi ogromniot broj na TLB
nepogoduvawa ne mo`e da se koristi skap algoritam za
odlu~uvawe pa obi~no se koristi za menuvawe po
slu~aen izbor.
5. Upravuvawe so nepogoduvawe
Kolku {to e ednostavno preveduvaweto na
virtuelnata adresa vo fizi~ka koga postoi TLB pogodok,
tolku e komplicirano upravuvaweto so TLB
nepogoduvawata i gre{ki na stranica. TLB nepogoduvawe
zna~i deka vo TLB ne postoi vlez koj se sovpa|a so
virtuelnata adresa, a toa mo`e da zna~i dve raboti :
1. Stranicata e vo memorija i e potrebno samo da se
formira potrebniot vlez vo TLB .
2. Stranicata ne e prisutna vo memorija i mora da
se prefrli kontrolata na operativniot sistem za da reagira
na gre{ka na stranica.
Neka pri nastanatoto TLB nepogoduvawe, vo
tabelata na stranici se nao|a soodvetniot vlez. Ako
negoviot valide bit e isklu~en zna~i deka nastanala
gre{ka na stranica, a ako e vklu~en toga{ brojot na
fizi~ka stranica {to }e se pro~ita od tabelata }e se
15
upotrebi za kreirawe na TLB vlez. Upravuvaweto so TLB
nepogoduvawe mo`e da bide realizirano hardverski ili
softverski bidej}i e potrebna samo mala sekvenca na
operacii za da se kopira validen vlez od tabelata na
stranici vo TLB .
Upravuvaweto so gre{ka na stranica pobaruva
koristewe na sistemot za prekin za da se prekine procesot
koj se izvr{uva, prenesuvawe na kontrolata na
operativniot sistem i podocna prodol`uvawe so izvr{uvawe
na procesot. Gre{kata na stranica }e bide otkriena vo
tekot na ciklusot na ~asovnikot koga se vr{i pristap do
memorijata. Za da mo`e povtorno da se startuva
instrukcijata po servisirawe na gre{kata na stranica
potrebno e da se snimi programskiot broja~ na
instrukcijata koja predizvikala gre{ka na stranica, vo
specijalen registar nare~en programski broja~ na
prekin ( excetion program counter )- EPC. Ponatamu, prekinot
poradi gre{ka na stranica mora da bide utvrden dovolno
rano za da mo`e da se smeni sostojbata vo ciklusot {to
sledi po onoj kade nastanalo pristapuvawe do memorijata.
Dokolku gre{kata na stranica ne e otkriena podocna,
toga{ ~itaweto mo`e da go prekrie registerot i da nastane
katastrofa koga povtorno se startuva instrukcijata. Istoto
se slu~uva i pri zapi{uvawe.
Edna{ koga procesot koj generiral gre{ka na
stranica }e bide prekinat i operativniot sistem ja ima
kontrolata, toj go koristi registarot za pri~ina na
prekin ( excetion cause register ) za da ja opredeli pri~inata
za prekin. Bidej}i prekinot e gre{ka na stranica,
16
operativniot sistem znae deka ]e bidat potrebni
dopolnitelni procesirawa, pa zatoa ja snima celosnata
sostojba na aktivniot proces. Ova gi vklu~uva site registri :
za op{ta namena i podvi`na zapirka, za adresata na
tabelata na stranici, EPC i za pri~ina na prekin.
Virtuelnata adresa koja ja predizvikala gre{kata na
stranica zavisi od toa dali gre{kata e instrukciska ili
podato~na. Adresata na istrukcijata koja ja generirala
gre{kata e vo EPC. Ako gre{kata e instrukciska
toga{ virtuelnata adresa na gre{nata stranica se nao|a vo
EPC , a ako ne toga{ gre{nata virtuelna adresa mo`e da
bide presmetana so analizirawe na instrukcijata ( ~ija
adresa e vo EPC ) za da se najde bazniot registar i poleto
za pomestuvawe.
Koga operativniot sistem }e ja doznae virtuelnata
adresa {to ja predizvikala gre{kata na stranica, mora da
izvr{i tri ~ekori :
- Da go pronajde vlezot vo tabelata na stranici so
pomo{ na virtuelnata adresa i da ja najde lokacijata na
diskot kade e smestena referenciranata stranica.
- Da odbere fizi~ka stranica koja {to }e ja zameni,
iako kaj izbranata stranica e postaven valkaniot bit prvo
nejze da ja zapi{e na disk.
- Da zapo~ne ~itawe za da ja donese
referenciranata stranica od disk vo izbranata fizi~ka
stranica.
Posledniot ~ekor }e go zazeme stotina do iljada
ciklusi na ~asovnikot, pa zatoa operativniot sistem }e
izbere drug proces da izvr{uva bidej}i ve}e ja ima
17
snimeno sostojbata na ovoj proces. Koga ~itaweto na
stranicata od diskot }e zavr{i, operativniot sistem mo`e
da ja vrati sostojbata na procesot {to ja predizvikal
gre{kata na stranica i da izvr{i instrukcija koja vra}a od
prekinot. Ovaa instrukcija }e go prefrli procesorot od
upravuva~ki vo korisni~ki re`im i }e ja obnovi sodr`inata
na programskiot broja~. Toga{ korisni~kata programa
povtorno }e ja izvr{uva instrukcijata kade nastanala
gre{kata, uspe{no }e pristapi do baranata stranica i }e
prodol`i so izvr{uvaweto.
Operativniot sistem e prakti~no povredliv vo
vremenskiot interval pome|u po~etokot na servisiraweto
na prekinot i momentot koga e snimena celata sostojba,
bidej}i dokolku nastane drug prekin }e go prekrie EPC i so
toa }e bide nevozmo`no da se vrati na instrukcijata koja
go predizvikala prekinot. Zatoa prekinite se maskiraat i
ovozmo`uvaat. Toa prakti~no zna~i deka koga }e se
pojavi prekin se postava bit koj gi maskira site drugi
prekini vo momentot koga procesorot se postavuva vo
upravuva~ki re`im. Operativniot sistem toga{ }e za~uva
dovolno informacii (EPC i registerot za pri~ina na prekin ),
za da mo`e vo celost da ja povrati sostojbata na
prekinatiot proces.
Prekinite za gre{ka na stranica se te{ki za
implementacija zaradi tie karakteristiki :
- se pojavuvaat vo sredina na instrukcijata,
- instrukcijata ne mo`e da bide izvr{ena pred da
bide servisiran prekinot i
18
- po servisirawe na prekinot instrukcijata treba da
bide povtorno startuvana kako ni{to da ne se
slu~ilo.
Predizvikuvaweto efekt instrukcijata da bide
povtorno izvr{liva, t.e. po servisiraweto na prekinot
povtorno da se izvr{i, e relativno lesno vo arhitekturite
kako {to e MIPS . Sekoja instrukcija zapi{uva samo eden
podatok i ova zapi{uvawe se izvr{uva na krajot od
instrukciskiot ciklus {to mo`e da se spre~i so celosno
neizvr{uvawe na instrukcijata. Potoa instrukcijata
otpo~nuva od po~etok.
Mnogu e te{ko instrukciite da se napravat povtorno
izvr{livi za ma{ini koi koristat kompleksni instrukcii. Tie
mo`at da doprat mnogu memoriski lokacii za da zapi{at
pove}e podatoci. Obrabotuvaweto na edna instrukcija
mo`e da generira nekolku gre{ki na stranica ( pr. nekoi
ma{ini imaat instrukcii za prenesuvawe na blokovi koi
sodr`at iljada podato~ni zborovi ). Vo toj slu~aj
nevozmo`no e edna instrukcija da bide povtorno izvr{ena
od po~etok. Taa se prekinuva i podocna se prodol`uva so
nejzino izvr{uvawe od istoto mesto. Ova pobaruva
snimawe na nekoja specijalna sostojba, servisirawe na
prekinot i obnovuvawe na taa specijalna sostojba. Za toa e
potrebna odli~na usoglasenost pome|u sistematskiot kod
za prekin vo operativniot sistem i hardverot.
Bidej}i TLB e podmno`estvo na tabelata na stranici
kade se pristapuva sekoj vremenski ciklus povreda na
za{titata isto taka se glada kako TLB prekini. Operativniot
sistem mo`e da ja servisira povredata na za{titata so
19
pomo{ na osnovniot hardver {to se koristi za upravuvawe
so TLB nepogoduvawe i gre{ki na stranica. Specijalno
mno`estvo na vrednosti vo registerot za pri~ina za prekin
mo`e da se koristi za da indicira povreda na za{titata.
Operativniot sistem mo`e da pristapi do TLB ili do vlezot
na tabelata koj {to se sovpa|a so virtuelnata stranica, pa
mo`e da gi ispita pravata za pritap na procesot.
Upravuvaweto so TLB nepogoduvawata vo softverot
e analog}o so upravuvaweto na gre{kata na stranica,
bidej}i se signalizirani so ist nastan. Za da se zabrza
obrabotkata na TLB nepogoduvawata vo odnos na gre{ka
na stranica, se opredeluvaat dve razli~ni vrednosti vo
registerot za pri~ina za prekin. Ednata indicira deka nema
soodveten vlez vo TLB , a drugata deka ima takov vlez, no
stranicata ne e vo memorija ( bitot za validnost e isklu~en
). Vo slu~aj na TLB nepogoduvawe kaj MIPS R2000/3000
operativniot sistem go ~ita soodvetniot vlez od tabelata
na stranici vo TLB bez da vr{i proverka i povtorno ja
izvr{uva instrukcijata. Ako povtorno se javi prekin zna~i
se raboti za gre{ka na stranica. Ovaa metoda postignuva
upravuvaweto na ~estite TLB nepogoduvawa da se
realizira mnogu brzo so slaba kazna za retkiteslu~ai na
gre{ka na stranica.
Dobivkata vo namaluvawe na ratata na
nepogoduvawe se namaluva vo sekoe naredno nivo na
asocijativnost, kako {to e prika`ano na slikata br. 6.
Polnata asocijativnost ima samo malo podobruvawe vo
odnos na osum ograni~eniot asocijativen dizajn.
Prednosta na asocijativnosta e podobrenata rata na
20
nepogoduvawe, a potencijalen nedostatok e zgolemenata
cena i pogolemo vreme na pristap.
Sl.6.Ratata na nepogoduvawe za razli~ni golemini
na
Ke{ memorija
Pronao|aweto blok vo virtuelniot memoriski sistem
se vr{i so pomo{ na indeksiranata tabela na stranici.
Sli~no se indeksira i vo direktno mapirana ke{ memorija
za da se pristapi do soodvetniot blok. Kaj ograni~eno
asocijativna ke{ memorija, sekoj blok sodr`i adresen tag
so adresata na blokot. Tagot na site blokovi kade {to
mo`ebi se nao|a baranata informacija se sporeduva so
adresata na blokot od procesorot. Poleto za indeks se
koristi za da se opredeli mno`estvoto kade se nao|a
baranata informacija, a potoa se sporeduvaat tagovite na
site blokovi vo mno`estvoto so tagot od adresata na
baraniot blok. Bidej}i brzinata e od od ogromno zna~ewe
prebaruvaweto na tagovite na site blokovi vo edno
mno`estvo se vr{i paralelno. Seriskoto barawe bi
21
odzemalo premnogu vreme i vremeto na pogodok na
ograni~eno asocijativnata ke{ memorija bi bilo ogromno.
Izborot me|u direktnoto mapirawe ograni~eno
asocijativno i polno asocijativno mapirawe vo memoriskata
hierarhija zavisi od cenata na nepogoduvawe nasproti
cenata na implementiraweto na asocijativnosta, kako vo
vreme taka i vo dopolnitelni delovi. Za sistemot na
virtuelna memorija, va`ni se tri faktori :
- Najva`na e ratata na nepogoduvawe poradi
golema kazna za nepogoduvawe;
- Mapiraweto e implementirano vo softverot, bez
vlijanie na vremeto na ciklusot;
- Golema stranica zna~i pomala golemina na
tabelata na stranici.
Zatoa sistemite na virtuelna memorija
sekoga{ koristat polno asocijativno mapirawe. Ograni~eno
asocijativno tehniki so mala asocijativnost koristat obi~no
ke{ memoriite i TLB . Nekoi ke{ memorii koristat direktno
mapirawe zaradi vremeto na pristap i ednostavnosta
( nema potreba od sporeduvawe ). Golemite ke{ memorii
nikoga{ ne koristat polno asocijativno smestuvawe, poradi
cenata i vremeto na pogodok, vo odnos na malata
prednost vo performansite pred ograni~eno
asocijativnoto. Koristeweto na celosna mapa za
ke{ memorijata kako tabelata na stranici za virtuelnata
memorija e neefikasno poradi goleminata {to bi ja imala i
ogromnoto vreme na pristap.
Problemot vo gradeweto na memoriski sistem koj }e
dr`i ~ekor so brzite procesori e navistina te`ok, poradi
22
faktot deka osnovnata materija od koja se gradat tie
sistemi e ista i za brzite i za bavnite kompjuteri. Principot
za lokalnost dava mo`nost da se nadmine golemata
latentnost na memorijata i se primenuva na site nivoa od
memoriskata hierarhija. Predizvikot vo dizajniraweto na
memoriskata hierarhija le`i vo faktot deka site na~ini na
hardverska implementacija imaat i dobro i lo{o vlijanie na
performansite. Sekoga{ postojat optimalni performansi koi
}e sodr`at i nepogoduvawe. Ako ratata na pogodoci e
dovolno visoka, toga{ memoriskata hierarhija ima vreme
za pristap blisku do vremeto na pristap na povisokoto
(pobrzoto) nivo i golemina ednakva na goleminata na
dolnoto (bavnoto) nivo. Taka, so virtuelnata memorija se
dobiva memorija so malo vreme na pristap ( kolku {to e
vremeto na pristap na glavnata memorija) i ogromna
golemina (kolku {to e goleminata na diskot).
23