Raccomandato, 2024

Scelta Del Redattore

Differenza tra memoria virtuale e cache nel sistema operativo

La memoria è un dispositivo hardware che viene utilizzato per memorizzare le informazioni temporanee o permanenti. In questo articolo, ho discusso le differenze tra memoria virtuale e cache. Una memoria cache è una memoria ad alta velocità che viene utilizzata per ridurre il tempo di accesso per i dati. D'altra parte, la memoria virtuale non è esattamente una memoria fisica, è una tecnica che estende la capacità della memoria principale oltre il suo limite.

La principale differenza tra la memoria virtuale e la memoria cache è che una memoria virtuale consente a un utente di eseguire programmi più grandi rispetto alla memoria principale, mentre la memoria cache consente un accesso più rapido ai dati che sono stati utilizzati di recente. Discuteremo alcune altre differenze con l'aiuto del grafico di confronto mostrato di seguito.

Grafico comparativo

Base per il confrontoMemoria virtualeMemoria memorizzata nella cache
Di baseLa memoria virtuale estende la capacità della memoria principale per l'utente.La memoria cache fissa la velocità di accesso ai dati della CPU.
NaturaLa memoria virtuale è tecnica.La memoria cache è un'unità di archiviazione.
FunzioneLa memoria virtuale consente l'esecuzione del programma che è più grande della memoria principale.La memoria cache memorizza le copie dei dati originali che sono stati utilizzati di recente.
Gestione della memoriaLa memoria virtuale è gestita dal sistema operativo.La memoria cache è completamente gestita dall'hardware.
TagliaLa memoria virtuale è molto più grande della memoria cache.La memoria cache ha dimensioni limitate.
MappaturaLa memoria virtuale richiede strutture di mappatura per mappare l'indirizzo virtuale all'indirizzo fisico.Nessuna struttura di mappatura è richiesta come tale in una memoria cache.

Definizione di memoria virtuale

La memoria virtuale non è esattamente una memoria fisica di un computer, ma è una tecnica che consente l'esecuzione di un programma di grandi dimensioni che potrebbe non essere completamente inserito nella memoria principale . Consente al programmatore di eseguire i programmi più grandi della memoria principale.

Ora capiamo come funziona la memoria virtuale? Il programma ha il suo indirizzo di memoria virtuale che è diviso in un numero di pagine . Anche la memoria principale è divisa in un numero di pagine . Ora, come possiamo vedere, l'indirizzo virtuale di un programma è più grande della memoria principale disponibile. Quindi la mappa della memoria viene utilizzata per mappare l'indirizzo virtuale nella memoria principale.

La pagina 0, 1, 2 viene mappata nella memoria principale e la memoria principale si riempie. Ora, quando la pagina 3 della memoria virtuale richiede spazio nella memoria principale, la pagina più vecchia, ovvero la pagina 0, viene trasferita sul disco rigido ed evacua il posto per la pagina 3, nella memoria principale e il processo continua. Nel caso in cui la pagina 0 sia nuovamente necessaria, quindi di nuovo la pagina posizionata più vecchia in quel momento viene trasferita sul disco rigido, rendendo il posto per la pagina 0.

Se i due programmi richiedono gli stessi dati, collocati nella memoria principale, l'unità di mappatura della memoria consente a entrambi i programmi di condividere lo stesso spazio di indirizzo nella memoria principale in cui sono memorizzati i dati condivisi . Questo facilita la condivisione di file.

I vantaggi della memoria virtuale sono:

  • I programmi non sono più vincolati dal limite della memoria principale.
  • La memoria virtuale aumenta il grado di multiprogrammazione.
  • Aumenta l'utilizzo della CPU.
  • La minore unità I / O richiederà di caricare o scambiare programmi in memoria.

Ma c'è un inconveniente della memoria virtuale, l'inserimento di più pagine di un programma nel disco rigido rallenta le prestazioni poiché l'accesso ai dati dal disco rigido richiede più tempo rispetto all'accesso ai dati dalla memoria principale.

Definizione di memoria cache

A differenza della memoria virtuale, Cache è un dispositivo di archiviazione implementato sul processore stesso. Porta le copie dei dati originali a cui è stato effettuato l'accesso di recente. I dati originali possono essere inseriti nella memoria principale o in una memoria secondaria. La memoria cache fissa la velocità di accesso dei dati, ma come? Capiamo

Possiamo dire che la velocità di accesso della CPU è limitata alla velocità di accesso della memoria principale . Ogni volta che un programma deve essere eseguito dal processore, lo recupera dalla memoria principale. Se una copia del programma è già presente nella cache implementata sul processore. Il processo sarebbe in grado di accedere a tali dati più velocemente, il che si tradurrà in un'esecuzione più rapida.

Differenze chiave tra memoria virtuale e cache

  1. La memoria virtuale estende la capacità della memoria principale virtualmente per l'utente. Tuttavia, la memoria cache rende più veloce l'accesso ai dati per la CPU.
  2. La cache è un'unità di memoria mentre la memoria virtuale è una tecnica .
  3. La memoria virtuale abilita le esecuzioni del programma più grandi della memoria principale. D'altra parte, la memoria cache memorizza le copie dei dati originali che sono stati usati di recente.
  4. La gestione della memoria virtuale viene eseguita dal sistema operativo . D'altra parte, la gestione della memoria cache viene eseguita dall'hardware .
  5. La memoria virtuale è molto più grande della dimensione della memoria cache.
  6. La tecnica di memoria virtuale richiede che le strutture di mappatura mappino l'indirizzo virtuale all'indirizzo fisico mentre la memoria cache non richiede alcuna struttura di mappatura.

Conclusione:

La memoria virtuale è una tecnica per espandere la capacità della memoria principale praticamente per gli utenti. La memoria cache è un'unità di archiviazione che memorizza i dati accessibili di recente che consentono alla CPU di accedervi più rapidamente.

Top