Sapiens 3012 punti

Memoria virtuale e partizione

La memoria virtuale è l'illusione di avere una memoria centrale più grande di quella effettiva, per incrementarla si utilizza la memoria di massa.
La strategia che si attua è quella di suddividere il programma in pezzi chiamati pagine e la memoria in blocchi, della stessa dimensione delle pagine.
Ogni blocco conterrà una pagina.
In ogni istante non tutte le pagine avranno assegnato un blocco fisico, perchè, alcune di esse rimangono in memoria di massa e saranno caricate sulla memoria centrale su richiesta.
Se durante l'esecuzioni un istruzione non si trova in memoria centrale si verifica un "page falt" e il sistema operativo dovrà provvedere a caricare in memoria centrale la pagina richiesta.
Si possono verificare due casi:
- nella memoria centrale ci sono blocchi disponibili, quindi, il sistema operativo dovrà aggiornare la tabella in modo opportuno per poter indicare lo stato della memoria;

- nella memoria centrale non ci sono blocchi disponibili, quindi, il sistema operativo dovrà scegliere la pagina che sarà portata fuori dalla memoria prima di caricare quella richiesta.
Gli algoritmi utilizzati possono essere:
- FIFO, primo ad entrare e il primo ad uscire;
- LRU, pagina da più tempo che non viene utilizzata;
- rimpiazzare la piazza che non ha subito le modifiche in quanto queste pagine non richiedono scritture su disco.
in ogni caso la frammentazione non viene eliminata ma si riduce all'ultima pagina di ogni programma.

Partizione
La partizione è un pezzo di memoria.
La partizione può essere di due tipi: fissa o variabile.
Il metodo a partizione fissa consiste nel suddividere la memoria in un numero prefissato di porzioni di uguale dimensione o dimensione diversa.
ogni partizione in maniera esclusiva conterrà un processo. Tale tecnica crea la frammentazione cioè la disponibilità di tanti piccoli spazi che a causa dell'esclusività dell'assegnazione non possono essere utilizzati.
Con la partizione variabile ogni partizione viene creata in base alla richiesta del processo prelevandola da una tabella delle aree libere gestita secondo due criteri:

- first-fit;
- best-fit.

Queste tecniche servono per assegnare una partizione a un processo.
La first-fit assegna la prima partizione libera di dimensione maggiore o uguale alla dimensione del lavoro.
La best-fit assegna la partizione la cui dimensione più si avvicina alla dimensione del lavoro.
Entrambe le tecniche, partizione fissa e partizione variabile, generano la frammentazione che può essere risolta adottando la tecnica della memoria virtuale.

Registrati via email