30
ВОВЕД 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. 1

VIRTUELNA MEMORIJA

Embed Size (px)

DESCRIPTION

seminarska za virtuelni memorii

Citation preview

Page 1: VIRTUELNA  MEMORIJA

ВОВЕД

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

Page 2: VIRTUELNA  MEMORIJA

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

Page 3: VIRTUELNA  MEMORIJA

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 4: VIRTUELNA  MEMORIJA

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

Page 5: VIRTUELNA  MEMORIJA

- 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

Page 6: VIRTUELNA  MEMORIJA

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

Page 7: VIRTUELNA  MEMORIJA

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

Page 8: VIRTUELNA  MEMORIJA

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

Page 9: VIRTUELNA  MEMORIJA

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

Page 10: VIRTUELNA  MEMORIJA

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

Page 11: VIRTUELNA  MEMORIJA

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

Page 12: VIRTUELNA  MEMORIJA

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

Page 13: VIRTUELNA  MEMORIJA

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

Page 14: VIRTUELNA  MEMORIJA

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

Page 15: VIRTUELNA  MEMORIJA

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

Page 16: VIRTUELNA  MEMORIJA

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

Page 17: VIRTUELNA  MEMORIJA

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

Page 18: VIRTUELNA  MEMORIJA

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

Page 19: VIRTUELNA  MEMORIJA

- 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

Page 20: VIRTUELNA  MEMORIJA

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

Page 21: VIRTUELNA  MEMORIJA

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

Page 22: VIRTUELNA  MEMORIJA

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

Page 23: VIRTUELNA  MEMORIJA

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