Che materia stai cercando?

Gestione della memoria virtuale

Appunto/dispensa sulla gestione della memoria virtuale. Descrizione della memoria e dei metodi di gestione. Appunti di basati su appunti personali del publisher presi alle lezioni del prof. Carta dell’università degli Studi di Cagliari - Unica. Scarica il file in formato PDF!

Esame di Sistemi operativi docente Prof. S. Carta

Anteprima

ESTRATTO DOCUMENTO

G 2

ESTIONE DELLA MEMORIA

La memoria virtuale

INTRODUZIONE

La memoria virtuale è una tecnica che permette di eseguire processi che non sono contenuti

completamente in memoria, offrendo la possibilità di eseguire programmi aventi dimensioni

maggiori della memoria fisica stessa. Infatti non è detto che un debba essere utilizzato interamente

e, anche quando è necessario, non per forza le sue istruzioni sono necessarie tutte in una volta.

Si fonda sulla separazione della memoria logica percepita dall’utente dalla memoria fisica.

Una soluzione al problema degli algoritmi di gestione relativi alla memoria centrale, i quali

richiedono che le istruzioni da eseguire si trovino caricate nella memoria, è quella di caricare lo

spazio degli indirizzi logici del processo in memoria fisica.

Anche nel caso della memoria virtuale è possibile organizzare la memoria fisica in frame di pagine;

in questo caso i frame delle pagine fisiche assegnati ai processi possono non essere contigui e spetta

alla MMU associare in memoria le pagine logiche alle pagine fisiche.

Il caricamento parziale dei programmi è ventaggioso per vari motivi:

un programma non è più vincolato dalla memoria fisica disponibile e i programmatori

• possono scrivere programmi per uno spazio degli indirizzi virtuali più ampio. Lo spazio

degli indirizzi virtuali si riferisce alla collocazione dei processi in memoria dal punto di vista

logico, o virtuale;

aumenta la produttività e l’utilizzo della CPU in quanto è possibile eseguire più programmi

• contemporaneamente;

ogni programma utente è eseguito più rapidamente in quanto diminuiscono le operazioni di

• I/O.

La memoria virtuale offre la possibilità di condividere i file e la memoria mediante la condivisione

delle pagine, con i seguenti vantaggi:

è possibile condividere le librerie, le quali sono ospitate da pagine condivise;

• la memoria condivisa tra due processi è vista come parte dello spazio degli indirizzi virtuali;

• mediante la fork() si può permettere la condivisione delle pagine al momento della creazione

• del processo.

PAGINAZIONE SU RICHIESTA

Una tecnica adottata dai sistemi con memoria virtuale è la paginazione su richiesta, che permette

di caricare le pagine in memoria solo quando sono necessarie (paginazione su richiesta pura),

riducendo il tempo d’avvicendamento e la quantità di memoria fisica richiesta.

Il modulo del sistema operativo che si occupa di sostituire le pagine è detto paginatore.

Quando un processo sta per essere caricato in memoria, il paginatore ipotizza quali pagine saranno

usate e le trasferisce in memoria.

Per distinguere le pagine caricate in memoria da quelle presenti nei dischi si utilizza il bit di

validità:

se è impostato su valido significa che la pagina è appunto valida e presente in memoria;

• se è impostato su non valido significa che la pagina non è valida, oppure che lo è ma è nel

• disco.

Se il processo tenta di accedere ad una pagina che non è stata caricata in memoria o che non è

valida, si verifica un’eccezione di pagina mancante.

Questa eccezione viene gestita in questo modo:

si controlla una tabella interna del processo, memorizzata nel PCB, per capire se il

• riferimento alla pagina fosse valido o non valido;

se il riferimento non era valido, si termina il processo, se lo era ma la pagina non era ancora

• stata caricata in memoria si effettua il carimento;

si individua un frame libero;

• si programma un’operazione sui dischi per trasferire la pagina nel frame;

• terminata l’operazione, si modificano la tabella interna al PCB e la tabella delle pagine per

• indicare che la pagina si trova attualmente in memoria;

si riavvia l’istruzione interrotta dal segnale di eccezione.

I meccanismi di ausilio alla paginazione su richiesta sono:

la tabella delle pagine;

• la memoria secondaria, la quale conserva le pagine non presenti in memoria centrale.

Il vantaggio principale di questo tipo di paginazione è che si può riprendere l’esecuzione del

processo da qualsiasi istruzione interrotta, in quanto lo stato viene salvato nel PCB e poi

ripristinato.

Le prestazioni della paginazione su richiesta dipendono dal tempo d’accesso effettivo, influenzato

dal tempo di accesso alla memoria ma, dalla probabilità di page fault p e dal tempo necessario a

risolvere il page fault tpf. È direttamente proporzionale alla frequenza delle assenze di pagina.

EAT = (1 – p)*ma + p*tpf

La gestione del page fault avviene secondo questa sequenza:

1. segnale d’eccezione al SO;

2. salvataggio dei registri utente e dello stato del processo;

3. verifica che l’interruzione sia dovuta o meno a pagina mancante;

4. controllo della correttezza del riferimento alla pagina e determinazione della locazione della

pagina sul disco;

5. lettura dal disco e trasferimento in frame libero (attesa nella coda);

6. durante l’attesa, allocazione della CPU a un altro processo utente;

7. ricezione del segnale per I/O da disco completato;

8. salvataggio dei registri utente e dello stato dell’altro processo;

9. verifica della provenienza dell’interruzione dal disco;

10. aggiornamento della tabella delle pagine per segnalare che la pagina è in memoria;

11. attesa che la CPU sia nuovamente assegnata al processo di partenza;

12. recupero dei registri, dello stato e della tabella delle pagine aggiornata e ripresa

dall’istruzione interrotta.

COPIATURA SU SCRITTURA

La chiamata di sistema fork() crea per ogni figlio duplicato del padre una copia dello spazio degli

indirizzi del genitore, duplicando le pagine appartenenti a quest’ultimo.

Considerando che molti processi eseguono la exec() subito dopo la loro creazione, questa

operazione di copiatura risulta inutile.


PAGINE

5

PESO

95.78 KB

PUBBLICATO

4 mesi fa


DETTAGLI
Corso di laurea: Corso di laurea in informatica (CAGLIARI)
SSD:
Università: Cagliari - Unica
A.A.: 2018-2019

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher frensisssss di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Cagliari - Unica o del prof Carta Salvatore.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Sistemi operativi

Sistemi Operativi - Appunti Teoria Prima Parte
Appunto
Sistemi Operativi - Appunti Teoria Seconda Parte
Appunto
Gestione della memoria centrale
Appunto
Calcolo differenziale Integrale -Appunti
Esercitazione