2010-07-07 14 views

risposta

21

A buffer è solo un contenitore per conservare i dati per un breve periodo di tempo in cui più entra in un dato momento di quanto un consumatore possa utilizzare/elaborare. È una situazione di first-in-first-out: i dati arrivano, possono essere memorizzati nel buffer e escono nello stesso ordine in cui sono entrati, dopo un po '.

A cache è una memoria per l'accelerazione di alcune operazioni. Le cose vengono messe in una cache e devono essere recuperate più volte, più e più volte. Non esiste un tipo di meccanismo "che scorre attraverso la cache" - i dati non entrano ed escono nello stesso ordine - ma è solo un contenitore. L'ordine potrebbe essere qualsiasi cosa, in realtà - gli oggetti sono indirizzati tramite una chiave, non "fluiscono attraverso" ma sono "messi" e rimangono lì (finché non vengono buttati fuori per non essere usati, o perché il sistema scende).

+0

grazie Marc, è ora chiaro – Dhiva

+0

ma se la cache è un titolare di dati temporanei, qual è la differenza tra "cache" e "usato"? Questi due parametri verranno visualizzati se si utilizza "free -m" o "dstat -m". – fanchyna

5

A buffer è una raccolta contemporanea di luoghi in cui una grande quantità di dati viene gestita o smontata. Questo può essere fondamentale per l'interazione con un set di dispositivi di raccolta che richiede enormi blocchi di informazioni, o quando i dati devono essere dati in un modo diverso da quello in cui sono realizzati, o raramente considerevoli quando meno blocchi non sono sufficienti. Il vantaggio è qui anche se i dati memorizzati nel buffer vengono memorizzati nel buffer in una volta e recuperati dal buffer una volta.

A cache, dall'altra parte, pensa che i dati verranno prelevati dalla cache più una volta rispetto a quelli scritti su di essi. Il suo scopo è quello di ridurre gli accessi allo stock sottostante. Buffer è una cache programmabile gestita dal sistema operativo nella memoria principale e viene utilizzata per avere i dati più necessari dal disco, in modo che non debbano essere recuperati dalla memoria. Questa funzione è disponibile dal sistema operativo. Mentre la cache è in realtà un hardware che la CPU utilizza per ridurre il tempo di accesso effettivo alla memoria.

+0

Ho ottenuto il chiaro differecen Martin grazie mille – Dhiva

-1

Un buffer è proprio come un tamburo che può contenere dati e scovarlo ... D'altra parte Cache viene utilizzato per rendere più veloci le operazioni.

0

aggiungere qualcosa dal Wiki circa la differenza tra Buffer e Cache.

Un buffer è un'area di memoria temporanea che viene tradizionalmente utilizzato perché istruzioni della CPU non possono affrontare direttamente i dati memorizzati in periferiche. Pertanto, la memoria indirizzabile viene utilizzata come fase intermedia . Inoltre, un tale buffer può essere fattibile quando un grande blocco di dati viene assemblato o disassemblato (come richiesto da un dispositivo di memorizzazione ), o quando i dati possono essere consegnati in un ordine diverso rispetto a quello in cui viene prodotto. Inoltre, un intero buffer di dati è trasferito in modo sequenziale (ad esempio sul disco rigido), pertanto il buffering a volte aumenta le prestazioni di trasferimento o riduce la variazione o il jitter della latenza del trasferimento rispetto alla cache in cui l'intenzione è ridurre la latenza. Questi vantaggi sono presenti anche se i dati bufferizzati vengono scritti sul buffer una volta e letti dal buffer una volta.

Una cache aumenta anche le prestazioni di trasferimento.Una parte dell'aumento deriva in parte dalla possibilità che più piccoli trasferimenti si uniscano in un unico blocco grande. Ma il guadagno di prestazioni principale si verifica perché c'è una buona probabilità che gli stessi dati vengano letti dalla cache più volte, o che i dati scritti vengano presto letti. L'unico scopo della cache di è di ridurre gli accessi allo storage sottostante più lento. Anche la cache è di solito un livello di astrazione progettato per rendere invisibile lo dalla prospettiva dei livelli adiacenti.

Problemi correlati