Estratto del documento

Gestione della memoria

La memoria virtuale

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 programma 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 è vantaggioso 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 a 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 caricamento;
  • 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 pagina mancante.
Anteprima
Vedrai una selezione di 1 pagina su 5
Gestione della memoria virtuale Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

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à Università degli Studi di Cagliari o del prof Carta Salvatore.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community