Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi...
Transcript of Il S.O. come gestore della memoria – Sistemi Operativi Maurizio Lunardi I.T.S. “Bassi ” - Lodi...
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.
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
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.
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à.
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
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
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
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
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.
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.
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
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
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
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.
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.
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.
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
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
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
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.
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
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
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
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.
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
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.
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.
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
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
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
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.
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
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
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.
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.
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
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
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.
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.
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
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.
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.
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.
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.
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.
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.
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
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
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
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
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
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
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
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
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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, …).
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.
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.
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
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.
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.
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
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.
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.