Disambiguazione – Se stai cercando altri significati, vedi Buffer (disambigua).

In informatica, un buffer, in italiano tampone, memoria di transito o anche memoria intermediaria, è una zona di memoria usata per compensare differenze di velocità nel trasferimento o nella trasmissione di dati, oppure per velocizzare l'esecuzione di alcune operazioni come ad esempio le operazioni sulle stringhe di caratteri.

Applicazioni

modifica

Un buffer può essere realizzato sia con l'hardware, per mezzo di circuiti dedicati, sia con il software, riservando una parte della memoria ai dati da manipolare; nei moderni sistemi sono presenti entrambi i metodi, anche se viene preferita la soluzione software per la sua semplicità di implementazione e prestazione.

Sistemi di elaborazione

modifica

I dati possono essere ricevuti da o spediti verso periferiche esterne al computer.

Il buffer è utilizzato per la comunicazione fra componenti che lavorano a velocità differenti. Ad esempio se la CPU, che lavora ad alta velocità, deve spedire alcuni dati alla stampante, la quale supporta una velocità molto minore, scriverà tali dati nel buffer di memoria, potendo così continuare a lavorare a un altro processo mentre la stampante può stampare il dato leggendolo dal buffer e non interrompendo la CPU. Viceversa, se la CPU è impegnata in lavori gravosi, potrebbe "perdere" alcuni input se non fossero salvati in un buffer e poi prelevati dal processore.

Networking

modifica

I buffer sono necessari per coprire i tempi di latenza dei collegamenti di rete. Due dispositivi che devono inviarsi grandi quantità di dati, in un sistema monodirezionale, dovranno salvare i dati da inviare in un buffer, per poi inviarli quando il canale è libero.

Questa tecnica è fondamentale per il funzionamento di apparati di rete intelligenti, come uno switch. Se più canali convogliano il traffico verso un solo switch, questo è costretto a salvare temporaneamente tutti i dati in arrivo in un buffer, svuotandolo a mano a mano che i dati vengono inviati.

Software

modifica
Lo stesso argomento in dettaglio: Buffer overflow.

I buffer software possono essere utilizzati a un livello più alto dai software, solitamente quando sono in attesa di eventi esterni (come l'inserimento di dati da tastiera).

L'utilizzo di buffer nei software li espone, se non adeguatamente protetti, ad attacchi che causano buffer overflow bloccando il programma o il sistema.

Algoritmi e tecniche

modifica

La memorizzazione in buffer avviene principalmente attraverso l'utilizzo di code (FIFO) o più raramente di pile (LIFO). Una struttura a coda permette l'ottimizzazione della sequenza di invio dei dati. Nelle reti, spesso è associata ad algoritmi di priorità, per inviare per primi i dati definiti come "più importanti".

Differenze fra buffer e cache

modifica
  • I buffer vengono utilizzati da processi che devono effettuare operazioni di input/output (esempio frame buffer che è la memoria che registra i pixel degli schermi LCD). Molte volte i buffer vengono utilizzati come file di output.
  • La cache è frequentemente utilizzata come disco di I/O, in modo tale da permettere a più processi che necessitano dello stesso file di accedervi contemporaneamente, venendo tale file copiato in cache in modo tale da velocizzare le operazioni: essa, infatti, è una memoria ad accesso rapidissimo, molto più veloce della RAM, ma anche con un costo fisico più elevato di quello della RAM, pertanto la sua capienza è sempre piuttosto limitata (da 1 MB nei masterizzatori a 64 MB negli hard disk).

Buffer nel mondo analogico

modifica
Lo stesso argomento in dettaglio: Amplificatore separatore.

Questi circuiti separano un'area ad alta impedenza da una restante parte del sistema la cui impedenza è bassa e potrebbe caricare in un modo inaccettabile.

Voci correlate

modifica

Altri progetti

modifica

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica
Controllo di autoritàLCCN (ENsh89003911 · GND (DE4176324-5 · J9U (ENHE987007553763705171

📚 Artikel Terkait di Wikipedia

Disco rigido

disco fisso, in inglese hard disk drive, abbreviato HDD, lett. "unità a disco rigido" e più raramente indicato come fixed disk drive) è un dispositivo di

Western Digital

degli hard disk ATA con un buffer di 8 MiB. In quel periodo, la maggior parte degli hard disk per personal computer avevano 2 MiB di buffer. WDC chiamò

Cache

dipendenza del contesto. Parliamo quindi di: Memory cache, Disk cache, TLB - Translation Lookaside Buffer (Page Table cache, Branch Prediction cache, Branch history

CDBurnerXP

direttamente nell'area di masterizzazione masterizza al-volo e con la protezione buffer-underrun importa sessioni (ISO 9660) precedenti e modifica la struttura

Memoria (informatica)

Cache, e la memoria secondaria di cui maggiori rappresentanti sono gli hard disk, ma anche supporti rimovibili come dischi floppy, CD, DVD, nastri magnetici

Atari ST

tendenza dell'epoca di usare un gran numero di chip custom. Il supporto al disk drive era fornito da un chip standard della Western Digital ed il suono era

Apple II

memorie buffer prima di essere disponibile al programma che lo aveva richiesto. Infine, l'Apple DOS riesce a gestire solo l'unità a dischi Disk II per

GPU

processore progettato per accelerare la creazione di immagini in un frame buffer, destinato all'output su un dispositivo di visualizzazione. Le GPU vengono