Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi...

76
INFORMATICA – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione a singola partizione. Allocazione a partizioni. Allocazione a partizioni rilocabili. La paginazione. La paginazione dinamica. La segmentazione. La segmentazione paginata.

Transcript of Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi...

Page 1: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La struttura del gestore della memoria.

Allocazione a singola partizione.

Allocazione a partizioni.

Allocazione a partizioni rilocabili.

La paginazione.

La paginazione dinamica.

La segmentazione.

La segmentazione paginata.

Page 2: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

La struttura del gestore della memoria

Caratteristiche fondamentali delle politiche di gestione

Garantire la protezione.– Poichè in memoria possono risiedere contemporaneamente processi

utente e moduli di sistema, è necessario evitare che, per qualsiasimal funzionamento, dati o istruzioni di un processo possanosovrapporsi a quelle del supervisore o di un altro processo utente,creando situazioni anomale e spesso disastrose.

Garantire la trasparenza.– L’operazione di allocazione deve essere invisibile al processo, il cui

avanzamento deve essere indipendente dalla posizione dello spaziodegli indirizzi assegnatogli dalla memoria. Ciò consente di rimandarein stato di disponibilità un processo e successivamente ricaricarlo inmemoria in un’altra area, senza che il fatto sia di alcun impedimentoal suo avanzamento.

Il S.O. come gestore della memoria

Page 3: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La struttura del gestore della memoria

Caratteristiche fondamentali delle politiche di gestioneConsentire l’allocazione logica.

– In generale l’immagine di un processo è logicamentecomposta da sezioni (codice e dati) che, anche se fisicamenteposte in aree disgiunte di memoria, devono essere viste dalprocesso come contigue.

Consentire la condivisione del codice.– In un sistema multiprogrammato capita abbastanza spesso

che, in un certo momento, più utenti chiedano di eseguire lostesso programma (es. chiamate allo stesso compilatore). Inquesto caso può essere conveniente avere in memoria unasola immagine fisica del programma richiamato, anche seutilizzata da più lavori. L’unico vincolo da porre è che ilprogramma non possa modificare da solo il proprio codice(programma rientrante o a codice puro), il che implica che learee destinate al codice e ai dati si trovino in due zone dimemoria distinte e tra loro indipendenti.

Page 4: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La struttura del gestore della memoria

Le funzioni del gestore della memoria:Tenere aggiornato lo stato di ogni locazione dellamemoria centrale (ad es. per sapere se è libera ooccupata).Decidere, in base alla politica di allocazione, a qualeprocesso debba essere assegnata la memoria, con chepriorità e per quanto tempo.Selezionare le specifiche locazioni (spazio degli indirizzi)da assegnare ad un processo e provvedere allamemorizzazione reale delle informazioni associate.Gestire la politica del recupero, decidendo a qualeprocesso togliere la risorsa memoria per rispondere alleesigenze di un altro processo con maggiore priorità.

Page 5: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Allocazione a singola partizionePuò essere considerata la tecnica più semplice per lagestione della memoria e viene normalmenteutilizzata in ambienti privi di multiprogrammazione,quali quelli dei micro e personal computer, in cui c’èun solo processore e un solo processo utenteresidente in memoria utente.Ciò non significa però che il processo possa disporredi tutta la memoria centrale del computer, poichèuna parte di essa deve essere costantementeriservata al nucleo del sistema operativo.I compiti del gestore della memoria sono moltosemplificati, dato che l’allocazione viene effettuatain modo statico e richiede solo un controllo perevitare che il processo utente invada lo spaziodestinato al sistema operativo.

Il S.O. come gestore della memoria

Page 6: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Allocazione a singola partizione

Il S.O. come gestore della memoria

Sistema operativo

Spazio degliindirizzi di

un programma

Locazioni vuote

Memoria

Spazio utente

Registro di confine

Page 7: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Allocazione a singola partizione

Una protezione della memoria di sistema può essere

ottenuta direttamente via hardware, gestendo

opportunamente i due stati della CPU (utente e

supervisore) ed un registro di controllo (registro

confine – bound register) che definisce il limite

invalicabile per l’indirizzamento di locazioni di

memoria da parte del programma utente.

Il S.O. come gestore della memoria

Page 8: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Allocazione a singola partizione

In pratica, ogni volta che un’istruzione fa riferimentoad una locazione di memoria con la CPU in stato diutente, viene effettuato un confronto con l’indirizzocontenuto nel registro di confine.

Se l’accesso tentato è valido l’istruzione vieneeseguita, mentre se si verifica un traboccamento,viene generata un’interuzione che passa il controllodella CPU al sistema operativo per la gestionedell’errore.

Il S.O. come gestore della memoria

Page 9: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a singola partizione

Vantaggi:

Semplicità di implementazione.

Dimensione ridotta dei programmi.

Minor costo del sistema.

Page 10: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a singola partizione

Svantaggi:Lascia in generale, una parte della memoriacompletamente inutilizzata.I lavori effettivamente eseguibili sono solo quelli cherichiedono un’area minore o uguale a quella adisposizione dell’utente.Per programmi di grosse dimensioni occorre ricorrere aparticolari tecniche che consentono di suddividere ilprogramma in parti tra loro indipendenti, ciascunadelle quali possa essere considerata come unprogramma a sé stante e caricata in memoria soloquando serve (tecniche di overlay).La comunicazione tra le varie parti del programmaviene assicurata gestendo un’area comune (areacommon) per la registrazione di tutti i dati o parte diessi.

Page 11: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Allocazione a partizioni

Il S.O. come gestore della memoria

Sistema operativo

Partizione 1

Memoria

Spazio utente

Registro di confine inferiore

Partizione 2

Partizione 3

Partizione n

Registro di confine superiore

Page 12: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Allocazione a partizioni

Si basa essenzialmente su una suddivisione della

memoria in sezioni separate (partizioni), in ciascuna

delle quali viene memorizzato lo spazio degli indirizzi

di un certo processo.

Il S.O. come gestore della memoria

Page 13: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Allocazione a partizioni

Per gestire correttamente la memoria occorre:

conoscere, in ogni momento, lo stato di ogni partizione

(libera o occupata);

individuare la partizione più idonea da assegnare al

lavoro scelto dallo schedulatore;

provvedere all’allocazione fisica dello spazio degli

indirizzi del processo nella partizione prescelta;

rendere di nuovo disponibile la partizione al termine

del processo, aggiornandone l’indicatore di stato.

Il S.O. come gestore della memoria

Page 14: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni

E’ indispensabile provvedere ad una protezione dellesingole partizioni, in modo da evitare che un lavorovada ad invadere involontariamente la partizione delS.O. oppure quelle di altri lavori.

La tecnica più semplice è basata su una coppia diregistri di confine (registro di confine inferiore eregistro di confine superiore). Tali valori devonoessere aggiornati ogni qualvolta il processore vieneassegnato ad un nuovo processo.

Page 15: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni

Una tecnica alternativa, che ha incontrato maggiori

favori fra i costruttori, è quella denominata

protezione per chiavi.

Si tratta di una protezione che associa ad ogni blocco

di memoria una “serratura a combinazione” di n bit.

La combinazione può essere definita ed esaminata

solo attraverso istruzioni privilegiate.

Page 16: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni

Può essere implementata in versioni differenti

Statica.

Dinamica.

Page 17: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Allocazione a partizioni

StaticaLa memoria viene divisa in partizioni fisse primadell’elaborazione dei lavori, in rapporto allecaratteristiche e alle dimensioni degli stessi.

Il descrittore della memoria dovrà contenere:– la combinazione della serratura;– la lunghezza in Kbyte;– l’indirizzo di partenza;– l’indicatore di stato, che è uguale a 0 per le partizioni

libere mentre per quelle occupate contiene il nome delprocesso che le usa.

Il S.O. come gestore della memoria

Page 18: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioniStatica

….….….….….

P5140K30K23

0115K25K12

P380K35K51

StatoIndirizzoDimensioneCombinazionePartizione

Page 19: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Allocazione statica delle partizioni

Il S.O. come gestore della memoria

Sistema operativo

P3

Memoria

Spazio utente

Vuota

P5

Vuota

80Kb

115Kb

140Kb

170Kb

Partizione 1

Partizione 2

Partizione 3

Partizione n

Page 20: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni

Statica

Il gestore della memoria, conoscendo il numero di

locazioni necessarie ad un processo, potrà assegnargli la

partizione più idonea.

Questa tecnica di allocazione sarà tanto più efficiente

quanto più si conosceranno le dimensioni dei lavori che

si alternano in esecuzione, poiché ciò consentirà di

dimensionare opportunamente ciascuna partizione.

Page 21: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioniStatica

Se non si hanno a disposizione queste informazioni,oppure se i lavori sono molti o con dimensioni moltodiverse tra loro, il rischio di lasciare inutilizzata unagrande percentuale di memoria non è affattotrascurabile.

….….….….….

25K5K30K23

25K0K25K12

25K10K35K51

Spazio inutilizzato

Dimensione del processo

Dimensione della partizioneCombinazionePartizione

Page 22: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione statica delle partizioni

Sistema operativo

P3 = 10K

Memoria

Spazio utente

Vuota

P5 = 5K

Vuota

80Kb

115Kb

140Kb

170Kb

Partizione 1

Partizione 2

Partizione 3

Partizione n

Spazio inutilizzato

Spazio inutilizzato

Page 23: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioniStatica

Supponiamo che, in un certo istante, devono venireprocessati 4 lavori: P3=10 Kb, P8=15 Kb, P5=5 Kb eP6=40 Kb, in una memoria suddivisa come indicato intabella, con dimensione massima di 90 Kb.

….….….….….

P5140K30K23

P8115K25K12

P380K35K51

StatoIndirizzoDimensione della partizioneCombinazionePartizione

Page 24: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione statica delle partizioni

….….….….….

25K5K30K23

10K15K25K12

25K10K35K51

Spazio inutilizzato

Dimensione del processo

Dimensione della partizioneCombinazionePartizione

Memoria disponibile: 90Kb.

Memoria assegnata: 90Kb.

Memoria realmente usata: 30Kb.

Memoria inutilizzata: 60Kb.

Page 25: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione statica delle partizioni

Sistema operativo

P3 = 10K

Memoria

Spazio utente

P8 = 15K

P5 = 5K

Vuota

80Kb

115Kb

140Kb

170Kb

Partizione 1

Partizione 2

Partizione 3

Partizione n

Spazio inutilizzato

Spazio inutilizzato

Spazio inutilizzato

Frammentazione

Frammentazione

Frammentazione

Page 26: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni

Statica

Ciò nonostante, il quarto lavoro P6=40 Kb, non può

entrare in esecuzione pur avendo a disposizione 60 Kb

liberi in quanto tutta la memoria è già stata assegnata

per l’elaborazione degli altri processi.

Page 27: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni

Dinamica

Ogni volta che un processo deve essere caricato in

memoria, sarà direttamente il S.O. a creare la partizione

dimensionandola opportunamente.

La suddivisione della memoria in partizioni varia

dinamicamente in rapporto al numero e alle dimensioni

dei processi schedulati.

Page 28: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioniDinamica

….….….….4

P2230K25K65

P5170K20K73

P6140K30K22

P380K35K41

StatoIndirizzoDimensioneCombinazioneIndice

Tabella delle partizioni allocate

Page 29: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioniDinamica

….….4

….….5

….….3

190K40K2

115K25K1

IndirizzoDimensioneIndice

Tabella delle aree libere

Page 30: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioni

Sistema operativo

P3 = 35K

Memoria

Spazio utente

Vuota

P6 = 30K

P2 = 25K

Vuota

80Kb

115Kb

140Kb

170Kb

Indice 1

Indice 2

Indice 5

P5 = 20K190Kb

Indice 3

230Kb

Page 31: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni

Dinamica

Supponiamo che, partendo dalla configurazione appena

illustrata, giungano per l’allocazione in memoria tre

processi rispettivamente di P4=12 Kb, P8=15 Kb, e

P1=30 Kb.

Page 32: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioni

P4115K12K82

P8190K15K95

P2230K25K66

P5170K20K74

P6140K30K23

P380K35K41

StatoIndirizzoDimensioneCombinazioneIndice

Tabella delle partizioni allocate

Page 33: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioni

….….4

….….5

….….3

205K25K2

127K13K1

IndirizzoDimensioneIndice

Tabella delle aree libere

Page 34: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioni

Sistema operativo

P3 = 35K

Memoria

Spazio utente

Vuota

P6 = 30K

P2 = 25K

Vuota

80Kb

115Kb

140Kb

170Kb

Indice 1

Indice 3

Indice 6

P5 = 20K190Kb

Indice 4

230Kb

P4 = 12K127KbIndice 2

P8 = 15K205KbIndice 5

Pur essendo disponibili38Kb il processoP1=30Kb non puòessere elaborato.

Page 35: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni

Dinamica

Supponiamo ora che giunga a terminazione il processo

P4=12 Kb.

Page 36: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioni

P8190K15K94

P2230K25K65

P5170K20K73

P6140K30K22

P380K35K41

StatoIndirizzoDimensioneCombinazioneIndice

Tabella delle partizioni allocate

Page 37: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioni

….….4

….….5

….….3

205K25K2

115K25K1

IndirizzoDimensioneIndice

Tabella delle aree libere

Page 38: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioni

Sistema operativo

P3 = 35K

Memoria

Spazio utente

Vuota

P6 = 30K

P2 = 25K

Vuota

80Kb

115Kb

140Kb

170Kb

Indice 1

Indice 2

Indice 5

P5 = 20K190Kb

Indice 3

230Kb

P8 = 15K205KbIndice 4

Pur essendo disponibili50Kb il processoP1=30Kb non puòessere elaborato.

Page 39: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioni

Generalizzando, si può osservare che al variaredinamico delle partizioni di memoria si puòfacilmente creare una serie di aree piccole edistribuite che aumentano la frammentazione ediminuiscono il rendimento complessivo del sistema.

Forme di ottimizzazione:periodico compattamento delle aree contigue libere;

strategia di assegnazione delle aree libere ai processi.

Page 40: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Allocazione dinamica delle partizioni

Periodico compattamento delle aree contigue libereSi agisce direttamente sulla tabella delle aree libere,ristrutturandola in modo da creare aree ampie al postodi molte aree piccole.

Strategia di assegnazione delle aree libere ai processiViene implementata nell’algoritmo di allocazione chepuò essere di tre tipi:

– allocazione nella prima area libera (first fit);

– allocazione nella migliore area libera (best fit);

– allocazione nell’area più grande (worst fit).

Il S.O. come gestore della memoria

Page 41: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioni

Allocazione nella prima area libera (first fit)La tabella delle aree libere viene costantementeriordinata in base agli indirizzi di partenza delle singolearee e, quando risulta necessario allocare un certoprocesso, la si scandisce assegnando al processo la primaarea di dimensione maggiore o uguale a quellanecessaria.

Questa tecnica utilizza al massimo le aree di memoria aindirizzo più basso e, nel contempo, permette laformazione di una grande area libera verso il fondo dellamemoria, che può essere usata per la gestione di grossiprocessi.

Page 42: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioni

Allocazione della migliore area libera (best fit)La tabella delle aree libere viene costantementeriordinata in base alla dimensione delle stesse. All’arrivodi un certo processo, si scandisce la tabella per cercarela prima area libera che sia maggiore o uguale alladimensione del processo, cioè quella che meglio siadatta al processo stesso.Vantaggi:

– mediamente, l’area idonea viene trovata scandendo solometà tabella;

– se c’è un’area libera proprio delle dimensioni delprocesso, essa gli viene sicuramente assegnata;

– non si frazionano aree molto grosse se non quando èstrettamente necessario, poiché la tecnica tende adutilizzare quelle di dimensioni minori.

Page 43: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioni

Allocazione nell’area più grande (worst fit)

La tabella delle aree libere può venire riordinata per

dimensione, ma viene scelta per l’allocazione l’area più

grande a disposizione.

Questa strategia produce aree di memoria rimanenti che

sono di grandi dimensioni, il che può essere più utile che

non produrre aree piccole come nella strategia best fit.

Page 44: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioni

Prove e simulazioni hanno dimostrato che first fit e

best fit sono migliori del worst fit in quanto riducono il

tempo di utilizzo della memoria.

In generale, però, la scelta di una o dell’altra tecnica

dipende dal tipo dei lavori che un centro di calcolo

prevede di dover eseguire.

Page 45: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione dinamica delle partizioniIl problema della frammentazione della memoria

Il problema più importante legato all’allocazione apartizioni è quello dovuto alla creazione di areeinutilizzabili sparse tra le partizioni occupate(frammentazione della memoria).Questo problema, evidenziato in tutti gli esempiproposti, deve essere attentamente valutato prima didecidere se utilizzare o meno una tecnica di gestionedella memoria a partizioni.In ogni caso, anche se si può determinare un minorrendimento del sistema, occorre tener presente che,una gestione della memoria a partizioni, se bendimensionata, risulta rapida, semplice da implementaree complessivamente poco costosa.

Page 46: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni rilocabiliUna soluzione al problema della frammentazione può essererappresentata dal ricompattamento periodico di tutte learee occupate dagli spazi degli indirizzi relativi ai diversiprocessi verso la parte alta della memoria centrale(burping), per permettere la creazione di un’area libera sulfondo della memoria stessa.Questa operazione non è semplice poiché lo spostamento diun processo da una posizione all’altra non garantisceautomaticamente la sua esecuzione corretta (es. riferimentia indirizzi assoluti).Attraverso un apposito registro (registro di rilocazione), èpossibile rendere i processi completamente indipendentidalla posizione di allocazione (programmi rilocabili). Ilprocesso di aggiornamento degli indirizzi, eseguito ogniqualvolta il programma viene caricato in memoria, èchiamato rilocazione.

Page 47: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni rilocabili

P4115K12K82

P8190K15K95

P2230K25K66

P5170K20K74

P6140K30K23

P380K35K41

StatoIndirizzoDimensioneCombinazioneIndice

Tabella delle partizioni allocate

Page 48: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni rilocabili

….….4

….….5

….….3

205K25K2

127K13K1

IndirizzoDimensioneIndice

Tabella delle aree libere

Page 49: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni rilocabili

Sistema operativo

P3 = 35K

Memoria

Spazio utente

Vuota

P6 = 30K

P2 = 25K

Vuota

80Kb

115Kb

140Kb

170Kb

Indice 1

Indice 3

Indice 6

P5 = 20K190Kb

Indice 4

230Kb

P4 = 12K127KbIndice 2

P8 = 15K205KbIndice 5

Pur essendo disponibili38Kb il processoP1=30Kb non puòessere elaborato.

255Kb

Page 50: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni rilocabili

P4115K12K82

P8177K15K95

P2192K25K66

P5157K20K74

P6127K30K23

P380K35K41

StatoIndirizzoDimensioneCombinazioneIndice

Tabella delle partizioni allocate

Page 51: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni rilocabili

….….4

….….5

….….3

….….2

217K38K1

IndirizzoDimensioneIndice

Tabella delle aree libere

Page 52: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni rilocabili

Sistema operativo

P3 = 35K

Memoria

Spazio utente

P6 = 30K

P2 = 25K

Vuota

80Kb

115Kb

157Kb

177Kb

Indice 1

Indice 3

P5 = 20K

192Kb

Indice 4

217Kb

P4 = 12K127KbIndice 2

P8 = 15K

Indice 6

Sono disponibili 38Kb eil processo P1=30Kbpuò essere elaborato.

Rilocazione

255Kb

Indice 5

Page 53: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni rilocabili

P2192K25K66

P4115K12K82

P8177K15K95

P1217K30K37

P5157K20K74

P6127K30K23

P380K35K41

StatoIndirizzoDimensioneCombinazioneIndice

Tabella delle partizioni allocate

Page 54: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni rilocabili

….….4

….….5

….….3

….….2

247K8K1

IndirizzoDimensioneIndice

Tabella delle aree libere

Page 55: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni rilocabili

Sistema operativo

P3 = 35K

Memoria

Spazio utente

P6 = 30K

P2 = 25K

Vuota

80Kb

115Kb

157Kb

177Kb

Indice 1

Indice 3

P5 = 20K

192Kb

Indice 4

217Kb

P4 = 12K127KbIndice 2

P8 = 15K

Indice 6

Sono disponibili 38Kb eil processo P1=30Kbpuò essere elaborato eviene caricato inmemoria.

Rilocazione

255Kb

Indice 5

P1 = 30KIndice 7247Kb

Page 56: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

Allocazione a partizioni rilocabiliNell’implementare l’algoritmo di gestione dellarilocazione occorre definire le condizioni che lainnescano.

Effettuare la compattazione ogni volta che un processorilascia l’area della memoria utilizzata, ma ciò farebbeaumentare considerevolmente l’overhead di CPU, inquanto quest’ultima dovrebbe effettuare spessospostamenti di dati in memoria.Effettuare la rilocazione solo nei casi in cui non risultidisponibile un’area libera sufficientemente grande perelaborare un nuovo processo. In questo caso ilcompattamento avverrebbe più raramente, ma lagestione delle tabelle sarebbe più complessa.In ogni caso, l’allocazione a partizioni dinamiche ha ilvantaggio di rendere minore la frammentazione e diaumentare il grado di multiprogrammazione del sistema.

Page 57: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La paginazione

Fornisce un’altra soluzione al problema della

frammentazione e rappresenta una delle tecniche più

utilizzate sugli attuali sistemi di elaborazione.

Permette di utilizzare memoria non contigua per

contenerne lo spazio degli indirizzi.

Page 58: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La paginazioneLo spazio degli indirizzi di ogni processo viene suddiviso inparti uguali (pagine) e l’allocazione avviene ponendo incorrispondenza buinivoca le pagine che compongono ilprocesso con i blocchi di memoria della medesimadimensione (frames), destinati a contenerle.Le pagine del processo sono viste dall’utente logicamentecontigue, ma i blocchi di memoria possono anche nonesserlo e lo spazio degli indirizzi del processo si presenteràsparso nella memoria fisica. Sarà compito dell’hardwarepreposto alla traduzione degli indirizzi trasformare gliindirizzi logici in quelli fisici sotto il completo controllo delsistema operativo.Occorre gestire la trasformazione tra le pagine dello spaziodegli indirizzi e i blocchi di memoria, utilizzando opportunisupporti di memorizzazione (tabelle di mappa di pagine)che, partendo dall’indirizzo base di ogni pagina nellamemoria fisica, consentano di gestire la trasformazionedell’indirizzo di pagina in indirizzo di blocco.

Page 59: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La paginazione

Sistema operativo

Blocco 0

Blocco 1

Blocco 2

Blocco 3

Blocco 4

Blocco 5

Blocco 6

Blocco 7

Blocco 8

Blocco 9

Blocco 10

Blocco nMemoria

Pagina 0

Pagina 1Processo 1

Pagina 0

Pagina 1

Pagina 2

Pagina 3Processo 2

Pagina 0

Pagina 1

Pagina 2Processo 3

0 Ind 4Pagine Blocchi

1 Ind 9Tabella di mappa

0 Ind 0Pagine Blocchi

1 Ind 2

Tabella di mappa

2 Ind 7

3 Ind 10

0 Ind 1Pagine Blocchi

1 Ind 5

Tabella di mappa

2 Ind 8

14 Kb

Page 60: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La paginazioneAd esempio il processo 2, lungo 14 Kb, viene suddivisoautomaticamente in 4 pagine di 4 Kb, di cui l’ultima noncompletamente occupata.Al momento del caricamento in memoria, vengono reperiti 4blocchi liberi in memoria (0, 2, 7, 10) e viene creata latabella di associazione tra pagine e blocchi.La tecnica di paginazione risolve quasi completamente ilproblema della frammentazione senza che avvenga alcunmovimento fisico dei blocchi di memoria.Le dimensioni delle pagine e dei blocchi deve essere fattatenendo conto dei lavori da effettuare e della strutturahardware del sistema, per evitare, se la misura di unapagina è troppo grande, di ritrovarsi con gli stessi problemidelle partizioni fisse, oppure, se la misura è troppo ridotta,di dover gestire una grossa tabella di mappa.

Page 61: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La paginazione dinamica

In tutti gli schemi fin qui visti, un lavoro non può

essere eseguito finché non si carica in memoria

l’intero spazio degli indirizzi, anche se alcune parti

del processo non vengono quasi mai eseguite.

Per gestire in multiprogrammazione lavori

complessivamente molto grandi, occorre possedere

una notevole quantità di memoria, anche se poi in

realtà buona parte di essa rimane spesso inutilizzata.

Page 62: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La paginazione dinamica

La soluzione più idonea sarebbe quindi rappresentatada una gestione della memoria che produca l’illusionedi poter avere a disposizione un’area estremamentevasta, pur utilizzando in realtà solo una memoria fisicadi dimensioni limitate.

Una tecnica spesso usata per virtualizzare la memoriadi un sistema è la paginazione dinamica (demandpaging), che si basa sulla possibilità di mandare inesecuzione un processo, anche se in memoria vienecaricata di volta in volta da disco solo la parteinteressata a quella fase dell’esecuzione.

Page 63: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La paginazione dinamicaVantaggi

Un programma non è più vincolato dalla quantità dimemoria fisica disponibile e ciò consente agli utenti discrivere programmi che utilizzano uno spazio degliindirizzi (indirizzi virtuali) con un’ampiezza che puòsuperare i limiti fisici della memoria reale.Può essere sensibilmente aumentato il rendimento delsistema (throughput) senza aumentare il tempo dirisposta, poiché, dal momento che ogni processo utilizzameno memoria fisica, possono essere fatti avanzare piùprocessi.Sono necessarie meno operazioni di I / O per caricare osalvare un processo, per cui l’esecuzione risulta piùrapida.

Page 64: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La paginazione dinamicaCiò è reso possibile da:

i programmi spesso contengono delle “routine” per lagestione degli errori eseguite solamente in rari casi, percui è inutile mantenerle sempre in memoria;i programmi sono spesso organizzati “a menu” el’esecuzione di una opzione, in generale, non richiedeche i blocchi di programma relativi alle altre scelte sianopresenti in memoria;nei programmi sono spesso presenti parti indipendentitra loro, la cui esecuzione non richiede la presenza inmemoria del resto del programma;anche se il processo gestisce una grande tabella di dati,per la maggior parte delle operazioni ne usa solo unsottinsieme, ed è quindi sufficiente mantenere inmemoria la parte più usata, richiamando il resto soloall’occorrenza.

Page 65: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La paginazione dinamica

La paginazione dinamica utilizza le stesse tecniche

della paginazione, basate sulla suddivisione del

processo in pagine e della memoria in blocchi (page

frame) delle stesse dimensioni, solo che in ogni istante

non tutte le pagine hanno associato un reale blocco di

memoria.

Page 66: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La paginazione dinamica

Sistema operativo

Blocco 0

Blocco 1

Blocco 2

Blocco 3

Blocco 4

Blocco 5

Blocco 6

Blocco 7

Blocco 8

Blocco 9

Blocco 10

Blocco nMemoria

Pagina 0

Pagina 1Processo 1

Pagina 0

Pagina 1

Pagina 2

Pagina 3Processo 2

Pagina 0

Pagina 1

Pagina 2Processo 3

14 Kb

Tabella di mappa

0 Ind 4Pagine Blocchi

1 Ind 9

Si

Si

Mem.

0 Ind 0

1 Ind 2

Tabella di mappa

2 -

3 Ind 10

Si

Si

No

Si

Pagine BlocchiMem.

0 -

1 Ind 5

Tabella di mappa

2 -

No

Si

No

Pagine BlocchiMem.

Page 67: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La paginazione dinamica

Anche in questo caso è necessaria una tabella di

mappa di pagina che ponga in relazione pagine e

blocchi di memoria e che consenta al sistema

operativo, tramite un bit detto bit di validità, di

sapere quali pagine sono realmente presenti in

memoria e in quali blocchi sono memorizzate.

Page 68: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La segmentazione

In tutti i modelli di gestione della memoria che

abbiamo esaminato, l’utente programmatore vedeva lo

spazio degli indirizzi del suo programma come un

singolo blocco allocato in locazioni contigue, anche se

logicamente suddiviso in sezioni ben distinte

(programmaprincipale, sottoprogrammi, area dati, …).

Page 69: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La segmentazione

Esiste però un modo (la segmentazione) perorganizzare anche lo spazio degli indirizzi, in modo darispettare la suddivisione logica indotta dalla fase diprogettazione, fornendo nello stesso tempo indubbivantaggi al sistema operativo nella gestione dellarisorsa memoria al programmatore.

Con la segmentazione, oltre a migliorare la gestionedelle risorse, si fornisce al programmatore un validostrumento per migliorare il controllo sul programma esulle fasi di avanzamento.

Page 70: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La segmentazione

Con la tecnica della segmentazione, infatti, lo spazio

degli indirizzi di un programma viene suddiviso in

diverse sezioni (segmenti), ciascuna dotata di

unitarietà logica, che vengono caricate in memoria

all’occorrenza e poi collegate al resto del programma

in modo dinamico durante l’esecuzione.

Page 71: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La segmentazioneCompilatore: crea automaticamentesegmenti distinti

Variabili globali, stack necessari alla memorizzazione deiparametri e degli indirizzi di ritorno dei sottoprogrammi,porzione di codice relativa ai singoli sottoprogrammi,variabili locali relative ad ogni procedura o funzione.

Main

Routine 1

Routine 2

Area dati

Page 72: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La segmentazione

Inizialmente viene caricato in memoria il segmentoMAIN e soltanto quando in esso si fa riferimento ad unaltro segmento ROUTINE 1, attraverso un’istruzione dichiamata, il gestore della memoria ricercherà sullamemoria di massa il segmento richiamato, lo caricheràin memoria centrale ed effettuerà il collegamento(dinamic linking) con il modulo chiamante.

La stessa cosa avverrà quando in fase di esecuzione sifarà riferimento ad uno qualsiasi dei segmenticontenenti dati.

Page 73: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La segmentazione

L’implementazione del gestore della memoria in unsistema segmentato è molto simile a quella usata per isistemi a paginazione. E’ prevista per ogni processouna tabella di mappa (tabella di mappa dei segmenti)che conterrà:

l’identificatore del segmento;

la dimensione del segmento;

un identificatore di protezione del segmento;

un identificatore di stato;

l’indirizzo di inizio del blocco.

Page 74: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La segmentazione

Sistema operativo

Area dati

Main

Routine 1

Memoria

Main

Routine 1

Routine 2

Area dati

88 KbSiR/W20 Kb6

5

NoR8 Kb4

228 KbSiE20 Kb3

2

212 KbSiE12 Kb1

Ind.Mem.Acc.Dim.Seg.

88Kb

212Kb

228KbTabella di mappa dei segmenti

Page 75: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La segmentazioneLa gestione della memoria a segmenti presentaparecchi vantaggi:

riduzione della frammentazione;possibilità di costruire programmi che utilizzano spazidegli indirizzi più ampi della memoria fisica adisposizione;possibilità di modificare in fase di esecuzione ladimensione di un segmento;possibilità di effettuare il caricamento ed ilcollegamento dinamico;gestione concorrente di più segmenti che possono esserecondivisi da più programmi (condivisione di codice o didati);controllo differenziato sui tipi di accesso ai singolisegmenti di un programma, che consente di definire,all’interno di uno stesso programma, segmenti a solalettura, a lettura e scrittura oppure a sola esecuzione.

Page 76: Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi - Il S.O. come gestore della memoria La struttura del gestore della memoria. Allocazione

INFO

RM

ATIC

A –

Sist

emi O

pera

tivi

Maurizio Lunardi

I.T.S.“Bassi” - Lodi -

Il S.O. come gestore della memoria

La segmentazione paginata

Se l’hardware del sistema a disposizione lo permette,

è possibile unire le prestazioni dei sistemi segmentati

e di quelli a paginazione dinamica, implementando

una tecnica di gestione mista, denominata

segmentazione paginata, in cui, invece di considerare

ogni segmento come un singolo blocco, lo si pensa

suddiviso in tanta pagine di dimensioni prefissate.