Cos'è la memoria virtuale?
La memoria virtuale è un meccanismo di archiviazione che offre all'utente l'illusione di avere una memoria principale molto grande. Viene fatto trattando una parte della memoria secondaria come memoria principale. Nella memoria virtuale, l'utente può memorizzare processi con dimensioni maggiori rispetto alla memoria principale disponibile.
Pertanto, invece di caricare un lungo processo nella memoria principale, il sistema operativo carica le varie parti di più di un processo nella memoria principale. La memoria virtuale è per lo più implementata con paginazione e segmentazione della domanda.
In questo tutorial sul sistema operativo imparerai:
- Cos'è la memoria virtuale?
- Come funziona la memoria virtuale?
- Cos'è il cercapersone a richiesta?
- Tipi di metodi di sostituzione della pagina
- Sostituzione della pagina FIFO
- Algoritmo ottimale
- Sostituzione della pagina LRU
- Vantaggi della memoria virtuale
- Svantaggi della memoria virtuale
Perché è necessaria la memoria virtuale?
Ecco i motivi per utilizzare la memoria virtuale:
- Ogni volta che il tuo computer non ha spazio nella memoria fisica, scrive ciò che deve ricordare sul disco rigido in un file di scambio come memoria virtuale.
- Se un computer che esegue Windows necessita di più memoria / RAM, quindi installato nel sistema, utilizza una piccola parte del disco rigido per questo scopo.
Come funziona la memoria virtuale?
Nel mondo moderno, la memoria virtuale è diventata abbastanza comune in questi giorni. Viene utilizzato ogni volta che alcune pagine richiedono di essere caricate nella memoria principale per l'esecuzione e la memoria non è disponibile per quelle molte pagine.
Quindi, in quel caso, invece di impedire che le pagine entrino nella memoria principale, il sistema operativo ricerca lo spazio RAM che è minimo utilizzato negli ultimi tempi o che non è referenziato nella memoria secondaria per fare lo spazio per le nuove pagine in la memoria principale.
Comprendiamo la gestione della memoria virtuale con l'aiuto di un esempio.
Per esempio:
Supponiamo che un sistema operativo richieda 300 MB di memoria per archiviare tutti i programmi in esecuzione. Tuttavia, attualmente sono disponibili solo 50 MB di memoria fisica disponibile nella RAM.
- Il sistema operativo quindi configurerà 250 MB di memoria virtuale e utilizzerà un programma chiamato Virtual Memory Manager (VMM) per gestire quei 250 MB.
- Quindi, in questo caso, il VMM creerà un file sul disco rigido della dimensione di 250 MB per archiviare la memoria aggiuntiva necessaria.
- Il sistema operativo ora procederà ad indirizzare la memoria poiché considera 300 MB di memoria reale archiviata nella RAM, anche se sono disponibili solo 50 MB di spazio.
- È compito del VMM gestire 300 MB di memoria anche se sono disponibili solo 50 MB di spazio di memoria reale.
Cos'è il cercapersone a richiesta?
Un meccanismo di paginazione a richiesta è molto simile a un sistema di paginazione con scambio in cui i processi archiviati nella memoria secondaria e le pagine vengono caricate solo su richiesta, non in anticipo.
Quindi, quando si verifica un cambio di contesto, il sistema operativo non copia mai nessuna delle pagine del vecchio programma dal disco o nessuna delle pagine del nuovo programma nella memoria principale. Invece, inizierà l'esecuzione del nuovo programma dopo aver caricato la prima pagina e recupererà le pagine del programma, a cui si fa riferimento.
Durante l'esecuzione del programma, se il programma fa riferimento a una pagina che potrebbe non essere disponibile nella memoria principale perché è stata scambiata, il processore la considera come un riferimento di memoria non valido. Questo perché l'errore di pagina e i trasferimenti restituiscono il controllo dal programma al sistema operativo, che richiede di memorizzare la pagina nella memoria.
Tipi di metodi di sostituzione della pagina
Ecco alcuni importanti metodi di sostituzione della pagina
- FIFO
- Algoritmo ottimale
- Sostituzione della pagina LRU
Sostituzione della pagina FIFO
FIFO (First-in-first-out) è un semplice metodo di implementazione. In questo metodo, la memoria seleziona la pagina per una sostituzione che è stata nell'indirizzo virtuale della memoria per il tempo più lungo.
Caratteristiche:
- Ogni volta che viene caricata una nuova pagina, la pagina arrivata di recente in memoria viene rimossa. Quindi, è facile decidere quale pagina deve essere rimossa poiché il suo numero di identificazione è sempre nello stack FIFO.
- La pagina più vecchia nella memoria principale è quella che dovrebbe essere prima selezionata per la sostituzione.
Algoritmo ottimale
Il metodo di sostituzione della pagina ottimale seleziona quella pagina per una sostituzione per la quale il tempo al riferimento successivo è il più lungo.
Caratteristiche:
- L'algoritmo ottimale produce il minor numero di errori di pagina. Questo algoritmo è difficile da implementare.
- Un metodo di algoritmo di sostituzione della pagina ottimale ha il tasso di errori di pagina più basso di tutti gli algoritmi. Questo algoritmo esiste e dovrebbe essere chiamato MIN o OPT.
- Sostituisci la pagina che a differenza di utilizzare per un periodo di tempo più lungo. Utilizza solo il tempo in cui è necessario utilizzare una pagina.
Sostituzione della pagina LRU
La forma completa di LRU è la pagina Meno utilizzati di recente. Questo metodo aiuta il sistema operativo a trovare l'utilizzo della pagina in un breve periodo di tempo. Questo algoritmo dovrebbe essere implementato associando un contatore a una pagina pari.
Come funziona?
- 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.
Caratteristiche:
- Il metodo di sostituzione LRU ha il conteggio più alto. Questo contatore è anche chiamato registro di invecchiamento, che specifica la loro età e la quantità di riferimento alle pagine associate.
- La pagina che non è stata utilizzata per più tempo nella memoria principale è quella che dovrebbe essere selezionata per la sostituzione.
- Mantiene anche un elenco e sostituisce le pagine guardando indietro nel tempo.
Tasso di guasto
La frequenza di guasto è una frequenza con cui un sistema o un componente progettato si guasta. È espresso in guasti per unità di tempo. È indicato dalla lettera greca λ (lambda).
Vantaggi della memoria virtuale
Ecco i vantaggi / vantaggi dell'utilizzo della memoria virtuale:
- La memoria virtuale aiuta a guadagnare velocità quando solo un particolare segmento del programma è richiesto per l'esecuzione del programma.
- È molto utile nell'implementazione di un ambiente multiprogrammazione.
- Ti consente di eseguire più applicazioni contemporaneamente.
- Ti aiuta a inserire molti programmi di grandi dimensioni in programmi più piccoli.
- È possibile condividere dati o codici comuni tra la memoria.
- Il processo può diventare ancora più grande di tutta la memoria fisica.
- I dati / codice devono essere letti dal disco ogni volta che è necessario.
- Il codice può essere posizionato ovunque nella memoria fisica senza richiedere il riposizionamento.
- Più processi dovrebbero essere mantenuti nella memoria principale, il che aumenta l'uso efficace della CPU.
- Ogni pagina viene memorizzata su un disco fino a quando non viene richiesta, dopodiché verrà rimossa.
- Consente di eseguire più applicazioni contemporaneamente.
- Non esiste un limite specifico al grado di multiprogrammazione.
- È necessario scrivere programmi di grandi dimensioni, poiché lo spazio degli indirizzi virtuali disponibile è maggiore rispetto alla memoria fisica.
Svantaggi della memoria virtuale
Ecco alcuni svantaggi / svantaggi dell'utilizzo della memoria virtuale:
- Le applicazioni potrebbero essere più lente se il sistema utilizza la memoria virtuale.
- Probabilmente ci vuole più tempo per passare da un'applicazione all'altra.
- Offre meno spazio su disco rigido per il tuo utilizzo.
- Riduce la stabilità del sistema.
- Consente alle applicazioni più grandi di essere eseguite in sistemi che non offrono sufficiente RAM fisica da sola per eseguirle.
- Non offre le stesse prestazioni della RAM.
- Influisce negativamente sulle prestazioni complessive di un sistema.
- Occupare lo spazio di archiviazione, che può essere utilizzato altrimenti per l'archiviazione dei dati a lungo termine.
Sommario:
- La memoria virtuale è un meccanismo di archiviazione che offre all'utente l'illusione di avere una memoria principale molto grande.
- La memoria virtuale è necessaria ogni volta che il computer non dispone di spazio nella memoria fisica
- Un meccanismo di paginazione a richiesta è molto simile a un sistema di paginazione con scambio in cui i processi archiviati nella memoria secondaria e le pagine vengono caricate solo su richiesta, non in anticipo.
- Importante I metodi di sostituzione della pagina sono 1) FIFO 2) Algoritmo ottimale 3) Sostituzione della pagina LRU.
- Nel metodo FIFO (First-in-first-out), la memoria seleziona la pagina per una sostituzione che è stata nell'indirizzo virtuale della memoria per il tempo più lungo.
- Il metodo di sostituzione della pagina ottimale seleziona quella pagina per una sostituzione per la quale il tempo al riferimento successivo è il più lungo.
- Il metodo LRU aiuta il sistema operativo a trovare l'utilizzo della pagina in un breve periodo di tempo.
- La memoria virtuale aiuta a guadagnare velocità quando solo un particolare segmento del programma è richiesto per l'esecuzione del programma.
- Le applicazioni potrebbero essere più lente se il sistema utilizza la memoria virtuale.