Differenza tra buffer e memorizzazione nella cache nel sistema operativo

Autore: Laura McKinney
Data Della Creazione: 2 Aprile 2021
Data Di Aggiornamento: 11 Maggio 2024
Anonim
SO - 09 - Gestione della Memoria
Video: SO - 09 - Gestione della Memoria

Contenuto


La maggior parte delle persone si confonde con i termini buffering e cache. Sebbene entrambi conservino temporaneamente i dati, tuttavia, sono diversi l'uno dall'altro. buffering viene sostanzialmente utilizzato per abbinare la velocità di trasmissione tra er e il ricevitore. D'altro canto, nascondiglio aumenta la velocità di accesso dei dati utilizzati più volte. Condividono anche alcune altre differenze che sono state discusse nella tabella di confronto di seguito.

Contenuto: buffering e cache

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontobufferingcaching
Di base Il buffer corrisponde alla velocità tra er e il ricevitore del flusso di dati.La memorizzazione nella cache aumenta la velocità di accesso ai dati utilizzati più volte.
I negozi Buffer memorizza la copia originale dei dati.La cache memorizza la copia dei dati originali.
PosizioneIl buffer è un'area nella memoria primaria (RAM).La cache è implementata sul processore e può essere implementata anche su RAM e disco.


Definizione di buffering

Il buffer è un'area nella memoria principale (RAM) che memorizza temporaneamente i dati quando vengono trasferiti tra due dispositivi o tra un dispositivo e un'applicazione. Il buffering aiuta abbinando la velocità tra er e ricevitore del flusso di dati. Se la velocità di trasmissione dell'er è più lenta del ricevitore, viene creato un buffer nella memoria principale del ricevitore e accumula i byte ricevuti dall'er. Quando sono arrivati ​​tutti i byte dei dati, fornisce i dati su cui il ricevitore può operare.

Anche il buffering aiuta quando er e il ricevitore hanno dimensioni di trasferimento dati diverse.Nella rete di computer, vengono utilizzati i buffer frammentazione e riassemblaggio di dati. Sul lato er, i dati di grandi dimensioni sono frammentati in piccoli pacchetti e si trovano sulla rete. Sul lato ricevente, viene creato un buffer che raccoglie tutti i pacchetti di dati e li riassembla per creare nuovamente dati di grandi dimensioni.


Supporta anche il buffering copiare la semantica per un I / O dell'applicazione. La semantica della copia può essere spiegata con un esempio, supponiamo che un'applicazione abbia un buffer di dati da scrivere sul disco rigido. Per questo, l'applicazione chiama la chiamata di sistema write (). Supponiamo ora che l'applicazione modifichi i dati del buffer prima che ritorni la chiamata di sistema. In questo caso, la semantica della copia fornisce la versione dei dati, al momento della chiamata di sistema.

I buffer sono implementati in tre capacità.

Capacità zero: Qui la dimensione massima della memoria buffer è Zero. Non può contenere alcun dato, quindi l'er deve essere bloccato fino a quando il destinatario non riceve i dati.

Capacità limitata: Qui la dimensione della memoria buffer è limitata. Al massimo, l'er non può bloccare i dati. Se la memoria buffer è piena, l'er è bloccato fino a quando lo spazio è disponibile in memoria.

Capacità illimitata: qui la memoria buffer è potenzialmente infinita. È possibile inviare qualsiasi numero di blocchi di dati. L'er non è mai bloccato.

Definizione di cache

La cache è una memoria implementata nel processore che archivia la copia dei dati originali. L'idea alla base della memorizzazione nella cache è che i blocchi su disco a cui è stato effettuato l'accesso di recente devono essere archiviati nella memoria cache in modo tale che quando l'utente deve nuovamente accedere agli stessi blocchi su disco, possa essere gestito localmente attraverso la memoria cache evitando il traffico di rete.

La dimensione della cache è limitata poiché contiene solo i dati utilizzati di recente. Quando si modifica il file della cache, è possibile visualizzare tale modifica anche nel file originale. Nel caso in cui i dati richiesti non si trovino nella memoria cache, i dati vengono copiati dall'origine alla memoria memorizzata nella cache per renderli disponibili all'utente quando li richiede la volta successiva.

I dati della cache possono anche essere conservati su disco anziché su RAM, poiché ha un vantaggio che il cache del disco sono affidabili. In caso di arresto anomalo del sistema, i dati memorizzati nella cache sono ancora disponibili sul disco. Ma i dati verrebbero persi nella memoria volatile come la RAM. Ma un vantaggio di archiviare i dati memorizzati nella cache RAM è che sarebbe accessibile veloce.

  1. La differenza chiave tra buffer e cache è che la memoria buffer viene utilizzata per far fronte alla diversa velocità tra er e il destinatario del flusso di dati, mentre la cache è una memoria che memorizza i dati in modo che la velocità di accesso possa essere fissata per i dati utilizzati ripetutamente .
  2. Buffer porta sempre il dati originali da inviare al destinatario. Tuttavia, la cache porta il file copia dei dati originali.
  3. Il buffer è sempre implementato in memoria principale (RAM), ma è possibile implementare la cache in RAM così come in Disco.

Conclusione:

Buffering e cache memorizzano entrambi i dati temporaneamente ma entrambi vengono utilizzati per scopi diversi. Dove il buffer corrisponde alla velocità tra due dispositivi comunicanti e la cache accelera l'accesso ai dati che si ripetono visitati.