Torna alla pagina di Sistemi Operativi
:: Appunti caotici ::
Lezione 2
Segmentazione
Pag 1
Sommario
...
Pag 2
Problemi
La paginazione non permette di tipizzare le varie porzioni di spazio di indirizzamento logico (distinguendo ad esempio tra codice, dati globali, heap e stack), il che diventa un problema quando ho programmi grossi e completi e voglio effettuare dei controlli o delle manutenzioni mirate su parti specifiche.
Obiettivi (1)
...
Pag 3
Obiettivi (2)
Supportare la visione dello spazio di indirizzamento dei processi dal punto di vista dell'utente, dando una visione semantica (un significato) alle varie porzioni dei processi.
Supportare la tipizzazione di porzioni dello spazio di indirizzamento logico e il controllo degli accessi e delle operazioni ammissibili in base al tipo. Nella paginazione non ha questo aumatismo, non potendo definire un tipo cui applicare determinate proprietà.
Obiettivi (3)
Supportare la condivisione di porzioni dello spazio di indirizzamento tra diversi processi in modo semplice e nativo (senza ispezione del codice).
Pag 4
Segmentazione (1)
Il concetto di segmentazione si pone su un livello più astratto, di tipo logico.
Ho una memoria centrale fisica divisa in segmenti fisici (frame) di dimensione eventualmente diversa, ed ho lo spazio di indirizzamento del processo diviso in segmenti logici (segmenti) ovvero porzioni di memoria con una propria consistenza logica.
Segmentazione (2)
...
Pag 5
Segmentazione (3)
Per quanto riguarda l'indirizzo fisico, nella tabella dei segmenti di un processo viene definito come
Indirizzo fisico = (indirizzo di base del frame bf, spiazzamento nel frame d)
Non basta più dire qual è il numero di frame, perché non sono più uguali come nella paginazione. Verrebbero comunque trovati anche senza questa informazione aggiuntiva, ma più lentamente.
Segmentazione (4)
Dallo schema si evince che se lo spiazzamento d è maggiore del limite indicato nella tabella dei segmenti allora non si può procedere con la computazione perché sono "andato fuori" dal segmento. Viene sollevata una trap che notifica l'errore di indirizzamento.
Pag 6
Segmentazione (5)
Notare che l'ordine con cui sono assegnati gli indici ai segmenti nello spazio di indirizzo logico non hanno nessuna importanza.
Gestione della segmentazione (1)
...
Pag 7
Gestione della segmentazione (2)
...
Gestione della segmentazione (3)
Il programmatore configura implicitamente la divisione del processo in segmenti mediante la strutturazione del programma in moduli compilati separatamente e nell'uso di librerie. Da un punto di vista pratico non siamo nella gestione della configurazione overlay, perché il lavoro viene svolto automaticamente dal compilatore. Sono infatti il compilatore e il linker che generano le informazioni sulla tipizzazione.
Pag 8
Gestione della segmentazione (4)
...
Supporto hardware: MMU
L'hardware dedicato per il supporto alla segmentazione è ancora chiamato Memory Management Unit (MMU), stavolta orientata alla gestione dei segmenti.
Pag 9
Protezione dei segmenti
Protezione implicita: un processo può generare indirizzi solo nel suo spazio di indirizzamento e può accedere solo ai suoi segmenti
Protezione esplicita: uso dei bit di protezione che funzionano nello stesso modo visto per la paginazione
Condivisione dei segmenti
...
Pag 10
Frammentazione della memoria
...
Torna alla pagina di Sistemi Operativi