Logo NEXUS

NEXUS didattica

← Torna indietro
Informatica / Lezione Teorica

Segmentazione (Segmentation)

Gestione della memoria basata sulla visione logica del programma (funzioni, array, stack, heap) tramite segment table.

1. Cos'è la Segmentazione?

La segmentazione è una tecnica di gestione della memoria che supporta la visione logica dell'utente e del programmatore. Un programma non è visto come una sequenza lineare di byte o pagine di dimensione fissa, ma come una raccolta di segmenti (es. codice principale, funzioni, strutture dati, heap, stack, tabelle dei simboli).

2. La Segment Table e Controllo dei Limiti

Ogni segmento possiede un nome (o numero identificativo $s$) e una lunghezza. Per mappare gli indirizzi logici in fisici, il sistema sfrutta una Segment Table composta da due elementi fondamentali per ciascun segmento:

Traduzione dell'Indirizzo e Controllo: Dato un indirizzo logico $(s, d)$ dove $s$ è il numero di segmento e $d$ è lo spostamento (offset), la MMU verifica che $d < \text{Limite}_s$. Se valido, l'indirizzo fisico è: $$\text{Indirizzo Fisico}=\text{Base}_s + d$$

3. Simulatore Interattivo: Segment Table e MMU

Seleziona un segmento logico e inserisci un offset per testare il controllo dei limiti e la traduzione in indirizzo fisico.

mmu-segmentation@nexus-core:~# Segment Translation & Protection Unit
> In attesa di input per la verifica del segmento...