Sistema operativo - Memoria virtuale
Un computer può indirizzare più memoria rispetto alla quantità fisicamente installata nel sistema. Questa memoria extra viene effettivamente chiamatavirtual memory ed è una sezione di un disco rigido che è impostata per emulare la RAM del computer.
Il principale vantaggio visibile di questo schema è che i programmi possono essere più grandi della memoria fisica. La memoria virtuale ha due scopi. Innanzitutto, ci consente di estendere l'uso della memoria fisica utilizzando il disco. In secondo luogo, ci consente di avere la protezione della memoria, perché ogni indirizzo virtuale viene tradotto in un indirizzo fisico.
Di seguito sono riportate le situazioni in cui non è necessario caricare completamente il programma nella memoria principale.
Le routine di gestione degli errori scritti dall'utente vengono utilizzate solo quando si è verificato un errore nei dati o nel calcolo.
Alcune opzioni e funzionalità di un programma possono essere utilizzate raramente.
A molte tabelle viene assegnata una quantità fissa di spazio degli indirizzi anche se viene effettivamente utilizzata solo una piccola quantità della tabella.
La capacità di eseguire un programma che è solo parzialmente in memoria contrasterebbe molti vantaggi.
Sarebbe necessario un numero inferiore di I / O per caricare o scambiare ogni programma utente in memoria.
Un programma non sarebbe più vincolato dalla quantità di memoria fisica disponibile.
Ogni programma utente potrebbe richiedere meno memoria fisica, più programmi potrebbero essere eseguiti contemporaneamente, con un corrispondente aumento dell'utilizzo della CPU e del throughput.
I moderni microprocessori destinati all'uso generico, un'unità di gestione della memoria o MMU, sono incorporati nell'hardware. Il compito della MMU è tradurre gli indirizzi virtuali in indirizzi fisici. Di seguito viene fornito un esempio di base:
La memoria virtuale è comunemente implementata dalla paginazione a richiesta. Può anche essere implementato in un sistema di segmentazione. La segmentazione della domanda può essere utilizzata anche per fornire memoria virtuale.
Paging su richiesta
Un sistema di paging a richiesta è abbastanza simile a un sistema di paging con scambio in cui i processi risiedono nella memoria secondaria e le pagine vengono caricate solo su richiesta, non in anticipo. Quando si verifica un cambio di contesto, il sistema operativo non copia nessuna delle pagine del vecchio programma sul disco o nessuna delle pagine del nuovo programma nella memoria principale Invece, inizia semplicemente a eseguire il nuovo programma dopo aver caricato la prima pagina e lo recupera pagine del programma man mano che vengono referenziati.
Durante l'esecuzione di un programma, se il programma fa riferimento a una pagina che non è disponibile nella memoria principale perché è stata sostituita un po 'prima, il processore tratta questo riferimento di memoria non valido come un page fault e trasferisce il controllo dal programma al sistema operativo per richiedere di nuovo la pagina in memoria.
Vantaggi
Di seguito sono riportati i vantaggi del cercapersone a richiesta:
- Ampia memoria virtuale.
- Uso più efficiente della memoria.
- Non ci sono limiti al grado di multiprogrammazione.
Svantaggi
Il numero di tabelle e la quantità di overhead del processore per la gestione degli interrupt di pagina sono maggiori rispetto al caso delle semplici tecniche di gestione a pagine.
Algoritmo di sostituzione della pagina
Gli algoritmi di sostituzione delle pagine sono le tecniche con cui un sistema operativo decide quali pagine di memoria sostituire, scrive su disco quando è necessario allocare una pagina di memoria. Il paging si verifica ogni volta che si verifica un errore di pagina e una pagina libera non può essere utilizzata per la contabilità a scopo di allocazione per motivo che le pagine non sono disponibili o il numero di pagine libere è inferiore alle pagine richieste.
Quando si fa nuovamente riferimento alla pagina che è stata selezionata per la sostituzione ed è stata paginata, deve essere letta dal disco e ciò richiede il completamento dell'I / O. Questo processo determina la qualità dell'algoritmo di sostituzione della pagina: minore è il tempo di attesa per i page-in, migliore è l'algoritmo.
Un algoritmo di sostituzione della pagina esamina le informazioni limitate sull'accesso alle pagine fornite dall'hardware e cerca di selezionare quali pagine devono essere sostituite per ridurre al minimo il numero totale di pagine perse, bilanciandolo con i costi di archiviazione primaria e il tempo del processore dell'algoritmo si. Esistono molti algoritmi di sostituzione della pagina diversi. Valutiamo un algoritmo eseguendolo su una particolare stringa di riferimento di memoria e calcolando il numero di page fault,
Stringa di riferimento
La stringa di riferimenti alla memoria è chiamata stringa di riferimento. Le stringhe di riferimento vengono generate artificialmente o tracciando un dato sistema e registrando l'indirizzo di ogni riferimento di memoria. Quest'ultima scelta produce un gran numero di dati, dove notiamo due cose.
Per una data dimensione di pagina, dobbiamo considerare solo il numero di pagina, non l'intero indirizzo.
Se abbiamo un riferimento a una pagina p, quindi qualsiasi riferimento immediatamente successivo alla pagina pnon causerà mai un errore di pagina. La pagina p sarà in memoria dopo il primo riferimento; i riferimenti immediatamente seguenti non saranno critici.
Ad esempio, considera la seguente sequenza di indirizzi: 123,215,600,1234,76,96
Se la dimensione della pagina è 100, la stringa di riferimento è 1,2,6,12,0,0
Algoritmo First In First Out (FIFO)
La pagina più vecchia nella memoria principale è quella che verrà selezionata per la sostituzione.
Facile da implementare, mantenere un elenco, sostituire le pagine dalla coda e aggiungere nuove pagine in testa.
Algoritmo di pagina ottimale
Un algoritmo di sostituzione della pagina ottimale ha il tasso di errori di pagina più basso di tutti gli algoritmi. Esiste un algoritmo di sostituzione della pagina ottimale, chiamato OPT o MIN.
Sostituisci la pagina che non verrà utilizzata per il periodo di tempo più lungo. Usa l'ora in cui una pagina deve essere utilizzata.
Algoritmo meno utilizzato (LRU)
La pagina che nella memoria principale non è stata utilizzata da più tempo è quella che verrà selezionata per la sostituzione.
Facile da implementare, mantenere un elenco, sostituire le pagine guardando indietro nel tempo.
Algoritmo di buffering della pagina
- Per avviare rapidamente un processo, mantieni un pool di frame gratuiti.
- In caso di errore di pagina, selezionare una pagina da sostituire.
- Scrivi la nuova pagina nel frame del pool libero, contrassegna la tabella delle pagine e riavvia il processo.
- Ora scrivi la pagina sporca dal disco e posiziona il frame che contiene la pagina sostituita nel pool libero.
Algoritmo meno frequentemente utilizzato (LFU)
La pagina con il conteggio più piccolo è quella che verrà selezionata per la sostituzione.
Questo algoritmo soffre della situazione in cui una pagina viene utilizzata pesantemente durante la fase iniziale di un processo, ma poi non viene mai più utilizzata.
Algoritmo utilizzato più di frequente (MFU)
Questo algoritmo si basa sull'argomento che la pagina con il conteggio più piccolo è stata probabilmente appena introdotta e deve ancora essere utilizzata.