la memoria virtuale · 2017. 11. 2. · ˃ caricare in memoria solo una parte del programma ˃...

31
LA MEMORIA VIRTUALE SISTEMI OPERATIVI Motivazioni » Spesso non tutte le funzioni di un programma sono utilizzate durante lesecuzione ˃ Procedure per la gestione di errori poco frequenti ˃ Spazio riservato per array, liste e tabelle ˃ Funzionalità accessorie usate di rado » Proposta ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la capacità della memoria fisica Giorgio Giacinto 2017 2 Sistemi Operativi

Upload: others

Post on 05-Sep-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

LAMEMORIAVIRTUALE

SISTEMIOPERATIVI

Motivazioni» Spessonontuttelefunzionidiunprogrammasonoutilizzatedurantel’esecuzione˃ Procedureperlagestionedierroripocofrequenti˃ Spazioriservatoperarray,listeetabelle˃ Funzionalitàaccessorieusatedirado

» Proposta˃ Caricareinmemoriasolounapartedelprogramma˃ Altrimodulicaricatisurichiesta

˃ L’immaginedelprocessosiestendeoltrelacapacitàdellamemoriafisica

GiorgioGiacinto201

7

2

SistemiOperativi

Page 2: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

VantaggidellaMemoriaVirtuale» Separazionedellamemorialogicavistadall’utentedaquellafisica˃ Spaziodiindirizzilogico>=spaziodiindirizzifisici

» Aumentodelgradodimultiprogrammazioneodiutentiinterattivi

» Caricare/scaricareiprogrammiin/dallamemoriarichiedeunnumeroinferioredioperazioniI/O

GiorgioGiacinto201

7

3

SistemiOperativi

Memoriavirtualepiùgrandedellamemoriafisica

GiorgioGiacinto201

7

4

SistemiOperativi

Þ

Page 3: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

SpaziodegliindirizzivirtualiGiorgioGiacinto201

7

5

SistemiOperativi

Memoriavirtualeelibreriecondivise

GiorgioGiacinto201

7

6

SistemiOperativi

Page 4: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

GiorgioGiacinto201

7

SistemiOperativi

7

Definizione» Sonocaricateinmemoriasololepagineeffettivamente utilizzateperl’esecuzione˃ lazy swapper

» Richiestadiunapagina=>riferimentoallapagina˃ Riferimentononvalido=>abort˃ not-in-memory =>trasferireinmemoria

» Pager˃ Modulodelsistemaoperativochegestiscelapaginazione

GiorgioGiacinto201

7

8

SistemiOperativi

Page 5: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Paginazionesurichiestaeswapping diprocessipaginati

GiorgioGiacinto201

7

9

SistemiOperativi

TabelladellepagineSoloalcunepaginesonoinmemoria

GiorgioGiacinto201

7

10

SistemiOperativi

Page 6: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Paginazioneespaziodiswapsudisco» Lapaginazionesurichiestapuòfarusodellospaziodiswapsudisco˃ Disolitoaccessopiùvelocerispettoafilesystem

» Ingenere,lepagineasolalettura,comequellechecontengonocodice,sonosovrascritte˃ lepaginesonocaricatedirettamentedalfilesystem

» Lepagineanonime (heap,stack,ecc.)vengonoinvecescrittesullospaziodiswap˃ Isistemioperativimobilenonsovrascrivonomailepagineanonime

GiorgioGiacinto201

7

11

SistemiOperativi

Copy-on-Write» Creazionediunprocessomediantefork()

˃ Copiadell’immaginedelgenitore˃ Lacopiaèinutilesefork() èseguitadaexec()

» LatecnicaCopy-on-Write(COW)consistenellacondivisionedellestessepaginefisichedapartedigenitoreefiglio

» Unapaginaècopiatasoloseunodeidueprocessilamodifica

» Lacopiaavvieneindividuandounframeliberodallalistadiframedisponibili

GiorgioGiacinto201

7

12

SistemiOperativi

Page 7: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Copy-on-WriteGiorgioGiacinto201

7

13

SistemiOperativi

PageFault» Quandosideveaccedereaunindirizzovirtualediunapaginachenonècaricatainmemoria˃ Indicatodalbitdivalidità

» Sigeneraunaeccezionegestitadalsistemaoperativo˃ Sel’indirizzoènonvalido=>abort˃ Seinvecesitrattadiunapaginamancante,occorrecaricarlanelsistema

GiorgioGiacinto201

7

14

SistemiOperativi

Page 8: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

GestionediunpagefaultGiorgioGiacinto201

7

15

SistemiOperativi

Considerazioni» Paginazionepura

˃ Sicaricanoinmemorialepaginesolo quandorichiesto+ All’avviodelprocessosiavrannonumerosipagefault

» Localitàdeiriferimenti˃ Èimprobabilecheistruzionilogicamenteconsecutivesi

trovinoinpaginediverse» Memoriasecondaria

˃ Deveriservareunaareadiscambio (swapspace)» Esecuzionidiistruzionicomplesse

˃ Pagefaultcausatedall’accessoaglioperandi

GiorgioGiacinto201

7

16

SistemiOperativi

Page 9: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Prestazionidellapaginazionesurichiesta» Iltempoeffettivod’accessoallamemoria(Effective AccessTime- EAT)sicalcolaEAT=(1– p)×ma +p × (tempogestionepagefault)

» Esempioma=200nstempomediogestionepagefault=8msSep =0,1%=>EAT=8,2μs =41×ma!!

SesivuoleEAT<=1,1maallorap >=0,25×10-6%

GiorgioGiacinto201

7

17

SistemiOperativi

Cosasuccedesenoncisonopiùframeliberi?» Over-allocation

˃ Lamemoriacomplessivachepuòessererichiestadaiprocessièmaggiorediquelladisponibile

˃ Lalistadeiframeliberipuòesserevuota

˃ Algoritmoperindividuarepaginechenonsonopiùutilizzate

˃ L’algoritmodevegarantirelagenerazionediunnumeroridottodipagefault

» Effettocollaterale˃ Alcunepaginepotrebberoesserecaricateinmemoria

diversevoltedurantel’esecuzione

GiorgioGiacinto201

7

18

SistemiOperativi

Page 10: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Over-allocationesostituzionedellepagine

GiorgioGiacinto201

7

19

SistemiOperativi

Sostituzionedellepagineetempomediodiaccesso» Lasostituzionediunapaginapuòaumentareiltempo

mediodiaccesso˃ sidevescriveresudiscolapaginacheverràsostituitada

quellachehageneratoilfault˃ Servonodue accessiallamemoriasecondaria

» Perridurreilsovraccaricodovutoallascritturasudiscodellapaginadasostituire˃ modify (dirty)bit indicaqualipaginesonostate

modificatesololepaginemodificatedevonoessereriscritte

GiorgioGiacinto201

7

20

SistemiOperativi

Page 11: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Sostituzionedellepagine1. Ricercadellaposizionesuldiscodellapagina

dacaricareinmemoria2. Ricercadiunframelibero

˃ sepresente,caricalapagina˃ senoncisonoframeliberi,eseguiunalgoritmodi

sostituzionedellepaginepertrovareunframevittima

3. Memorizzalapaginanelframeliberoaggiornaletabelledeiframeedellepagine

4. Riavviailprocesso

GiorgioGiacinto201

7

21

SistemiOperativi

Sostituzionedellepagine

GiorgioGiacinto201

7

22

SistemiOperativi

Page 12: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Andamentodeipagefaultall’aumentaredeln.ro diframe

GiorgioGiacinto201

7

23

SistemiOperativi

Algoritmidisostituzionedellepagine» Obiettivo

Minimizzareilnumerodipagefault» Leprestazionideglialgoritmisivalutanousandouna

particolaresequenzadirichiestedipagine˃ Generatacasualmente˃ Registratadurantel’esecuzionediunprogrammaecalcolandoilnumerodipagefaultgenerati

Negliesempicheseguonouseremolasequenza7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1eunamemoriasuddivisain3frame

GiorgioGiacinto201

7

24

SistemiOperativi

Page 13: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

AlgoritmoFIFO“inordinediarrivo”» Èilpiùsemplicedaimplementare» Puògeneraremoltipagefault

˃ Quandosisostituisceunapaginainmemoriadamoltotempomaancoramoltoutilizzata

» AnomaliadiBelady˃ All’aumentaredeln.ro diframe,ipagefaultpossono

aumentare

GiorgioGiacinto201

7

25

SistemiOperativi

15pagefault

AnomaliadiBelady

GiorgioGiacinto201

7

26

SistemiOperativi

Ottenutaconlasequenza1,2,3,4,1,2,5,1,2,3,4,5

Page 14: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

AlgoritmoOPTSostituzioneottimale» Sisostituisconolepaginechenonsarannousateperil

periododitempopiùlungo˃ Informazionedisponibile?

» Utilizzatopercalcolareilminimonumerodipagefaultchesipossonogenerare

GiorgioGiacinto201

7

27

SistemiOperativi

9pagefault

AlgoritmoLRULeastRecentlyUsed» Sisostituiscelapaginanonusata perilperiodopiùlungo

˃ Adogniriferimentoaunapaginasicopiailvaloredelclock disistemainuncampodellatabella

˃ Sisostituiscelapaginaconilvalorepiùpiccolo» Svantaggi

˃ Spazioinmemoriapermemorizzareilcontatore˃ Ricercadellapaginaconilvalorepiùpiccolodelcontatore

GiorgioGiacinto201

7

28

SistemiOperativi

12pagefault

Page 15: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

AlgoritmoLRUImplementazioneconstack

» Unapaginasispostaincimaallapilaquandovienereferenziata

» Nelcasopeggioresidevonomodificare6puntatori

» Nonserveeffettuarelaricercadelframevittima

GiorgioGiacinto201

7

29

SistemiOperativi

Siusaunapiladoppiamenteconcatenataconpuntatoriall’elementoinizialeefinale.

AlgoritmoLRUConsiderazioni» L’algoritmoLRUrichiedeilsupportohardwareper

l’aggiornamentodeicontatoriodellapila˃ ItempirichiestidaunaesecuzioneviasoftwaredelSO

vanificherebberoivantaggidellamemoriavirtuale

» IlsupportohardwarerichiestoèpiuttostoonerosoSonostatesviluppateapprossimazioni LRU˃ CompromessofraprestazioniecomplessitàHWeSW

GiorgioGiacinto201

7

30

SistemiOperativi

Page 16: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

ApprossimazioneLRUAlgoritmosecondachance» Siusaunreference bit associatoaciascunapagina

˃ Inizializzatoa0˃ Adogniriferimentoallapaginailbitèimpostatoa1˃ Sisostituisceunapaginaconbit=0(seesiste)

+ Sepiùpaginehannobit=0,comesisceglie?» Algoritmo

˃ Siesaminanolepagine insensoorario (clock)˃ Selapaginacandidataperlasostituzionehailreference

bit=1+ Siimpostailreference bit=0+ Silascialapaginainmemoria+ Sicandidaperlasostituzionelapaginasuccessiva(insensoorario)seguendolestesseregole

GiorgioGiacinto201

7

31

SistemiOperativi

Algoritmodisostituzionesecondachance(clock)

GiorgioGiacinto201

7

32

SistemiOperativi

Varianti- Uso di più bit di

riferimento- Uso del bit di

riferimento e del bit di modifica

Page 17: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

AlgoritmibasatisulconteggiodeiriferimentiSi utilizza un contatore dei riferimenti fatti a ciascuna pagina

» LFU (LeastFrequentlyUsed)sostituiscelapaginaconilconteggiominore

» MFU (MostFrequentlyUsed)sostituiscelapaginaconilconteggiomaggiore

» Questetecnichesonopocodiffuseperché˃ Implementazioneonerosa˃ NonapprossimanoOPT

GiorgioGiacinto201

7

33

SistemiOperativi

Altreconsiderazioni» PagebufferingAlcunisistemimantengonounalistadiframeliberichecontengonopotenzialivittime˃ Sievitadidoverscriveresudiscoillorocontenuto˃ Nelcasoquellepaginesianoreferenziate,sievitadicaricarledadisco

» Perragionidiefficienza,alcunecategoriediapplicazioninonusanoiserviziSOperlasostituzionedellepagine˃ Ades.,DBMS,DataWarehouse,ecc.

GiorgioGiacinto201

7

34

SistemiOperativi

Page 18: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

GiorgioGiacinto201

7

SistemiOperativi

35

Allocazionedeiframe» Occorreassicurareaogniprocessounnumerominimo diframeperevitaretroppipagefault

» AllocazioneuniformeSidistribuisconoiframeinmodouniformefraidiversiprocessi

» AllocazioneproporzionaleSidistribuisconoiframeinmodoproporzionalealledimensionidiciascunprocesso

» AllocazioneperprioritàSitienecontoanchedellapriorità

GiorgioGiacinto201

7

36

SistemiOperativi

Page 19: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Allocazioneglobaleeallocazionelocale

Perlasostituzionedellepaginelavittimapuòessere lapaginadiunprocessodiversodaquellochehageneratoilfault˃ Variazionedinamicadelnumerodiframeassegnatiaun

processo

Puòesseresostituitasolounapaginainunodeiframeallocatialprocessochehageneratoilfault

» IncasodiarchitettureNUMA occorretenercontodeidiversitempid’accessoallememoriedelsistema

GiorgioGiacinto201

7

37

SistemiOperativi

GiorgioGiacinto201

7

SistemiOperativi

38

Page 20: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Thrashing» Lafrequenzadeipage-faultcresceinmodoabnormese

ilprocessohapoche pagineadisposizioneConseguenze˃ scarsousodellaCPU˃ Ilsistemaoperativopuòaumentareilgradodi

multiprogrammazioneperaumentarel’usodellaCPU˃ Unaltroprocessosiaggiungealsistema,incrementando

ulteriormenteipagefaulteriducendol’usodellaCPU

: lamaggiorpartedeltempodiesecuzionediunprocessoèimpiegataperlapaginazione!

GiorgioGiacinto201

7

39

SistemiOperativi

Thrashing

GiorgioGiacinto201

7

40

SistemiOperativi

Page 21: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

PaginazionesurichiestaeThrashing» Perchélapaginazionesurichiestaaumental’efficienzadelsistema?

˃ Durantel’esecuzioneunprocessomigradaunalocalitàaun’altra

˃ Lelocalitàpossonosovrapporsi

» Perchépuòverificarsiilthrashing?Σ dimensionilocalità>dimensionememoria

GiorgioGiacinto201

7

41

SistemiOperativi

GiorgioGiacinto201

7

SistemiOperativi

42

Principiodilocalità

Page 22: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

PrincipiodilocalitàMappadellamemoriarelativaall’esecuzionediFirefox inLinux

GiorgioGiacinto201

7

SistemiOperativi

43

ModellodeiWorking-Set» SiaΔ unafinestratemporaledelworking set» WSSi (working setdelProcessoPi)=

numerototaledipagineusatenegliultimiΔ riferimenti˃ seΔ ètroppopiccolo,potrebbenoncomprenderetuttala

località˃ seΔ ètroppogrande,potrebbecomprenderepiùlocalità˃ seΔ =∞comprendetuttelepaginedelprogramma

» D =ΣWSSi =>numerototalediframerichiestiinΔ» SeD >dim_mem =>Thrashing

˃ Perevitarethrashing sipuòsospendereunprocesso

GiorgioGiacinto201

7

44

SistemiOperativi

Page 23: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Modellodelworking-setGiorgioGiacinto201

7

45

SistemiOperativi

Modellobasatosullafrequenzadeipage-fault» Hal’obiettivodistabilireunafrequenza“accettabile” dipage-fault

˃ selafrequenzaattualeètroppobassa,sipossonosottrarreframealprocesso

˃ selafrequenzaattualeètroppoalta,ilprocessopuòguadagnaredeiframe

GiorgioGiacinto201

7

46

SistemiOperativi

Page 24: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

WorkingSeteFrequenzadeiPageFault

GiorgioGiacinto201

7

47

SistemiOperativi

GiorgioGiacinto201

7

SistemiOperativi

48

Page 25: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Esigenzedelkernel» IlKernel hanecessitàdimemoriaperlesuestrutturedatichehannodimensionivariabili

» Partedellamemoriadelkernel deveesserecontigua˃ Ades.,alcunidispositiviaccedonoallamemoriasenzausarelamemoriavirtuale

» Diconseguenza,lamemoriadelkernel disolitononèpaginata˃ Ilkernel haadisposizioneuninsiemediareeliberedimemoria

GiorgioGiacinto201

7

49

SistemiOperativi

BuddySystem» Usasegmentidimemoriadidimensionefissata,formatidaunoopiùframecontigui

» Lamemoriaèallocatainporzionididimensionipotenza-di-2˃ Lerichiestesonoarrotondatepereccessoallapiùvicinapotenzadidue

˃ Selaporzionedisponibileèpiùgrandediquellarichiesta,laporzionesidivideindue( )+ Ladivisionecontinuafinchénonsigiungealladimensionerichiesta

˃ Duebuddy nonusatipossonoesserefusi

GiorgioGiacinto201

7

50

SistemiOperativi

Page 26: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

GestoreBuddySystemGiorgioGiacinto201

7

51

SistemiOperativi

Allocazionealastre(slab)» Unalastra ( ) èformatadaunaopiùframecontigui» Lacache èformatadaunaopiùlastre» Ciascunacacheèrelativaaunastrutturadatidelkernel

˃ Ciascunacachecontieneoggetti – istanzedellastrutturadati

» Lacacheècreataconoggettisegnaticomeliberi» Quandosimemorizzanolestrutture,glioggettisono

segnaticomeusati» Seunalastraèpienasiusaunalastravuota

˃ Senonesistonolastrevuote,siallocaunanuovalastra» Nonc’è frammentazioneel’allocazioneèveloce

GiorgioGiacinto201

7

52

SistemiOperativi

Page 27: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

AllocazionealastreGiorgioGiacinto201

7

53

SistemiOperativi

GiorgioGiacinto201

7

SistemiOperativi

54

Page 28: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Prepaginazione» Riduceilnumerodipagefaultall’avviodelprocesso» Trasferisceinmemoriaalcuneotuttelepagine

necessarieprima chesifacciaunriferimento˃ Masequestepaginenonverrannousate,abbiamo

“sprecato” operazionidiI/O» Difficoltà

Stabilirequantepagineportareinmemoria

LinguaggicomeC/C++eorientatiaglioggettinonsoddisfanoapienolocalitàepossonorendereinefficientelaprepaginazione

GiorgioGiacinto201

7

55

SistemiOperativi

Dimensionedellepagine» Influenza

˃ Ilgradodiframmentazione˃ Ladimensionedellatabelladellepagine˃ IlsovraccaricoperoperazioniI/O

» Dipendedallalocalità

GiorgioGiacinto201

7

56

SistemiOperativi

Page 29: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

PortatadellaTLB» Èlaquantitàdimemoriachepuòessereindirizzata

dallaTLB» TLBReach=(TLBSize)× (PageSize)» IdealmentelaTLBdovrebbeindirizzareilworking set di

ciascunprocesso» PeraumentareTLBReachsipotrebbeaumentarela

dimensionedellepagine˃ Puòcausareframmentazione

» Usodipaginedidimensionediversa˃ Ciascunaapplicazioneusaladimensionedipaginache

creamenoframmentazione

GiorgioGiacinto201

7

57

SistemiOperativi

Strutturadeiprogrammiint[128,128] data;Ipotizziamo che ciascuna riga sia memorizzata inuna paginaProgram1

for (j = 0; j <128; j++)for (i = 0; i < 128; i++)

data[i,j] = 0;128x128=16,384pagefaults

Program2for (i = 0; i < 128; i++)

for (j = 0; j < 128; j++)data[i,j] = 0;

128pagefaults

GiorgioGiacinto201

7

58

SistemiOperativi

Page 30: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

I/Ointerlock» Alcunepaginedevonoesserevincolate inmemoria˃ Nondevonoesseresostituiteincasodipagefault

» CasotipicoinoperazioniI/OLepagineinusoperlacopiadidatidaunaperifericanondevonoessererimosse

GiorgioGiacinto201

7

59

SistemiOperativi

GiorgioGiacinto201

7

SistemiOperativi

60

Page 31: LA MEMORIA VIRTUALE · 2017. 11. 2. · ˃ Caricare in memoria solo una parte del programma ˃ Altri moduli caricati su richiesta ˃ L’immagine del processo si estende oltre la

Windows» Paginazionesurichiestaconclustering

˃ Sicaricalapaginamancanteequellevicine» Aciascunprocessosiassegnaunvaloreminimo eun

valoremassimo diworking set˃ Minimogarantitodipagineinmemoria˃ Massimonumeropossibiledipagineinmemoria

» Selaquantitàdimemoriadisponibilescendesottounacertasoglia,ilsistemaesegueunariduzioneautomaticadelworking set(automatic working settrimming)˃ Mantenendoilvincolodelminimo working set

GiorgioGiacinto201

7

61

SistemiOperativi

Solaris» Mantieneunalistadipaginedisponibilidaassegnareai

processichecausanopagefault˃ Lotsfree

sogliaperavviarelapaginazionesurichiesta˃ Desfree

sogliaperaumentarelapaginazione˃ Minfree

sogliaperavviareswapping» Lapaginazionevieneeseguitadalprocessopageout

usandounalgoritmoclockaduelancette˃ Scanrate

frequenzadiscansionedellepaginevariafraslowscan efastscan

GiorgioGiacinto201

7

62

SistemiOperativi