Elenet.net
+1 voto
spiega a cosa serve l'area di swap, la paginazione e la segmentazione
quesito posto 29 Marzo 2017 in Tecnologie e Prog. di Sistemi Informatici e Tlc da Laura Guccione Corsista (149 punti)
  

1 Risposta

–1 voto

SWAP

♦ I sistemi operativi che adottano la tecnica della memoria virtuale mantengono nella memoria di massa del computer (per esempio il disco) un’area – denominata area di swap – per la memorizzazione di tutte le pagine utilizzate dal gestore della memoria. Quest’area è organizzata in modo da identificare la posizione di ogni pagina – spesso chiamata frame –
mediante un indice numerico.

♦ memoria di Swap(ovvero una partizione sull’HDD che estende la capacità della RAM); quando un processo viene inserito nell’area di Swap, questa operazione viene definita “Swap-OUT”, mentre l’operazione inversa (ovvero quando un processo viene estratto dall’area di Swap) viene definita “Swap-IN”

♦ la memoria virtuale sfrutta il meccanismo della swap, un’area dell’ HDD che estende la capacità della RAM. Quest’ultima viene configurata quando viene installato il sistema operativo per la prima volta.

PAGINAZIONE

♦ Tutti i processori moderni contengono un componente hardware denominato “MMU” (Memory Management Unit) che agevola il s.o. nel compito di garantire un’efficace, efficiente e sicura gestione della memoria.
La MMU, insieme al s.o., gestisce l’assegnazione dei processi nella memoria.
Una di queste tecniche è la “paginazione”, dopo la memoria viene suddivisa in parti uguali chiamate “pagine”.

♦ Il problema della frammentazione viene risolto dai processori e dai sistemi operativi moderni impiegando la tecnica della paginazione della memoria: la memoria principale viene «vista» dal processore come un array di settori aventi tutti la stessa dimensione predefinita. Il modulo di gestione della memoria del sistema operativo assegna a ogni processo in esecuzione un numero di pagine sufficiente per contenere il codice e i dati, ma esse non necessariamente sono contigue.

♦ Il problema della frammentazione è completamente risolto dalla tecnica della paginazione: alla terminazione di un processo
il gestore della memoria rende nuovamente disponibili tutte le pagine in precedenza utilizzate dal processo stesso; al momento della creazione di un nuovo processo il gestore della memoria dispone per l’assegnazione di tutte le pagine di memoria libere, cioè di tutto lo spazio di memoria effettivamente disponibile.

♦ Gli obiettivi della paginazione sono i seguenti:
- mantenere in memoria solo le parti necessarie;
- gestire ogni volta solo piccole porzioni di memoria;
- non sprecare spazio evitando la frammentazione;
- poter utilizzare porzioni di memoria non contigue per lo stesso programma;
- non porre vincoli al programmatore (come nelle overlay).
♦ Nella paginazione sia il programma sia la memoria centrale vengono suddivisi in pagine di
dimensione fissa:
- la memoria fisica in blocchi chiamati frame o pagine fisiche;
- il programma in blocchi di uguale dimensione detti pagine (o pagine logiche).

SEGMENTAZIONE

♦ Nella paginazione il programma viene suddiviso in pagine a prescindere dal suo contenuto, cioè, per esempio, senza distinguere l’area del codice da quella dei dati: questo impedisce di fatto che si possa condividere il codice su due istanze dello stesso programma, obbligando a caricare in memoria più volte lo stesso codice. Per ovviare a questo problema si utilizza la segmentazione: è uno schema di gestione della memoria centrale che mantiene la separazione tra memoria logica e fisica come nella paginazione, ma suddivide quest’ultima in segmenti di dimensione variabile. L’idea di base è quella di suddividere la memoria centrale nello stesso modo in cui sono divisi logicamente i programmi, cioè in entità con diverse funzioni, e quindi associare a
ogni modulo software un segmento di memoria che può contenere una procedura, un array, uno stack o un insieme di variabili: un segmento è tipizzato ed è caricato in un frame di medesima dimensione.

♦ Nella segmentazione la memoria centrale fi sica è divisa in segmenti fisici (frame) di dimensioni diverse, mentre lo spazio di indirizzamento del processo è diviso in segmenti logici (segmenti).

♦ Con la segmentazione si ottengono i seguenti vantaggi:
- rispetto alla paginazione, la gestione di strutture dati dinamiche, che per loro natura
crescono o diminuiscono, è semplificata;
- viene facilitata la possibilità di condivisione di segmenti tra alcuni processi;
- si semplifica il linking di procedure compilate separatamente;
- ogni segmento può avere un diverso tipo di protezione.

♦ Un problema caratteristico della segmentazione è il frazionamento della memoria: questo avviene nel caso in cui i segmenti vengano continuamente caricati e sostituiti in memoria generando zone inutilizzate (frammentazione esterna).

♦ L’hardware dedicato per il supporto alla segmentazione è anche in questo caso la MMU,
stavolta orientata alla gestione dei segmenti.

♦ Questa tecnica è stata proposta per sfruttare contemporaneamente i vantaggi della paginazione e della segmentazione:
- dalla paginazione si prende l’identificazione dei frame liberi, la scelta del frame libero in cui caricare una pagina, senza alcuna frammentazione;
- dalla segmentazione si prende la condivisione di porzioni di memoria, la verifica degli accessi e delle operazioni.

risposta inviata 29 Marzo 2017 da ChiaraCarli Corsista (49 punti)

Domande correlate

+1 voto
3 risposte
quesito posto 29 Marzo 2017 in Tecnologie e Prog. di Sistemi Informatici e Tlc da Laura Guccione Corsista (149 punti) | 159 visite
0 voti
0 risposte
quesito posto 30 Marzo 2023 in Tecnologie e Prog. di Sistemi Informatici e Tlc da dalila05 (36 punti) | 256 visite
778 domande
1,565 risposte
639 commenti
1,445 utenti