Gestione della Memoria Centrale Collegamento Indirizzi Loader : Carica il programma in memoria Compilation Time --- codice assoluto Load time --- codice rilocabile Execution time --- codice movibile Indirizzamento Indirizzamento Logico ed Indirizzamento Fisico Compilation Time --- Logico=Fisico Load time --- Logico=Fisico Execution time --- Logico≠Fisico MMU (Registro di Rilocazione) Modalità di esecuzione dei programmi Caricamento Dinamico Librerie statiche e dinamiche Overlay Transfer rate Swapping I/O Allocazione della memoria Partizioni (Allocazione contigua) Problema dell’allocazione dinamica della MC First-fit Best-fit Worst-fit Frammentazione (esterna ed interna) Allocazione della memoria Spazio indirizzi non contiguo Paginazione Segmentazione Paginazione Spazio indirizzi non contiguo Frame Pagine Tabella pagine 0 1 2 3 4 0 1 1 2 8 3 4 4 3 Memoria Logica Pagina Offset Indirizzo Logico 6 Tabella Frame 0 0 1 0 0 1 2 1 0 4 3 3 1 3 4 4 1 5 0 6 7 1 8 1 9 0 0 2 5 2 6 7 1 8 9 Memoria Fisica Paginazione Nessuna Frammentazione esterna Frammentazione interna (media ½ pagina) Dimensione Pagina Piccola Poca framm. Interna Tabella pagine grande I/O ineff. Grande Più framm. Interna Tabella pagine piccola I/O effic. Paginazione Problema della Tabella Pagine: Supporto Hardware Registri (Tabelle piccole) Registro Base (Tabelle in memoria) Memoria Associativa TLB (Translate Look-Aside Buffer) Protezione Paginazione Organizzazione della tabella delle pagine Organizzazione Gerarchica Hashing Segmentazione Allocazione non contigua della memoria Paginazione con pagine di dimensione variabile Segmento Offset Indirizzo logico Segmentazione Tabella Segmenti Segmento L B i a m s e Offset Indirizzo logico Si < No Errore Indirizz. Memoria Fisica + Segmentazione Protezione Frammentazione Esterna Segmentazione con paginazione Memoria Virtuale Spazio indirizzamento Virtuale e Spazio Fisico Allocazione non contigua Richiesta di Paginazione (o Segmentazione) Memoria Virtuale Pagine 0 1 Tabella pagine 0 1 8 2 1 2 6 0 0 3 3 4 1 4 4 3 1 2 3 1 4 3 4 1 3 4 5 0 6 7 1 8 1 9 0 Memoria Logica Richiesta Pura di Paginazione (Località dei Riferimenti Tabella Frame Frame 0 0 1 2 0 5 2 6 7 0 1 8 9 Memoria Fisica 0 2 3 Memoria Virtuale (Valutazione) Istruzioni, Dati e Page fault Copy on Write (pool di pagine) Sostituzione ed Allocazione Pagine Sostituzione della Pagina Dirty Bit Sostituzione FIFO (anomalia Belady) Sostituzione Ottimale (OPT) Approssimaz. OPT LRU (contatori o stack) Approssimaz. LRU (bit addiz., seconda poss., Seconda poss. Miglior. Sostituzione della Pagina LFU (contatori ) MFU (contatori ) Allocazione delle Pagine Quante Pagine Allocare al processo allo start? Allocazione Omogenea o Proporzionale Sostituzione Globale o Locale Thrashing Variaz. Dinam. Frame (WS)