login LOGIN
CHIUDI chiudi
Il mio profilo

mostra
Hai dimenticato la password?
Inserisci l'indirizzo email di registrazione per reimpostare la password.
Segui le istruzioni che ti abbiamo inviato per posta elettronica.

Memoria virtuale, cos'è e come funziona

Ideata nella seconda metà degli anni '80, permette di ampliare la memoria di lavoro disponibile al sistema

Memoria RAM

Sino a non più di dieci anni fa, i prezzi per un banco di memoria RAM erano molto superiori (sia in termini assoluti sia in termini relativi se paragonati ai prezzi degli altri componenti informatici) rispetto a quelli attuali. Ogni singolo megabyte – ma anche ogni singolo kilobyte – di memoria doveva essere centellinato e utilizzato al meglio per non sprecare risorse: affianco a una rigida gerarchia da applicare ai processi in esecuzione, sono state introdotte tecniche informatiche atte a migliorare il funzionamento della macchina anche se a corto di spazio nella memoria di lavoro (o, al limite, anche nel caso questa fosse completamente occupata).

Una di queste, sicuramente la più famosa e nota anche ai non addetti ai lavori, è la memoria virtuale. La tecnica permette di allocare più informazioni nella memoria di lavoro rispetto allo spazio fisicamente a disposizione sui banchi di memoria. Sfruttando la potenza di calcolo della CPU, una porzione dello spazio di archiviazione presente nel disco rigido e un articolato sistema di traduzione di indirizzi di memoria fisici/virtuali, questa tecnica permette di estendere anche di parecchio lo spazio di memoria a disposizione del sistema.

 

RAM

 

Come funziona la memoria virtuale

La memoria di lavoro effettivamente installata nel sistema è solitamente divisa in piccoli blocchi – chiamati pagine – utilizzati per allocare le informazioni da processare. La pagina, grande solitamente 4 kilobyte, rappresenta la quantità minima di informazione allocata sulla RAM e processabile dalla CPU. Questo sistema, gestito grazie a una particolare unità di calcolo presente all'interno del processore del computer, la MMU (Memory Management Unit), permette di alternare i processi in esecuzione e di gestire carichi di lavori superiori a quelli teoricamente supportabili dalla sola memoria RAM installata.

 

Schema di funzionamento della memoria virtuale

 

Quando la memoria di lavoro è vicina all'esaurimento, le pagine di memoria relative a processi non in immediata esecuzione sono “parcheggiate” su una porzione del disco rigido (chiamata “memoria di swap”) allo scopo di fare spazio alle pagine contenenti dati in procinto di essere processati. Nel caso in cui le pagine allocate sulla memoria di swap dovessero rendersi necessarie per l'esecuzione di programmi, sarà compito del processore, tramite la sua unità MMU, andare a reperirle e caricarle nuovamente sulla memoria di lavoro.

Questo continuo interscambio di pagine tra la memoria RAM e la memoria di swap (con la CPU chiamata a fare il “vigile urbano”, deviando pagine da un indirizzo di memoria all'altro) permette di incrementare notevolmente la capacità di lavoro di una macchina andando però a scapito della velocità di elaborazione. Nel caso in cui lo scambio tra la memoria RAM e quella di swap diventi troppo intenso, ad esempio quando un numero troppo elevato di applicativi sta girando sul sistema, la macchina potrebbe andare incontro a sensibili rallentamenti che possono portare anche al blocco totale del sistema: è il cosiddetto fenomeno di thrashing.

Hardware e software

Affinché il sistema della memoria virtuale funzioni a dovere, è necessario uno stretto controllo dei processi coinvolti e una attenta gestione del flusso delle pagine da parte della CPU.

La partizione di disco rigido allocata a memoria di scambio, infatti, è vista dai vari programmi come un insieme di indirizzi virtuali ai quali poter fare riferimento in caso di “allocamento temporaneo” delle pagine. Il processore, grazie all'unità di gestione della memoria (la MMU), gestisce tutti gli indirizzi virtuali e segna sulle cosiddette “tabelle delle pagine” (page tables in inglese) la corrispondenza tra gli indirizzi e le pagine di memoria allocata. In questo modo, nel caso in cui delle pagine dovessero essere richiamate in memoria di lavoro, i programmi avranno vita facile a reperirle sulla memoria di swap.

 

Comparazione tra il funzionamento di un sistema senza e con memoria virtuale

 

La gestione delle tabelle è garantita da una cooperazione tra software e hardware della macchina: da un lato avremo il sistema operativo che manterrà e aggiornerà le tabelle ogni volta che un programma inoltrerà al sistema una richiesta di accesso alla memoria, dall'altro la CPU avrà il compito di smistare le varie pagine nei blocchi di memoria assegnati dal SO. Quando un programma effettua una richiesta, il sistema operativo si occuperà di allocare un numero sufficiente di pagine di memoria e aggiornerà la tabella delle pagine, inserendo i relativi indirizzi dei blocchi di memoria.

 

Schema di funzionamento della memoria virtuale

 

Nel caso in cui le richieste dei programmi eccedano lo spazio fisicamente a disposizione nella RAM, il sistema operativo dovrà fare in modo di liberare porzioni sufficienti della memoria per rispondere alla esigenze dei nuovi processi. Ad esempio, nel caso in cui un programma faccia richiesta per accedere a 250 megabyte di RAM a fronte di uno spazio disponibile di 150 megabyte, il sistema operativo dovrà attivare la memoria di swap, dove allocare parte dei dati presenti nella RAM e appartenenti a programmi attualmente non in esecuzione. Se, ad esempio, l'utente volesse lanciare il programma Word ma non ci fisse spazio a sufficienza nella RAM, il sistema operativo eliminerebbe dalle tabelle delle pagine gli indirizzi di Photoshop, programma caricato in memoria ma non in esecuzione. Queste pagine sarebbero spostate dalla CPU (per tramite dell'unità di gestione della memoria, la MMU) nella memoria di swap e richiamate nella RAM solo nel caso in cui l'utente decidesse effettivamente di avviare Photoshop.

A cura di Cultur-e
Addestramento IA non consentito: É assolutamente vietato l’utilizzo del contenuto di questa pubblicazione, in qualsiasi forma o modalità, per addestrare sistemi e piattaforme di intelligenza artificiale generativa. I contenuti sono coperti da copyright.
Whatsapp
Segui le ultime notizie sul nostro canale Whatsapp
Immagine principale del blocco
Segui le ultime notizie sul nostro canale Whatsapp
Fda gratis svg
Iscriviti al canale gratuito

Iscriviti
all'area personale

Per ricevere Newsletter, scaricare eBook, creare playlist vocali e accedere ai corsi della Fastweb Digital Academy a te dedicati.