Logo NEXUS

NEXUS didattica

← Torna indietro
Informatica / Lezione Teorica

Memoria Virtuale

Separazione della memoria logica dell'utente dalla memoria fisica, demand paging, gestione dei page fault e algoritmi di rimpiazzamento.

1. Cos'è la Memoria Virtuale?

La memoria virtuale è una tecnica che consente l'esecuzione di programmi che non sono interamente contenuti nella memoria RAM fisica. Essa realizza una separazione tra lo spazio degli indirizzi logici a disposizione del processo e la memoria fisica sottostante, permettendo di eseguire applicazioni più grandi della RAM disponibile sfruttando lo spazio di archiviazione di massa (spazio di swap o file di paginazione).

2. Demand Paging e Page Fault

Il meccanismo più comune per implementare la memoria virtuale è il Demand Paging (paginazione a richiesta):

Tempo Effettivo d'Accesso (Effective Access Time - EAT): Calcolato tenendo conto della probabilità di page fault $p$ e del costo elevato in termini di cicli di clock richiesto per caricare la pagina da disco: $$\text{EAT} = (1 - p) \times \text{accesso\_memoria} + p \times (\text{tempo\_page\_fault})$$

3. Simulatore Interattivo: Gestione di un Page Fault

Seleziona una pagina virtuale per simulare il comportamento della MMU e l'eventuale attivazione di un Page Fault con caricamento da disco.

mmu-virtual@nexus-core:~# Demand Paging & Page Fault Simulator
> In attesa di richieste di accesso alla memoria virtuale...