Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA...

78
Sistemi Operativi Lezione 8 La gestione della memoria

Transcript of Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA...

Page 1: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

Sistemi Operativi

Lezione 8

La gestione della memoria

Page 2: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

2

La memoria come risorsa

• La memoria centrale è una risorsafondamentale di un sistema di calcolo

• L’accesso a memoria centrale è unadelle operazioni più frequenti• Accesso ai dati e al codice

• La tecnica di gestione della memoria haun effetto determinante sulle prestazionidel sistema

Page 3: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

3

Requisiti della gestione dellamemoria

• Rilocazione

• Protezione

• Condivisione

• Organizzazione logica

• Organizzazione fisica

Page 4: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

4

Requisiti della gestione dellamemoria

• Rilocazione• Il programmatore non sa dove il programma verrà

caricato in memoria per essere eseguito

• Durante l’esecuzione, il programma può essserescaricato sul disco e ricaricato successivamente inmemoria ad un indirizzo diverso (rilocazione)

• Gli indirizzi di memoria nel codice devono esseretradotti in indirizzi fisici di memoria

Page 5: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

5

Requisiti della gestione dellamemoria

• Protezione• I processi non devono poter accedere ad aree di

memoria di altri processi senza permesso• Deve esere impossibile controllare indirizzi fisici

assoluti nei programmi dato che un programmapuò essere rilocato

• I riferimenti alla memoria devono essere verificatidurante l’esecuzione

• Il sistema operativo non può prevedere tutti i riferimentialla memoria che un programma farà

Page 6: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

6

Requisiti della gestione dellamemoria

• Condivisione• Permettere a vari processi l’accesso ad

aree di memoria condivise

• Permettere a ciascun processo l’accessoalla stessa copia di un programmapiuttosto che dare a ciascuno una copiaprivata

Page 7: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

7

Requisiti della gestione dellamemoria

• Organizzazione logica• I programmi sono scritti a moduli

• I moduli possono essere scritti e compilatiindipendentemente

• I moduili possono avere gradi diversi diprotezione (read-only, execute-only)

• Condivisione di moduli

Page 8: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

8

Requisiti della gestione dellamemoria

• Organizzazione fisica• La memoria allocata ad un programma e la

sua area dati possono essere insufficienti

• I programmatori non sanno quantamemoria sarà disponibile

Page 9: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

9

Schemi elementari di gestionedella memoria

• Partizione fissa unica• Un solo programma in esecuzione oltre al

sistema operativo• Sistemi monoprogrammati

• Partizioni fisse multiple• Fino a k programmi in esecuzione

simultaneamente• Se non c’e` una partizione disponibile il job

aspetta

Page 10: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

10

Partizione fissa unica

mainframeminicomputer

primi PC con MS-DOS

sistemi embedded,palmtop

Page 11: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

11

Partizioni multiple fisse

• Code separate per ogni partizione• possibile sottoutilizzo del sistema

• Singola coda di input

Page 12: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

12

Partizioni fisse

• Questo schema di gestione dellamemoria richiede alcuni accorgimentinella fase di preparazione deiprogrammi e generazione del codice• Compilatore• Linker• Loader

• statico• dinamico

Page 13: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

13

Traduzione• Compilatore

• Traduce un programma scritto in linguaggio adalto livello nel suo corrispettivo in linguaggioassembly

• Assemblatore• Traduce un programma scritto in linguaggio

assembly nel suo corrispettivo in linguaggiomacchina

• Prodotti aggiuntivi della traduzione• Symbol table• Informazioni sulle dimensioni del modulo oggetto• Informazioni per il debugging

Page 14: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

14

Linker• Collega i moduli oggetto compilati

indipendentemente• Statico

• Tutti i riferimenti sono risolti e tradotti in indirizzi logici dopo lacompilazione, prima del caricamento

• Dinamico• A tempo di caricamento

• Moduli esterni (target) sono aggiunti all’applicazione dopo averlaletta in memoria dal loader

• A tempo di esecuzione• I moduli target sono caricati e i riferimenti risolti solo durante

l’esecuzione al momento in cui vengono richiamati

• Con linking dinamico si facilita l’aggiornamento deimoduli target e la condivisione del codice

Page 15: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

15

Loader

• Carica un programma in memoria• Usa le informazioni nella symbol table

• Caricamento assoluto• Gli indirizzi usati dal programma sono fissati a tempo di

compilazione

• Caricamento rilocabile• Gli indirizzi generati dal compilatore sono tutti relativi ad

un punto di inzio (indirizzi logici) e vengono tradotti inindirizzi fisici prima del caricamento del programma

• Caricamento dinamico a tempo di esecuzione• I riferimenti alla memoria sono mantenuti in formato

relativo e tradotti in indirizzi assoluti solo nel momento incui vengono utilizzati

Page 16: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

16

Partizioni fisse

• Le partizioni fisse hanno avuto un certosuccesso in sistemi di tipo batch• Relativa staticità dei programmi

• Con l’avvento dei sistemi time sharing, si èposto il problema di dover gestire nelcomplesso processi la cui dimensione era digran lunga superiore di quella della memoriacentrale

• Servono schemi piu` sofisticati di gestionedella memoria delle partizioni fisse

Page 17: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

17

Schemi sofisticati di gestionedella memoria

• Le soluzioni possibili sono due• Swapping

• Un processo viene caricato interamente inmemoria centrale, esegue per un periodo ditempo e poi viene scaricato su disco,rimpiazzandolo con un altro

• Memoria virtuale• Un processo viene caricato parzialmente in

memoria ed eseguito come se fosseinteramente presente

Page 18: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

18

Swapping

• Numero, dimensione e posizione delle partizionicambiano col variare dei processi in memoria

• Lo stato della memoria si modifica continuamente• I processi accedono alla memoria centrale• Lasciano la memoria per poi rientrarvi, non necessariamente nello

stesso posto occupato in precedenza

Page 19: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

19

Swapping

• Le dimensioni di un processo cambianodurante l’esecuzione• Dati dinamici

• Prevedere spazio per l’espansione quandolo si alloca in memoria

Page 20: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

20

Swapping con partizioni multiplevariabili

• Problemi• Necessità di un meccanismo dinamico di

rilocazione e protezione delle zone dimemoria

• Gestione delle zone libere e occupate dellamemoria centrale

• Frammentazione esterna• Degli spazi liberi

Page 21: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

21

Rilocazione e Protezione

• Si usano dei registri hw che contengonol’indirizzo di base e quello limite delprocesso in esecuzione• Gli indirizzi logici vengono sommati al

valore contenuto nel registro base perottenere l’indirizzo fisico di una locazione

• Indirizzi logici il cui valore superi quellocontenuto nel registro limite generanoerrore

Page 22: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

22

Gestione Holes e Processi

• Le strutture dati usate in questi casi sono• Bit map

• Liste linkate

Page 23: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

23

Partizioni multiple variabili

• Un ulteriore problema• Quale area libera della memoria

scegliere quando si carica unprogramma

Page 24: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

24

Partizioni multiple variabili

• Strategie di scelta possibili• Ottimizzare il tempo di ricerca: First fit

• cerco il primo buco che può contenere ilprogramma

• Ottimizzare lo spazio usato: Best fit• cerco tra tutti i buchi che possono contenere il

programma quello di dimensione minima

• Ottimizzare lo spazio avanzato: Worst fit• cerco tra tutti i buchi che possono contenere il

programma quello di dimensione massima

Page 25: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

25

Partizioni multiple variabili

• La soluzione che fornisce le prestazionimigliori è First Fit

• Risultati sperimentali mostrano che trale tre strategie la peggiore è BF• Tende a riempire la memoria di troppi

buchi piccoli inutilizzabili

• Anche worst fit non ottiene buoneprestazioni

Page 26: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

26

Frammentazione esterna

• Frazionamento della memoria libera inpiccoli pezzi inutilizzabili

• Una possibile soluzione è l’adozione distrategie di compressione dellamemoria centrale• Operazione molto costosa in termini di

efficienza del sistema

• Non esistono strategie ottimali

Page 27: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

27

Memoria virtuale

• Abbiamo sinora assunto che durantel’esecuzione di un programma, lo stessodovesse risiedere completamente in MC

• Intorno alla metà degli anni ’70 vieneperò osservato che questo non è unrequisito fondamentale per consentirel’esecuzione di un programma

Page 28: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

28

Principio di Località

• Durante la loro esecuzione i programmi godono didue importanti proprietà• Località temporale: se un elemento x viene referenziato

all’istante t, la probabilità che x venga referenziato ancheall’istante t+t’ cresce al tendere di t’‡0

• Località spaziale: se un elemento x di posizione s vienereferenziato all’istante t, la probabilità che venga referenziatoun elemento x’ di posizione s’,

all’istante t+t’ cresce al tendere di t’ ‡0

D£- 'ss

Page 29: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

29

Località

• I principi di località suggeriscono unimportante accorgimento nella gestionedella memoria• non è necessario caricare un programma

interamente in memoria per poterloeseguire, è sufficiente caricarlo località perlocalità

Page 30: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

30

Località: i vantaggi

• Si svincolano le dimensioni di unprogramma dalla dimensione dellamemoria centrale

• Si può aumentare il livello dimultiprogrammazione, a parità dimemoria centrale disponibile

• Maggiore velocità nelle operazioni diswapping

Page 31: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

31

Memoria virtuale: implementazione

• Paginazione• Suddividere la memoria fisica e lo spazio di

indirizzi di un programma in blocchi didimensioni uguali

• I primi sono detti “frame”

• Gli altri “pagine”

• Un programma genera indirizzi virtuali cheformano il suo spazio virtuale

• Il sistema traduce l’indirizzo virtuale in unindirizzo fisico

Page 32: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

32

Paginazione

Schema di funzionamento

Page 33: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

33

Paginazione

La pagina con gli indirizzida 44K a 48K occupa ilframe 7 in memoria

Esempio di calcolo di ind.Ind. Logico 20500: si trovanella pagina 5 (20K-24K)La pagina 5 si trova nel frame 3 (12K-16K), quindi

20500 = 20480 + 20diventa12288 + 20 = 12308

Page 34: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

34

Paginazione

• Servono le seguenti strutture dati• Tabella dei frame (spazi di memoria fisica)

• Tabella delle pagine• definisce l’associazione pagina ‡ frame

• una per ogni processo in esecuzione o inattesa di esecuzione

• Tabella delle pagine del processo inesecuzione

• Caricata nella tabella delle pagine di sistema

Page 35: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

35

Tabella delle pagine

Page 36: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

36

Tabella delle pagine

Elemento di una tabella delle pagine

Page 37: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

37

Tabella delle pagine di sistema• Tre alternative per implementarla

• Registri specializzati• Molto efficiente in esecuzione ma molto costosa per

tabelle di grosse dimensioni, soprattutto in context switch

• La tabella sta in memoria e un registro indirizza latabella delle pagine del processo in esecuzione,tra quelle di tutti i processi del sistema

• Lenta richiede due accessi a memoria centrale perrecuperare le informazioni

• Registri associativi• Implementano un Translation Lookaside Buffer di 8-64

elementi

Page 38: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

38

TLBs – Translation Lookaside Buffers

Page 39: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

39

TLB

Page 40: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

40

Calcolo degli indirizzi

• Con pagine di dimensione 2k, per il calcolodegli indirizzi fisici si sfrutta l’indirizzo logico• I k bit bassi dell’indirizzo individuano lo

spiazzamento all’interno della pagina• I restanti bit alti individuano il numero di pagina• Il numero di pagina si usa come indice nella

tabella delle pagine• Il valore trovato in corrispondenza è il numero di

page frame associato alla pagina• Se la pagina è presente in memoria, il numero di

page frame è copiato nei bit alti del registro dioutput e concatenato ai k bit bassi dell’offset

Page 41: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

41

Demand Paging• Sistema completamente automatico per

realizzare memoria virtuale• Il programmatore non è coinvolto

• Uno schema elementare può essere ilseguente (lazy swapper)• Si carica la prima pagina del programma

da eseguire

• Quando una nuova pagina vienereferenziata, la si carica in memoria

Page 42: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

42

Demand paging

• Deve essere possibile stabilire a priorila presenza o meno di una pagina inmemoria• Bit di validita` per la pagina nella tabella

delle pagine

• L’evento “pagina non trovata” inmemoria è denominato page fault

• Gestire il page fault significapreoccuparsi di recuperare la pagina dadisco e portarla in memoria

Page 43: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

43

Demand Paging

• In un sistema con memoria virtuale iltempo di page fault e la frequenza concui i page fault si verificano sonoparametri critici

• Se p è la probabilità che si verifichi unpage fault,

( ) fault page di tempop - 1 accesso di medio tempo ⋅+⋅= pma

Page 44: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

44

Gestione del Page Fault

• Page fault quando il bit di validita` dellapagina riferita e` a 0

Page 45: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

45

Gestione del Page Fault (1)

1. Viene generato un trap di page fault

2. Salvataggio dei registri

3. Il SO individua il numero di pagina dacaricare

4. Il SO verifica la validità di questo dato ecerca un frame libero

5. Se il frame selezionato è dirty, lo si riscrivesu disco prima di copiarvi la nuova pagina

Page 46: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

46

Gestione del Page Fault (2)

6. Il SO trasferisce la nuova pagina inmemoria

7. La tabella delle pagine viene aggiornata

8. I registri vengono ripristinati, tenendoconto che l’istruzione che ha generato ilfault deve essere “ripristinata”

9. Il processo che ha generato il fault vienerimesso in esecuzione

Page 47: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

47

Problemi da affrontare

• La precedente procedura presuppone lasoluzione dei seguenti problemi• Come fare il backup di un’istruzione

• Come e dove recuperare l’indirizzo dellepagine che risiedono su disco

• Quali frame scegliere di rimpiazzare

Page 48: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

48

Backup dell’istruzione

• Valore del PC al momento del page fault• Inizio dell’istruzione• Instruzioni con autoincremento/autodecremento

Page 49: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

49

Lock delle pagine in memoria

• La memoria virtuale può anche interagire con leoperazioni di I/O

• Un processo A esegue una read per acquisire deidati in un buffer• Mentre A è in attesa di I/O, un nuovo processo B viene

avviato• B genera un page fault• Il frame con il buffer di A può essere scelto per essere

scaricato• È necessario prevedere un meccanismo che consenta di

bloccare (lock) temporaneamente alcune pagine

Page 50: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

50

Indirizzo delle pagine

(a) Area di swap statica(b) Back up di pagine dinamico

Page 51: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

51

Aspetti implementativiCoinvolgimento del S.O. nella paginazione

• Fasi in cui il SO è coinvolto in attività legate allamemoria virtuale

1. Creazione dei processi- Determinare la dimensione del programma- Predisporre la tabella delle pagine

2. Esecuzione dei processi- Reset della MMU per nuovi processi- Gestione TLB

3. Page fault- Determinare l’indirizzo logico che ha causato il PF- Gestione page fault

4. Terminazione del processo- Rilascio della page table e dei frame

Page 52: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

52

Algoritmi di rimpiazzamento dellepagine

• Durante la gestione di un page fault puòessere necessario• Individuare le pagine da scaricare su disco

• Salvare le pagine modificate durantel’esecuzione, quelle non modificatepossono essere sovrascritte

Page 53: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

53

Algoritmo ottimo per il rimpiazzamentodelle pagine

• Sostituire, tra quelle presenti in memoria, la pagina chesarà referenziata il più tardi possibile• Ottimale ma non realizzabile

• Possibili stime• Tenere traccia dell’uso passato delle pagine e inferire il futuro

dal passato

• Anche quest’euristica è molto difficile da realizzarepraticamente

Page 54: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

54

Algortitmo per il rimpiazzamento delle pagine“Not Recently Used”

• Ogni pagina ha un Reference bit e un Modified bit• I bit vengono asseriti (via hw) quando la pagina è acceduta

o modificata, rispettivamente

• Quattro stati possibili delle pagine1. not referenced, not modified2. not referenced, modified3. referenced, not modified4. referenced, modified

• NRU rimuove la pagina casualmente a partire dallaclasse non vuota con l’indice più basso

Page 55: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

55

Algoritmo di rimpiazzamento delle pagineFIFO

• Mantiene una lista delle pagine cherispetta l’ordine con cui le stesse sonostate caricate in memoria• Le pagine più “anziane” sono all’inizio della

lista

• Le pagine più anziane sono le prime adessere sostituite

• Svantaggio• Sostituire una pagine che è referenziata

spesso

Page 56: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

56

Algoritmo di rimpiazzamento delle pagine“Second Chance”

A) Le pagine sono ordinate FIFO con un bit d’uso R

B) La lista delle pagine quando si verifica un page fault all’istante 20, eA ha il bit R a 1

Page 57: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

57

Algoritmo di rimpiazzamento delle pagine“the clock”

• Come “2nd chance” ma usa una lista circolare perevitare gli spostamenti di 2nd chance

• La lancetta punta alla pagina più vecchia

Page 58: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

58

Least Recently Used (LRU)• Ipotesi: le pagine usate recentemene saranno usate anche

in un futuro prossimo• Elimina le pagine che non sono usate da più tempo

• Realizzazione mediante una lista linkata di pagine• Quelle usate più recentemente sono all’inizio• La lista deve essere aggiornata ad ogni riferimento

• Realizzazione mediante un contatore incrementatoautomaticamente dopo ogni istruzione• Si copia il contatore nella entry della tabella delle pagine della

pagina appena referenziata dopo ogni accesso• La pagina vittima è quella con il contatore più basso• Il contatore viene azzerato periodicamente

Page 59: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

59

Simulazione di LRU in hardware• N page frame• Tabella NxN inizializzata a 0• Quando si fa riferimento al frame k, i bit della

riga k-esima vengono posti tutti a 1, quellidella colonna k tutti a 0

• In ciascun istante la riga con il minimo valorebinario è quella utilizzata meno di recente

Page 60: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

60

Simulazione di LRU in hardware

LRU per 4 page frame; la sequenza dei riferimenti a pagineè 0,1,2,3,2,1,0,3,2,3

Page 61: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

61

Simulazione di LRU via software• Non tutti i processori hanno l’hw necessario• Not Frequently Used

• Ogni pagina ha un contatore nel quale si somma ilvalore del bit R ad ogni clock tick

• Si elimina la pagina col contatore minimo• Mantiene troppa memoria

• Aging• Come NFU ma prima di sommare i bit R, si fa uno

shift a dx di 1 del contatore e R è sommato al bitpiù a sinistra

• Si elimina la pagina col contatore minimo• Memoria grossolana con un solo bit per tick

Page 62: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

62

Simulazione di LRU in software

• L’algoritmo di aging simula LRU via software

Page 63: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

63

Algoritmo di rimpiazzamento delle pagine“working set”

• Working set: insieme delle pagine usate dai kriferimenti alla memoria più recenti

• w(k,t): dimensione del working set al tempo t

Page 64: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

64

Confronto di algoritmidi rimpiazzamento delle pagine

Page 65: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

Problemi implementativi

Page 66: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

66

Anomalia di Belady

• FIFO con 3 page frame• FIFO con 4 page frame• Le P indicano quali riferimenti danno origine a page fault

Page 67: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

67

Politiche di allocazione globali vs locali

a) Configurazione originaleb) Rimpiazzamento delle pagine localec) Rimpiazzamento delle pagine globale

Page 68: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

68

Politiche di allocazione globali vs locali

Frequenza dei page fault in funzione del numero dipage frame allocati

Page 69: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

69

Thrashing

• I sistemi possono andare in thrash nonostante sianoprogettati bene

• Quando l’algortimo PFF (page fault frequency) indica che• Alcuni processsi hanno bisogno di più memoria• Nessuno processo può operare con meno memoria

• Soluzione:Ridurre il numero di processi che competono per lamemoria• Scaricare su disco uno o più processsi e dividere le pagine che

erano loro assegnate• Rivalutare il livello di multiprogrammazione

Page 70: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

70

Dimensionamento delle pagine -pagine piccole

• Vantaggi• Minore frammentazione interna

• Migliore adattamento a varie strutture dati esezioni di codice

• Meno parti di programma inutilizzate inmemoria

• Svantaggi• Maggior numero di pagine per programma

• Tabelle delle pagine più grandi

Page 71: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

71

Dimensione delle pagine

Page 72: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

72

Comportamento di un processo

Page 73: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

La segmentazione

Page 74: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

74

Segmentazione

• La memoria virtuale vista finora èmonodimensionale

• Avere più spazi di indirizzi separati puòessere vantaggioso in presenza di aree datidistinte che crescono durante l’esecuzione• Es. Compilatore che usa aree per

• Testo sorgente• Symbol table• Tabella delle costanti intere e floating point• Albero di parsing• Stack per le chiamate di procedura del compilatore

stesso

Page 75: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

75

Segmentazione

• Si fornisce alla macchina un insieme di spazi diindirizzi logici indipendenti detti segmenti

• I segmenti hanno dimensioni diverse epossono cambiare senza interferire gli uni congli altri

• L’utente definisce i segmenti ma non li gestisce• Semplifica le operazioni di linking

• Segmento, offset per indiciare i moduli• I segmenti sono indipendenti

• Facilita la condivisione di librerie

Page 76: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

76

Segmentazione

Ogni tabella delle pagine cresce o decresceautonomamente

Page 77: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

77

Segmentazione

Page 78: Sistemi Operativi - Home di homes.di.unimi.ithomes.di.unimi.it/sisop/lucidi/Solez8-0203.pdfAA 2002/03 ©Bruschi, Rosti Sistemi Operativi Corso di laurea in Informatica 2 La memoria

AA 2002/03©Bruschi, Rosti

Sistemi OperativiCorso di laurea in Informatica

78

Segmentazione con Paginazione: MULTICS

• Sistema con indirizzo fisico di 24 bit• Il descrittore del segmento punta alla tabella delle pagine• Esempio di descrittore di segmento