Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Antonino Mazzeo » 22.Gestione della memoria


Sommario

  • Introduzione
  • Aspetti caratterizzanti la gestione della memoria
  • Paginazione
  • Segmentazione
  • Segmentazione con paginazione

Introduzione

  • La memoria principale costituisce, insieme alla CPU, una delle risorse necessarie per fornire il supporto al concetto di processo.
  • Infatti, per realizzare l’astrazione di processo, o programma in esecuzione, è necessario disporre:
    • di una unità di elaborazione che esegue il programma
    • di un’area di memoria nella quale il programma risiede (immagine del processo).
  • Parametri caratterizzanti la gestione della memoria
    • Rilocazione: statica o dinamica
    • Allocazione: contigua non contigua
    • Organizzazione dello spazio virtuale: spazio virtuale unico o segmentato
    • Caricamento: tutto insieme o a domanda

Rilocazione

  • Generalmente, l’associazione di istruzioni e dati a indirizzi di memoria si può compiere nelle seguenti fasi:
    • Compilazione: si genera codice assoluto
    • Caricamento: si genera codice rilocabile
    • Esecuzione: rilocazione dinamica.
  • Rilocazione dinamica
    • Uno dei principali motivi che rende necessaria la rilocazione dinamica è lo swapping
    • Nello schema MMU, quando un processo utente genera un indirizzo si somma a tale indirizzo il valore contenuto nel registro di rilocazione.
    • Il programma utente tratta con gli indirizzi logici; non considera mai gli indirizzi fisici
Rilocazione dinamica tramite Registro di rilocazione

Rilocazione dinamica tramite Registro di rilocazione


Allocazione

  • L’immagine di un processo può essere allocato in memoria fisica secondo due modalità: contigua e non contigua (paginazione)
  • Allocazione contigua: la memoria centrale si divide di solito in due partizioni, una per il SO residente una per i processi utenti.
    • Protezione della memoria tramite registro di rilocazione e registro limite
    • Quando si carica un processo che necessita di memoria, occorre cercare un hole (buco di memoria disponibile) sufficientemente grande da contenerlo. Sono possibili tre strategie: First-fit; Best-fit e Worst-fit
    • Frammentazione esterna: Spazio di memoria perduto sotto forma di spezzoni. Frammentazione interna: Spazio di memoria perduto perché assegnato ma non utilizzato
    • Una soluzione al problema della frammentazione esterna è data dalla compattazione

Organizzazione dello spazio virtuale e Caricamento

  • Lo spazio virtuale può essere visto come:
    • Uno spazio unico (corrispondente all’intera immagine del processo)
    • Un insieme di segmenti
    • Un segmento è un’unità logica come: programma principale, procedure, funzioni, metodi, oggetti, variabili locali, variabili globali, pile, tabella dei simboli, vettori
  • Il caricamento dell’immagine in memoria può avvenire:
    • Tutto insieme
    • A domanda (o su richiesta):
      • Overlay: Mantiene nella memoria soltanto le istruzioni e i dati che si usano con maggior frequenza
      • Caricamento dinamico: una procedura (o una porzione di memoria) non viene caricata fino a quando non è utilizzata

Tecniche di gestione della memoria

Tecniche di gestione della memoria

Tecniche di gestione della memoria


Paginazione

  • Metodo di gestione della memoria che permette che lo spazio degli indirizzi fisici di un processo non sia contiguo.
  • Suddivide la memoria fisica in blocchi di dimensioni fisse (frame) e la memoria logica in blocchi di uguale dimensione (pagine)
  • Utilizza una tabella delle pagine per tradurre indirizzi logici in indirizzi fisici.
  • Architettura di paginazione
    • La tabella delle pagine è mantenuta nella memoria principale.
    • Un registro di base della tabella delle pagine (PTBR) punta alla tabella stessa ed un registro di lunghezza della tabella delle pagine (PRLR) indica la dimensione della tabella delle pagine.
    • Con questo metodo, per accedere a un byte occorrono due accessi alla memoria. Soluzione: impiego di una TLB
    • Protezione della memoria: bit di protezione e bit di validità

Struttura della tabella delle pagine e segmentazione

  • Paginazione gerarchica
    • Suddivide la tabella delle pagine in parti più piccole, secondo una organizzazione gerarchica
  • Tabella delle pagine di tipo hash
    • L’argomento della funzione di hash è il numero della pagina virtuale. Ogni elemento della tabella hash contiene una lista concatenata di elementi che la funzione hash fa corrispondere alla stessa locazione.
  • Tabella delle pagine invertita
    • C’è un elemento per ogni pagina reale. Ogni elemento è costituito dall’indirizzo virtuale della pagina memorizzata in quella locazione di memoria
  • Architettura di segmentazione
    • Tabella dei segmenti (segment table)
    • Registro di base e registro limite della tabella dei segmenti (STBR e STLR)
  • Segmentazione con paginazione – Intel 386

Prossima lezione

Memoria Virtuale

I materiali di supporto della lezione

P. Ancilotti, M.Boari, A. Ciampolini, G. Lipari, “Sistemi Operativi”, Mc-Graw-Hill (Cap. 4)

A. Silberschatz, Galvin, G. Gagne, "Sistemi Operativi" Addison-Wesley (Capitolo 8)

Gestione della memoria

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion