Concetti Chiave
- La memoria virtuale aumenta l'illusione di una memoria centrale più grande attraverso l'uso della memoria di massa.
- La gestione delle pagine prevede la suddivisione di programmi in pagine e della memoria in blocchi, caricando le pagine su richiesta.
- In caso di "page fault", il sistema operativo deve caricare la pagina mancante dalla memoria di massa nella memoria centrale.
- Le partizioni possono essere fisse o variabili, creando frammentazione che può essere gestita tramite tecniche di memoria virtuale.
- Le tecniche di assegnazione delle partizioni, come first-fit e best-fit, mirano a ottimizzare l'uso della memoria riducendo la frammentazione.
La memoria virtuale è l'illusione di avere una memoria centrale più grande di quella effettiva, per incrementarla si utilizza la memoria di massa.
Gestione delle pagine e dei blocchi
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.
Algoritmi di sostituzione delle pagine
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.
Partizioni fisse e variabili
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.
Tecniche di assegnazione delle partizioni
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.
Domande da interrogazione
- Cos'è la memoria virtuale e come viene incrementata?
- Qual è la strategia di gestione delle pagine e dei blocchi?
- Quali algoritmi vengono utilizzati per la sostituzione delle pagine?
- Qual è la differenza tra partizioni fisse e variabili?
La memoria virtuale è l'illusione di avere una memoria centrale più grande di quella effettiva, e per incrementarla si utilizza la memoria di massa.
La strategia prevede di suddividere il programma in pagine e la memoria in blocchi della stessa dimensione, con ogni blocco che contiene una pagina. Alcune pagine possono rimanere in memoria di massa e vengono caricate su richiesta.
Gli algoritmi utilizzati includono FIFO (primo ad entrare, primo ad uscire), LRU (pagina non utilizzata da più tempo) e la sostituzione di pagine non modificate, ma la frammentazione non viene eliminata, solo ridotta.
Le partizioni fisse sono suddivise in porzioni di dimensione uguale o diversa, mentre le partizioni variabili vengono create in base alla richiesta del processo, utilizzando tecniche come first-fit e best-fit, entrambe generando frammentazione.