Vous êtes sur la page 1sur 8

Memoriavirtuale

Strutturehardwareedicontrollo
Lecaratteristichechiavedelletecnichedisegmentazioneepaginazionesono:
Tuttiiriferimentidimemoriaall'internodiunprocessosonoindirizzilogici,chesono
tradottidinamicamenteinindirizzifisiciatempod'esecuzione.Questocomportamento
garantiscelarilocazioneinmemoriadelprocesso.
Unprocessopuo'esseredivisoinuncertonumerodipezzi(pagineosegmenti)chenon
devonoesserenecessariamentecontiguiinmemoriaprincipale.

Osservazione:none'necessariochetuttelepagineoisegmentidiunprocessosianoinmemoria
principaleperpermetternel'esecuzione.
Residentset:porzionediunprocessochee'attualmentecaricatoinmemoriaprincipale.
Vantaggidellamemoriavirtuale:
Piu'processipossonoesseremantenutinellamemoriaprincipale,equestoimplicauna
miglioreefficienzadelprocessore(aumentalaprobabilita'ditrovaresempreprocessiin
statodiready).
E'possibilecheunprocessosiapiu'grandedellamemoriaprincipale.Illavorodioverlaye'
lasciatoalprocessoreealsistemaoperativo.

Trashing:fenomenoperilqualeilprocessoreimpiegalamaggiorpartedelsuotempoagestire
l'I/Odadiscopercaricare/scaricarelepaginedeiprocessi,invececheeseguireistruzioni.Sicerca
dievitarefenomeniditrashingpianificandolastrategiadisostituzionedellepagineinmemoria
principalequandoquestarisultaallimitedellacapacita'.
Principiodilocalita':principiobaseseguitonellapianificazionedistrategiedisostituzionedi
paginedellamemoriaprincipale.Affermacheiriferimentialprogrammaoaidatiall'internodiun
processotendonoaraggrupparsi.
Affinche'sipossaadoperareunmeccanismodimemoiavirtuale:
Deveesserciilsupportodell'hardwareperglischemidisegmentazione/paginazione
Deveesserciilsupportodelsistemaoperativo,chedevecreareemantenereleopportune
strutturedicontrollo.

Paginazioneememoriavirtuale
Stessosistemaadottatoperlapaginazionesemplice.Inquestocasoleentriesdellatabelladelle
paginesonoparzialmentemodificatepersupportareilmeccanismodimemoriavirtuale.Nel
dettaglio:

E'necessariounbitchespecifichiselapaginaspecificatae'attualmentecaricatain

memoria.
E'necessariounbitchespecifichiselapaginaabbiasubtomodifiche.Incasoaffermativo
lapaginainquestione,primadiesseresovrascritta,deveesserericopiatasudisco.
Possonoesserepresentialtribitchegestiscanoinformazionidiprotezioneecondivisione
dellapagina
Ogniprocessohalasuatabelladellepagine,didimensionevariabile.Questocomportaalcuni
aspetti:

Latabelladellepaginenonpuo'risiederenelprocessore,alcuiinternoe'invecepresente
unregistrochecontieneunpuntatoreallatabelladellepaginedelprocessoinrunning.
Latabelladellepaginerisiedeinmemoriaprincipale.
Dalmomentochelatabelladellepaginehaunadimensioneproporzionalealladimensione
massimadimemoriavirtualeassegnabileadogniprocesso(omeglio,haunnumerodi
entriesesattamentepariallaalladimensionemassimadimemoriavirtualeassegnabilead
ogniprocessodivisoladimensionedellapagina),essastessae'mantenutainmemoria
virtuale,ecometalee'essastessasottopostaapaginazione.
Dalpuntoprecedentesegueche,quandounprocessoe'inrunning,almenounaparte
dellasuatabelladellepaginedeveessereinmemoria,perl'esattezzal'entryrelativaalla
paginacorrentementesottoesecuzione.
Perrisolvereilproblemadellagrandezzadellepagetables,sipuo'ricorrerea:
unoschemaaduelivelli,doveognientrydiunadirectorydellepagine(definitaroot
pagetable)puntaadunatabelladellepagineparticolare1.
unainvertedpagetable,incuie'presenteunaentryperogniframedellamemoria
principale,echee'sempremantenutainmemoriaprincipale.L'indicizzazionedei
framesintaletabellasfruttaunatavolahash.

Translationlookasidebuffer:cacheperlatabelladellepagine,checontieneleentrydella
tabelladellepagineusatepiu'frequentemente.Questomeccanismopermettedievitareilduplice
accessoamemoriaprincipaleche,insuaassenza,avverrebbeadogniriferimentoamemoria:
1. accedereamemoriaperprelevarelaentrydellatabelladellepagineriferitaall'indirizzo
virtualesottoesame.
2. accedereamemoriaall'indirizzospecificatodopoilmappingindirizzovirtualeindirizzo
fisico.
LacacheTLBvieneovviamentesvuotataadognicambiodiprocesso,esibasafortementesul
principiodilocalita'.
Ladimensionedellapaginae'unaimportantedecisioneprogettuale,presasullabasedivari
fattori:
Piu'piccolae'ladimensionedellapagina,piu'piccolalaframmentazioneinterna
Piu'piccolae'ladimensionedellapagina,piu'pagineperprocessosonorichiestee,di
conseguenza,siavra'unatabelladellepagineconmaggiornumerodientries.
Incasodiprogrammiestesiinambientepesantementemultiprogrammato,grandepage
tablesimplicanomaggiorprobabilita'diavereundoppiopagefaultquandosihaun
riferimentoamemoria(unopermancanzadellapartedipagetablenecessariaatradurre

1 UsatoneiprocessoriPentium

l'indirizzovirtuale,unoperilrecuperoeffettivodellapaginareferenziatadall'indirizzo
cosi'tradotto).
Piu'grandee'ladimensionedellapagina,piu'efficientee'ilsuotrasferimentosudisco.
Lapercentualedipagefaultquindie'influenzatadallagrandezzadellapaginae,agrandezza
fissata,diminuisceconl'aumentaredelnumerodiframesallocatiperprocesso.

Segmentazioneememoriavirtuale
Lasegmentazionepermettealprogrammatoredivederelamemoriacomeuninsiemedisegmenti
ospazidiindirizzamentomultipli.Questatecnica:
Semplificalagestionedistrutturedatichecrescono.
Permettelamodificaelaricompilazioneindipendentedeiprogrammi,senzarifareillink
contuttol'insiemedeiprogrammi.
Siprestaallacondivisionetraprocessi.
Siprestaallaprotezione.

Lastrategiaimplementativae'simileaquellagia'discussaperlapaginazione(unatabelladei
segmentiperogniprocesso,bitdimodificaedipresenza).
Confrontovantaggipaginazioneesegmentazione
Paginazione

Segmentazione

Trasparentealprogrammatore.

Visibilealprogrammatore.

Eliminailproblemadellaframmentazione
interna.

Permettelagestionedistrutturedinamiche.

Grazieallastessadimensionetraframee
pagina,sipossonosvilupparealgoritmievoluti
perlagestionedellamemoria.

Modulare.
Supportoperlacondivisioneelaprotezione.

Inunsistemachecombinapaginazioneesegmentazione,unospaziodiindirizzoutentee'diviso
inuncertonumerodisegmenti.Ognisegmentoe'asuavoltadivisoinpaginedidimensionefissa,
lunghequantoiframedellamemoriaprincipale.
Unindirizzovirtualequindi:
Dalpuntodivistadelprogrammatoree'vistocomenumerodisegmentoeoffsetdi
segmento.
Dalpuntodivistadelsistemaoperativoe'vistocomenumerodisegmento,numerodi
paginaeoffsetdipagina.

Ogniprocessohaunatabelladeisegmentie,perognisegmento,unatabelladellepagine.

Softwaredelsistemaoperativo
Strategiadifetch
Determinaquandounapaginadeveesserecaricatainmemoriaprincipale.Sonoattuabilidue
possibiliapprocci:

Paginazionearichiesta(demandpaging):unapaginae'caricatainmemoriasoloquandosi
faunriferimentoaquellapagina.Moltipagefaultinfasediavviodiunprocesso.
Prepaginazione(prepaging):oltreallapaginainquestionechehaprovocatoilfault,
vengonocaricateinmemoriaaltrepagine.Operazioneveloceselepaginedacaricaresono
contiguesudisco.

Strategiadiposizionamento
Determinadovedeverisiedereunpezzodiprocessonellamemoriareale.Perunsistemacheusa
lapaginazionepureolapaginazionecombinataasegmentazione,generalmentequestoe'un
fattoreirrilevante.

Strategiadisostituzione
Riguardalaselezionediunapaginainmemoriadasostituirequandounanuovapaginadeve
esserecaricata.Piu'neldettaglio,riguardailcriteriodisceltaall'internodiuninsiemedipagine
segnatecomesostituibili.Lasceltaditaleinsiemedipagineprendeilnomediresidentset
management,everra'discussoinseguito.
Tuttelestrategiedisostituzionehannocomeobiettivolasostituzionedellapaginacheverra'
richiestailpiu'lontanopossibileneltempo(ovverolapaginaacuicisiriferira'dimenonel
prossimofuturo,lacuirimozioneprovocherebbequindiunminornumerodipagefault).La
maggiorpartedellestrategiecercadiprevederel'andamentofuturodellerichiestedipaginasulla
basedegliandamentipassati.
Frameinblocco:framechesonobloccatiinmemoriaprincipaleechenonpossonoessere
sostituiti.Adesempioquellidestinatiaibufferdell'I/Oinmemoria,abuonapartedelkernel,alle
strutturedicontrollo.
Algoritmoottimo:selezionaperlasostituzionelapaginaallaqualecisiriferira'dopoiltempo
piu'lungo.Ovviamenteirrealizzabile(anticausale),puo'essereusatocomemetrodiparagonetra
lestrategierealizzabili.
Algoritmoleastrecentlyused(LRU):sostituisceinmemorialapaginaacuinonsie'riferitoper
piu'tempo.Sibasasulprincipiodilocalita'.C'e'pero'unadifficolta'implementativalegataall'uso
diquestosistema:sirichiederebbedicontrassegnareognipaginaconuntimestamp,adognisuo
riferimento,ilcherisultaunaoperazioneinutilmentecostosa,ancheinpresenzadihardware
specializzato.
Algoritmofirstinfirstout:trattaiframeallocatiperlepaginediunprocessocomeunbuffer
circolareelepaginesonorimosseutilizzandoloschemaroundrobin.Sostituiscelapaginachee'
statapiu'alungoinmemoria.Nontienecontodellastoriapassatadellepagine.

Algoritmodell'orologio:approssimalastrategiaLRU.Risoluzionedeltimestampdiunbit,
chiamatousebit.Essovienepostoad1ognivoltacheunapaginavienecaricatainmemoriaead
ognisuosuccessivoriferimento.Quandosidevesostituireunapagina,iframevengonoscanditi
ciclicamente.Ilprimoframeconusebita0vienesostituito.Sesiincontraunframeconusebita
1,essovienemessoa0.Ilpuntatorepuntasemprealframesuccessivoaquellosostituito.
Algoritmodell'orologioconbitdimodifica:oltrealbitdiusosiprevedeancheunbitdi
modifica.Quandosiscandisconoiframeperlasostituzione,sipreferiscesempresostituireun
framenonmodificato,inquantononprevedeunariscritturadellapaginasudisco.Puo'compiere
alpiu'4giridelbuffer:
1. Cercaunframeconu=0,m=0.Nonmodificaibit.
2. Incasodifallimentocercaunframeconu=0,m=1.Durantelascansione,ponegliusebit
a0.
3. Incasodifallimentosiripeteilpasso1.
Algoritmodiaging:aumentalarisoluzionedeibitperapprossimareLRUnelbreveperiodo.Per
ognipaginasitieneunageestimator:piu'bassoe'ilvaloredell'estimator,piu'anticae'lapagina
(omeglio,piu'lontanoneltempoe'ilsuoultimoriferimento).Ilfunzionamentoe'ilseguente:
1. Adintervalliregolari,effettualascansionedeiframe,econsideragliusebit.
2. L'ageestimatordiogniframevieneshiftatodiunaposizioneadestra,eilvaloredelbit
d'usovienepostonellaposizionepiu'significativa.
3. Ponea0tuttigliusebit.
4. Quandosidevesostituireunapagina,siscegliequellaconpiu'bassoageestimator.
Pagebuffering:generamenteaccoppiatoconl'algoritmoFIFO.Iframesostituibilivengono
collocatiindueliste:
listadellepaginelibere,selapaginanone'statamodificata
listadellepaginemodificateincasocontrario

Lapaginanone'fisicamentespostatanellamemoriaprincipale:lasuaentrynellatabelladelle
paginee'trasferitanellalistadellepaginelibereonellalistadellepaginemodificate.Per
migliorareleprestazioni,ilsistemacercadimanteneresempreunpiccolonumerodipagine
libere.Quandounapaginadeveesserecaricata,vieneassegnataalprimoframedellalistadelle
paginelibere,sostituendolapaginaiviresidente.Quandounapaginanonmodificatastaper
esseresostituita,inrealta'rimaneinmemoria.Quindiseilprocessofadinuovoriferimentoalla
paginainquestione,questapaginainrealta'e'ancorainmemoria,edilsuocaricamentoe'in
praticaimmediato.Inoltre,lalistadellepaginemodificatee'scrittasudiscotuttainsieme:intal
modosiriduceilnumerodiaccessialdisco.

Gestionedelresidentset
Ilsistemadevedeciderequantamemoriaprincipaleallocareperunparticolareprocesso.Sono
possibiliduestrategie:
Allocazionefissa,assegnaalprocessounnumerofissatodipagineperl'esecuzione,deciso
almomentodelprimocaricamento,edeterminatoinbasealtipodiprocessooalle
indicazionidelprogrammatoreodelsistemista.
Allocazionevariabile,consentedivariareilnumerodiframeallocatiperunprocesso

durantelasuaesecuzione(adesempiosullabasedellafrequenzadipagefault:con
frequenzeelevatesiaumentailresidentsetdelprocesso;conbassefrequenze,losi
diminuisce).
L'allocazionevariabile,benche'piu'potente,haunoverheadmaggioreperilsistema,chedeve
valutarecostantementeiprocessiattivi,erichiedespecializzazionedall'hardware.
Correlataallastrategiadiallocazionee'lanozionediambitodisostituzione,chepuo'esseredi
duetipi:
Sostituzionelocale,sceglielapaginadasostituiretraquelleresidentiinmemoriadel
processochehacausatoilfault.E'ovviamentel'unicasceltaperl'allocazionefissa,mapuo'
essereadottataanchedallaallocazionevariabile.
Sostituzioneglobale,consideratuttelepaginenonbloccateinmemoriaprincipalecome
candidateallasostituzione.Puo'sicuramenteessereadottatadaunapoliticadiallocazione
variabile.

Allocazionefissa,ambitolocale.
Presentaunduplicesvantaggio:
Sel'allocazionee'troppopiccola,alloracisarannonumerosifaultdipagina,con
conseguenterallentamentodovutoall'I/Osudisco.
Setroppogrande,cisarannopochiprocessiinmemoria,conunutilizzoquindimeno
efficientedelprocessore.

Allocazionevariabile,ambitoglobale.
Ilsistemaoperativomantieneunalistadiframeliberi.Quandoavvieneunpagefault:
1. Unframeliberovieneaggiuntoalresidentsetdelprocessocausanteilframe,elapagina
richiestavienecaricata.
2. Senoncisonoframeliberi,nevienesceltounoglobalmentetraquellinonbloccati,sulla
basedelleprecedenticonsiderazioni.Conseguenzae'cheilresidentsetdiunprocesso
sara'diminuito.Manonc'e'uncriterioperstabilirequaleprocessoperdera'unapagina.
Sipossonolimitareglisvantaggiintroducendounsistemadipagebuffering.
Allocazionevariabile,ambitolocale.
Sicomponedeiseguentipassi:
1. Quandosicaricainmemoriaunnuovoprocesso,glivengonoallocatialcuniframe,ilcui
numerodipendedavarifattori(tipodiprocesso,configurazionedellamacchina,richieste
delprogramma,caricocorrente...).
2. Quandoavvieneunpagefaultsiselezionalapaginadasostituiretraquelledelresidentset
delprocessochehacausatoilfault.
3. Periodicamentesirivalutal'allocazionefornitaalprocessoelasiaumentaodecrementa
permigliorareleprestazioniglobali.

Ilcriteriodirivalutazionedell'allocazioneperciascunprocessoelaperiodicita'dellarivalutazione
sonoipunticardinediquestatipologiadiallocazione.
Strategiadelworkingset
Tempovirtuale:siconsideriunasequenzadiriferimentiamemoriageneratidaunprocessoP.
Sianor(1),r(2),...taliaccessi.r(i)e'lapaginachecontienel'iesimoindirizzoreferenziatodaP.
t=1,2,3...e'chiamatotempovirtualeperilprocessoP.
Workingset:definitoperunprocessoauncertoistanteditempovirtualetconparametrofissato
comeinsiemedipaginediquelprocessoacuicisie'riferitinelleultime unita'ditempo
virtuale.
Maggioree'lafinestra ,maggioreougualee'ilworkingset.Inoltre,adogniistantet,la
cardinalita'delworkingsete'compresanell'intervallochiuso[1,min( ,N)],conNnumero
dellepaginechecomponel'immaginedelprocesso.
Alivelloideale,sarebbeconvienteporreilresidentsetparialworkingset.Quindiunastrategiadi
gestionedelresidentsetpuo'essereverosimilmentelaseguente:
1. Controllareilworkingsetdiogniprocesso
2. Rimuovereperiodicamentedalresidentsetdiunprocessoquellepaginechenonsononel
suoworkingset
3. Unprocessopuo'essereeseguitosoloseilsuoworkingsete'nellamemoriaprincipale
(cioe'seilsuoresidentsetcontieneilsuoworkingset)
Problemicorrelati:
Sialadimensionedelworkingsetsiaiframecheviappartengonocambianoneltempo.
None'praticostimareladimensionedelworkingsetperogniprocesso.Usoditimestamp.
Ilvaloreottimaledi e'sconosciutoede'soggettoavariazioni.

Unmodoperavereunastimaindirettadelworkingset(oalmeno,sullasuadimensione)e'quello
diconsiderarelafrequenzadifaultdipaginadiunprocesso.Infattiseilresidentsetdiun
processoe'maggioredelsuoworkingset,siavra'unabassapercentualedifaults,eviceversa.Si
puo'sfruttarequestaideatramitel'usodiunafrequenzadisogliaP:
SePFF(PageFaultsFrequency)e'maggiorediP,siaumentailresidentset.
Viceversa,sidiminuisceilresidentset.

IlPFFvienestimatonelmodoseguente:
1. Simantieneuncontatoretdeiriferimentiamemoria.
2. Adognipagefault,sistimailnuovoPFF:
1
PFFnow=
1PFFprev

t t1
3. Sidecidel'azionedaintraprendere.
Questastrategiamiglioraconl'adozionedelpagebuffering.D'altrocanto,essapeggioradurantei
periodiditransizionedilocalita'.Inquestafaseavvengononumerosipagefaultscheportanoil
processoadaumentareilproprioresidentsetascapitodialtriprocessi,chepossonoanchevenire

sospesiespostatisudisco.

Strategiadicleaning
Determinaquandounapaginamodificatadeveesserescrittainmemoriasecondaria.
Duealternative:
Cleaningarichiesta(demandcleaning),incuiunapaginavienescrittasudiscosolo
quandodeveesseresostituita.
Precleaning,incuilepaginesonoscritteagruppiprimadellaloroselezioneperla
sostituzione.

L'approcciomiglioreusailpagebuffering:lepaginevengonodiviseinduegruppi,modificatee
nonmodificate.Quellemodificatevengonoscritteinbatch,quellenonmodificatevengono
richiamateseriaccedute,persesesovrascritte.

Controllodelcarico
Determinailnumerodiprocessichesara'presenteinmemoriaprincipale,alivellodi
multiprogrammazione.Conpochiprocessi,aumentalaprobabilita'chesianoinblocco,esiperde
moltotempoatrasferirlisudisco.Inoltrel'usodelprocessorediventainefficiente.Sesonotroppi,
sirischiailtrashing.
Seillivellodimultiprogrammazionedeveessereridotto,unoopiu'processiresidentidebbono
esseretrasferitisudisco.Lepossibilita'sonoditrasferiresudisco:

Ilprocessoconlapriorita'piu'bassa.
Ilprocessocheprovocafault.
L'ultimoprocessoattivato.
Ilprocessoconilpiu'piccoloresidentset.
Ilprocessopiu'grande.
Ilprocessoconlapiu'grandefinestradiesecuzionerimanente.

Vous aimerez peut-être aussi