giovedì 11 marzo 2010

LA GESTIONE DELLA MEMORIA

di Francesca Carotenuto

Un programma,prima di essere eseguito,deve essere caricato nella memoria centrale:gli deve cioè essere assegnata una certa quantità di byte di memoria centrale in grado di contenere la sua zona dati(le variabili) e la sua zona istruzioni scritte in un linguaggio macchina.
Il gestore della memoria è formato dai moduli del sistema operativo che si occupano di:
- tenere aggiornato lo stato di ogni locazione di memoria;
- assegnare la memoria centrale ai processi che ne fanno richiesta;
- gestire il recupero della memoria centrale quando un processo termina.
Poiché la memoria centrale è una risorsa limitata,processi molto onerosi potrebbero non essere eseguibili. Con la tecnica della memoria virtuale si accettano lavori di qualsiasi dimensione e si portano in memoria centrale solo quelle porzioni che devono essere eseguite.
È come avere a disposizione una memoria di capacità di gran lunga superiore a quella effettiva,ecco perché virtuale.
Esistono due tecniche per la gestione della memoria virtuale:
• richiesta di pagine;
• segmentazione.

RICHIESTA DI PAGINE

Il meccanismo della paginazione prevede che la memoria centrale sia suddivisa in blocchi aventi tutti la stessa dimensione e lo spazio degli indirizzi di un programma è suddiviso logicamente in parti chiamate pagine.
I blocchi hanno la stessa dimensione delle pagine,in genere multipli di 2k e l’allocazione del programma avviene quando in memoria centrale esiste almeno un blocco libero.
Quando il sistema operativo deve caricare una pagina nella memoria centrale si possono verifica due casi.
Caso 1
Nella memoria centrale ci sono blocchi liberi:il sistema operativo può caricare effettivamente la pagina dalla memoria di massa alla memoria centrale.
Caso 2
Nella memoria centrale non ci sono blocchi liberi:prima di caricare la pagina il sistema operativo deve scegliere,fra tutte le pagine presenti nella memoria centrale quale trasferire nella memoria di massa per liberare un blocco e questo può avvenire attraverso:
1. FIFO: viene rimpiazzata la pagina che da più tempo risiede in memoria centrale,cioè la più vecchia. La prima pagina a entrare sarà la prima a uscire in caso di necessità.
2. ALGORITMO LRU(Last Recently Used): viene rimpiazzata la pagina che da più tempo non è usata poiché presumibilmente non sarà richiesta entro breve tempo.

SEGMENTAZIONE

In un sistema a memoria virtuale basato sulla segmentazione il programma viene diviso in porzioni,dette segmenti,che corrispondono a unità logiche definite dal programmatore come ad esempio un array,una tabella,una routine.
Lo spazio degli indirizzi di un programma si può allora pensare composto da diversi segmenti che vengono caricati in memoria centrale solo quando se ne presenta la necessità.

Nessun commento:

Posta un commento