La memoria virtuale è un metodo di gestione della memoria, che viene implementato tramite l’uso di hardware e software del computer. Mostra gli indirizzi virtuali utilizzati dai programmi negli indirizzi fisici della memoria del computer.

La memoria principale è rappresentata come uno spazio di indirizzi continuo o un insieme di segmenti continui adiacenti. Con questo blog imparerai cos’è una memoria virtuale e tutte le sue caratteristiche spiegate nel dettaglio.

Il sistema operativo gestisce gli spazi di indirizzi virtuali e mappa la RAM alla memoria virtuale. Il sistema operativo può espandere queste capacità per fornire spazio di manovra virtuale che può superare la capacità di memoria, fornendo così più memoria di quella disponibile in un computer.

Puoi anche leggere: Come identificare il modello di un PC.

Cos’è una memoria virtuale?

La memoria virtuale consente di modificare le risorse di memoria, rendere la quantità di RAM molto più grande, in modo che l’utente, inserendo il maggior numero possibile di programmi.

La “scoperta” della memoria virtuale ha contribuito notevolmente allo sviluppo delle moderne tecnologie, facilitando il lavoro sia del programmatore professionista che dell’utente ordinario, fornendo il processo di risoluzione dei problemi più efficiente su un computer.

Cos'è una memoria virtuale
Cos’è una memoria virtuale

Vantaggi della memoria virtuale

I principali vantaggi della memoria virtuale includono:

  • Libera il programmatore dal dover gestire lo spazio di memoria condiviso;
  • Aumenta la sicurezza dell’uso del programma allocando memoria;
  • Contiene una capacità di contenere più memoria di quanta possa essere fisicamente disponibile in un computer.

Proprietà della memoria virtuale

La memoria virtuale semplifica la programmazione delle applicazioni:

  • Nascondere la frammentazione della memoria fisica;
  • Eliminando la necessità di un programma che gestisca gli overlay in modo esplicito;
  • Quando ogni processo viene eseguito nel proprio spazio di indirizzi dedicato, non è necessario spostare il codice del programma o accedere alla memoria con i relativi indirizzi.

Quasi tutte le implementazioni di memoria virtuale dividono lo spazio degli indirizzi virtuali in pagine, blocchi di indirizzi di memoria virtuale adiacenti. Quando una macchina è in esecuzione sulla memoria virtuale, vengono utilizzati i metodi di organizzazione del segmento di memoria e della pagina.

Organizzazione della memoria delle pagine

Nell’organizzazione della pagina, tutte le risorse di memoria, sia operative che esterne, vengono presentate all’utente come un tutt’uno. L’utente lavora con lo spazio degli indirizzi condiviso e non pensa se la memoria viene utilizzata: operativa o esterna, e questa memoria condivisa è chiamata virtuale (simulata).

La memoria virtuale è suddivisa in pagine che contengono un certo numero fisso di celle di memoria. In questo caso una pagina della memoria matematica non può essere più grande o più piccola delle altre, tutte le pagine devono essere uguali in numero di celle. Le dimensioni tipiche della pagina sono 256, 512, 1024, 2048 byte o più (numeri multipli di 256).

Vantaggi della memoria virtuale con l’organizzazione delle pagine

  • Ha una capacità di memoria sufficiente indirizzata direttamente.
  • La quantità di memoria può essere contata in centinaia di megabyte (e persino gigabyte).
  • Il file SWAP creato viene posizionato su disco ed emula la RAM. In questo caso, l’utente non pensa a dove sarà posizionato il “pezzo” del suo programma da cui ha appena lavorato.
  • I programmi utente possono essere inseriti gratuitamente in qualsiasi pagina[2].
  • Aumenta il livello di lavoro di più programmi.
  • Con l’organizzazione della memoria virtuale con organizzazione delle pagine, l’utente ha una reale opportunità di caricare più programmi in memoria in modo che la macchina possa elaborare i programmi contemporaneamente

Carenze di memoria virtuale con l’organizzazione della pagina

  • Il principale svantaggio della memoria virtuale è la quantità di tempo che la macchina impiega per accedere alla memoria esterna.
  • Estrarre le informazioni necessarie dalle celle di memoria non è molto difficile e richiede tempo.
  • Questo non è il caso del disco: per trovare le informazioni necessarie, prima bisogna “ruotare” il disco, poi trovare la traccia necessaria, sulla traccia trovare un settore, cluster, e poi leggere le informazioni dei bit in l’OP.

Organizzazione della memoria virtuale della pagina del segmento

Questo metodo di organizzazione della memoria virtuale ha lo scopo di combinare i vantaggi dei metodi di gestione della memoria per pagine e per segmenti. In un tale sistema combinato, lo spazio degli indirizzi dell’utente è diviso in un numero di segmenti a discrezione del programmatore.

Ogni segmento, a sua volta, è suddiviso in pagine di dimensione fissa pari alla pagina di memoria fisica. Dal punto di vista del programmatore, l’indirizzo logico in questo caso è costituito dal numero del segmento e dal suo offset.

Ogni segmento è una sequenza di indirizzi da zero a un certo valore massimo. La differenza tra un segmento e una pagina è che la lunghezza del segmento può variare durante l’esecuzione. I segmenti, come qualsiasi struttura di memoria virtuale, possono essere collocati sia nella RAM che nella memoria esterna (supporto magnetico).

La memoria virtuale con organizzazione del segmento di pagina funziona come la memoria virtuale con l’organizzazione della pagina: se il segmento attualmente richiesto è assente nella RAM, quindi se è necessario lavorarci, viene preliminarmente spostato in OP.

L’organizzazione della memoria per le pagine dei segmenti richiede un’organizzazione hardware e software più complessa. L’organizzazione della memoria per segmenti richiede un’organizzazione più complessa di hardware e software.

Le tabelle della pagina

Il tabelle delle pagine sono utilizzati per convertire indirizzi virtuali in indirizzi fisici utilizzati dall’hardware di elaborazione delle istruzioni. Ogni voce della tabella delle pagine controlla se la pagina corrispondente è nella RAM.

Se è nella RAM, la voce della tabella delle pagine conterrà l’indirizzo di memoria effettivo in cui è memorizzata la pagina. Se è presente una sola tabella di pagine, diverse applicazioni in esecuzione contemporaneamente utilizzano parti diverse dello stesso intervallo di indirizzi virtuali.

Gestore della memoria virtuale

Questa parte del sistema operativo crea e gestisce le tabelle delle pagine. Se l’hardware emette un errore, Virtual Memory Manager accede alla memoria secondaria, restituisce la pagina che ha l’indirizzo virtuale che ha causato l’errore della pagina, aggiorna le tabelle sulla pagina per riflettere la posizione fisica dell’indirizzo virtuale e indica il meccanismo di traduzione per riavviare la richiesta.

Quando tutta la memoria fisica è già in uso, Virtual Memory Manager deve rilasciare le pagine nella memoria principale per memorizzare la pagina che è stata caricata. Utilizza uno dei tanti algoritmi per sostituire le pagine meno utilizzate per liberarle.

Leave a Reply