Skip to main content

Cos'è un tampone circolare?

Un buffer circolare è un tipo di circuito hardware o un'area di memoria del computer utilizzata per archiviare informazioni in arrivo.È un buffer di dimensioni fisse e può essere inteso come una struttura di dati che utilizza un buffer come se fosse collegato da un'estremità all'altra.Si chiama tampone circolare perché dà l'aspetto della circolarità.L'aggiunta di maggiori informazioni quando il buffer è pieno fa sovrascrivere il primo elemento memorizzato nel buffer.È anche chiamato un tampone ad anello o un tampone ciclico.

Un modo semplice per capire un tampone circolare è immaginare una linea in una stazione degli autobus.I dati vengono sempre aggiunti a un'estremità della linea e vengono sempre rimossi dall'altra estremità.La testa della linea è sempre lo slot in cui vengono aggiunte informazioni;L'estremità di coda della linea è il luogo da cui vengono rimosse le informazioni.La coda e la testa danno l'aspetto di essere uno accanto all'altro nell'implementazione in questo tipo di buffer, sebbene il buffer sia, in realtà, solo un blocco di memoria.A differenza della linea in una stazione degli autobus, tuttavia, la dimensione del buffer è fissa e ha una certa capacità massima.

questo significa che, quando il buffer è pieno, inizia a sovrascrivere i dati sulla testa.La capacità massima del buffer deve essere impostata in anticipo e, sebbene questo numero potrebbe essere modificato in qualsiasi momento, tutti i dati esistenti presenti nel buffer andranno persi.In genere, i processi sequenziali utilizzano buffer ciclici per scambiare informazioni e i dati inseriti da un processo vengono letti dall'altro.Il primo processo, chiamato produttore, inserisce i dati nel buffer e il secondo processo, noto come consumatore, li elimina.Le routine utilizzano anche buffer ciclici per l'archiviazione dei dati temporaneamente.

L'attributo più vantaggioso di un buffer circolare è il modo in cui memorizza i dati.I dati non vengono mescolati quando viene rimosso un oggetto alla fine della linea.Se il buffer non fosse circolare, tutti gli elementi di dati presenti nel buffer dovrebbero spostare le posizioni quando i dati sono stati rimossi.Un tampone circolare può essere pensato come un primo tipo di buffer (FIFO), mentre un buffer standard ricorda un tampone per ultimo nel primo tipo di buffer (LIFO).

Poiché il buffer circolare memorizza i dati in regioni contigue della memoria, consente rapidamente l'accesso casuale dei dati.Questo tipo di buffer è facile da debug ed è estremamente efficiente.Serve come un'area della cache per la memorizzazione di un certo numero di dati dell'ultimo incluso.È anche possibile inserire e rimuovere molto rapidamente i dati da entrambe le estremità, rendendoli ideali per numerose applicazioni.