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
 
I corsi di Ingegneria
 
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