Prof. Diomede Mazzone Gestione della memoria Memoria Virtuale
Cosa accade usualmente Alcuni processi possono rimanere in stato di ready per molto tempo, occupando memoria! Le pagine fisiche di memoria possono risultare insufficienti, considerando il numero di processi attivi
Tecnica risolutiva Il Gestore della memoria mette a disposizione più pagine di quante non ne abbia fisicamente. Salva temporaneamente quelle che non dovessero trovare posto all interno della memoria principale in un area specifica della memoria non volatile, detta Area di Swap o Paging.! Tale approccio, per motivi di prestazione, va considerato solo quando strettamente necessario.
Come si organizzano i SO Ogni singolo programma può teoricamente utilizzare tutte le pagine logiche rese disponibili dalla dimensione dell indirizzo e, di conseguenza, richiedere una quantità di memoria superiore alla memoria fisica disponibile! Possiamo quindi distinguere:! lo spazio di indirizzamento logico (limitato solo dallo spazio dell indirizzo)! l indirizzamento fisico, limitato fisicamente dalla memoria disponibile
Utilità dell approccio spesso le istruzioni dei processi sono cicli oppure operazioni ripetute molto spesso, utilizzano quindi poche pagine rispetto a quante non ne occupa realmente il processo Sarà necessario conservare nella memoria centrale solo le pagine strettamente indispensabili. Stesso discorso vale per i dati Il gestore della memoria dovrà quindi scegliere solo quelle più importanti
Distribuzione della memoria pagine logiche! Processo A 0 1 2 3 4 5 6 A4 A2 A6 A0 A7 Area di Swap su disco! (frame) A0 A1 A2 A3 A4 A5 A6 A7 A5 A2 A1 A3 0 1 2 3 4 5 6 7 8 RAM! (pagine fisiche)
Quali informazioni servono al Gestore Deve tenere traccia delle pagine non pesanti nella memoria principale in modo da poterle caricare dalla memoria di massa quando richiesto Pagina logica Indirizzo base logico Presente Processo A Pagina fisica Indirizzo base fisico Posizione su disco 0 0x0000 si 3 0x6000 3 1 0x2000 si 6 0xC000 4 2 0x4000 no 1 3 0x6000! no 0 4 0x8000 no 9
Page Fault L MMU trasla gli indirizzi logici delle istruzioni e dei dati in indirizzi fisici, ma se la corrispondente pagina fisica non è presente nella memoria RAM? Indirizzo Logico MMU Pagina logica? Tabella delle pagine? Indirizzo Fisico
Come si comporta in caso di page fault sospende il processo e lo mette in stato di Wait! aggiorna la tabella e quindi preleva la pagina dalla memoria fisica! sblocca il processo portandolo nello stato di ready
Osservazioni Ogni page-fault rallenta drasticamente l esecuzione di un processo, minimizzare il numero di page-fault è prerogativa di ogni gestore della memoria.! Se non c è spazio nella memoria RAM bisogna procedere ad una sostituzione; la scelta della pagina da levare è una scelta che il gestore della memoria deve fare con l ausilio dell MMU.
FIFO First In First Out la prima pagina da rimuovere è la prima che è stata caricata! per avere traccia del tempo basta salvare il valore dell orologio di sistema al primo caricamento nella tabella delle pagine
LRU Least Recently Used La prima pagina da rimuovere è quella inutilizzata da più tempo! la MMU deve memorizzare per ogni pagina il valore dell orologio interno del PC a ogni accesso
LFU Least Frequently Used La prima pagina da rimuovere è quella meno utilizzata; il principio quindi si basa sulla frequenza di accesso! la MMU deve prevedere un contatore di accessi alla pagina
Osservazioni Le politiche LRU e LFU richiedono una discreta complessità dell MMU, quindi si utilizza un approssimazione della politica LRU: NRU (Not Recently Used)! L MMU gestisce un reference-bit che tiene conto dell accesso alla pagina: periodicamente vengono azzerati tutti i reference-bit così da avere traccia solo degli ultimi accessi
Quest'opera è stata rilasciata con licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 4.0 Internazionale. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-nc-sa/ 4.0/