La gestione della memoria

Materie:Riassunto
Categoria:Sistemi
Download:241
Data:08.06.2007
Numero di pagine:4
Formato di file:.doc (Microsoft Word)
Download   Anteprima
gestione-memoria_4.zip (Dimensione: 6.48 Kb)
trucheck.it_la-gestione-della-memoria.doc     34 Kb
readme.txt     59 Bytes


Testo

La Gestione della Memoria
Introduzione
Nei sistemi di elaborazione moderni la memoria centrale è il punto cardine di tutte le operazioni, tant’è vero che durante il colloquio tra i diversi blocchi di una macchina il passaggio dalla RAM è obbligatorio.
Abbiamo diviso la RAM in livelli generici:
• livello 5 viene trattato il linguaggio orientato al problema grazie all’utilizzo di nomi simbolici;
• nel livello 4, cioè a livello di linguaggio assemblatore, conosciamo l’indirizzo rilocabile ma non il segmento, poi avviene la traduzione da parte dell’assemblatore
• al livello 3 (livello di Sistema Operativo) in cui il punto individuato diventa precisamente individuabile
• dal livello 2, il livello Macchina Convenzionale.
• L’ultimo livello è il livello della monoprogrammazione che permette di conoscere gli indirizzi fisici.
La Monoprogrammazione
Il primo tipo di allocazione che abbiamo analizzato è quello relativo ai sistemi strettamente monoprogrammati, in sostanza, i più semplici PC, nella quale è consentita solo l’esecuzione di un programma alla volta.
In questo tipo di sistema tutte le risorse sono dedicate al singolo programma. La memoria centrale è suddivisa in tre aree: una dedicata alla allocazione del Sistema Operativo, una dedicata al programma ed un’eventuale area libera se il programma non esaurisce la capienza della memoria.
Lo svantaggio più grande che questo tipo di allocazione presenta si ha quando il programma da eseguire necessita di un’area di memoria maggiore rispetto a quello a disposizione, in questo caso il programma non potrà essere eseguito.
Allocazione Partizionata
Si parla di allocazione partizionata quando si ha a che fare con un sistema operativo multiprogrammato.
L’allocazione partizionata si divide in Statica e Variabile.
Partizionamento Statico
In questo tipo di partizionamento la memoria è suddivisa a priori in partizioni di dimensioni prefissate. Quando arriva un nuovo programma che deve essere caricato, il sistema operativo si adopera nel cercare una partizione sufficientemente grande da contenere tale programma.
In sostanza, per ogni singola partizione di memoria si alloca secondo i criteri già spiegati nella monoprogrammazione. Questa tecnica prevede un fenomeno spiacevole chiamato frammentazione in quanto i programmi allocati non occupano per intero la partizione a loro destinata, ma resterà sempre un piccolo spazio che non verrà utilizzato né dal programma proprietario, né dagli altri programmi.
Partizionamento Variabile
Il secondo metodo di partizione è il partizionamento variabile, in questo caso la memoria viene partizionata in modo diverso dalla precedente tecnica descritta, infatti il sistema operativo provvede a creare partizioni di dimensioni adatte a contenere il programma che si sta caricando. Nella partizione variabile conviene allocare uno dietro l’altro i programmi presi in considerazione, rimarranno però delle zone di memoria non utilizzate chiamate frammentazioni, per eliminare tali problemi è preferibile riunire tutti i programmi: ogni qualvolta eseguiamo un programma, o a intervalli di tempi regolari, o quando non si riesce ad allocare.
La strategia di allocazione prevede tre metodi diversi:
First Fit -> Il programma viene inserito nella prima partizione sufficiente a contenerlo.
Best Fit -> Il programma viene inserito nella porzione di memoria di dimensioni più simile rispetto a quella del programma.
Worst Fit -> Il programma viene inserito nella partizione più grande disponibile in quel momento; questo viene fatto allo scopo di generare frammenti abbastanza grandi e capienti per altri programmi.
Allocazione Paginata
La paginazione consiste nella suddivisione della memoria in aree (chiamate appunto “pagine”), tutte della stessa dimensione. Quando si decide di allocare una serie di programmi con questo metodo non è detto che le pagine dei vari programmi vengano disposte in sequenza.
Quando si decide di allocare la memoria con questa strategia in memoria vengono create delle tabelle che hanno l’obiettivo di permettere una migliore gestione del metodo.
La prima di queste tabelle è la JT (Job Table), la quale contiene l’identificativo del programma (ID PROG), la dimensione, l’identificativo della tabella PMT e lo stato (ovvero, se allocato o no).
Altra tabella la PMT, la quale consiste nella mappa delle pagine; qui viene indicato l’indirizzo delle pagine che compongono il programma. Infine abbiamo la MBT che ha lo scopo di rappresentare lo stato della memoria in un determinato istante di tempo. Il vantaggio principale relativo a questa tecnica consiste nella limitazione della frammentazione, il principale svantaggio consiste nei limiti di dimensione.
La Memoria Virtuale
La memoria virtuale permette di eseguire programmi che richiedono una dimensione sulla RAM che realmente non abbiamo. I vantaggi di questa tecnica sono l’illimitatezza della dimensione della memoria fisica, la possibilità di effettuare più efficacemente la multiprogrammazione, la possibilità di sfruttare meglio le altre risorse procurate dall’elaboratore. Per dare l’illusione di avere una memoria infinita si utilizzano il principio di località temporale (locazioni di memoria usate recentemente che saranno usate presto) e il principio di località spaziale (locazioni di memoria che probabilmente hanno struttura sequenziale).
Verranno quindi inseriti in memoria solo quei pezzi di programma interessati dall’esecuzione.
I problemi di questo metodo si trovano nello spezzettare il programma, nel caricare i pezzi utili all’esecuzione e nello svuotamento di pezzi inutili dalla memoria.
Gestione Virtuale Segmentata
Nella gestione virtuale segmentata i programmi vengono suddivisi in segmenti di dimensione variabile secondo la logica del programma.
Per la suddivisione in pagine di un programma si usano i criteri fisici mentre per quella in segmenti si utilizzano criteri logici.
I principali vantaggi di questa tecnica sono l’eliminazione della frammentazione, permette la crescita dinamica del segmento, facilita la condivisione dei segmenti, controlla più rigorosamente gli accessi, linking e loading dinamico.
Purtroppo però aumenta la complessità della gestione e i problemi riguardanti le dimensioni di memoria.
Gestione Virtuale Paginata
Quando si alloca in modalità paginata può succedere di avere, come già detto, dei limiti di dimensione i quali non consentono di allocare completamente il programma in memoria; per questo motivo subentra la memoria virtuale la quale fa riferimento ad una nuova tabella della memoria di massa (l’Hard Disk) del segmento di file del programma allocato.
Gestione Segmentata – Paginata
La suddivisione del programma avviene dividendo il programma in segmenti, i quali a loro volta saranno suddivisi in pagine, in modo da suddividere il programma logicamente.

Esempio