1. Introduzione alla Memoria Principale
La memoria centrale (RAM) è una risorsa critica gestita direttamente dal sistema operativo. Il suo scopo principale è mantenere i programmi in esecuzione e i dati associati prontamente accessibili alla CPU. Per isolare i processi e garantire la protezione della memoria, si distingue tra indirizzi logici (generati dalla CPU) e indirizzi fisici (le celle effettive della RAM).
2. Tecniche di Allocazione e Paginazione
Nei sistemi moderni si passa da un'allocazione contigua (che soffre di frammentazione esterna) a tecniche non contigue:
- Paginazione (Paging): La memoria fisica è suddivisa in blocchi fissi chiamati frame (cornici), mentre la memoria logica dei processi è divisa in blocchi della stessa dimensione chiamati page (pagine). Una tabella delle pagine (Page Table) mappa ogni pagina logica sul rispettivo frame fisico.
- Segmentazione: Divide il programma in moduli logici (funzioni, array, stack, heap) di dimensioni variabili riflettendo la visione dell'utente/programmatore.
- Memoria Virtuale: Consente l'esecuzione di programmi più grandi della RAM fisica sfruttando lo spazio di swap su disco tramite il meccanismo del demand paging e la gestione dei page fault.
3. Simulatore Interattivo: Tabella delle Pagine
Inserisci un numero di pagina logica (0, 1 o 2) con una dimensione pagina di 4 KB (4096 byte) per calcolare la traduzione tramite la Tabella delle Pagine del sistema.