login LOGIN
CHIUDI chiudi
Il mio profilo

mostra
Hai dimenticato la password?
Inserisci l'indirizzo email di registrazione per reimpostare la password.
Segui le istruzioni che ti abbiamo inviato per posta elettronica.

Cos'è e come funziona il buffering

Ascolta l'articolo

Questa tecnica permette di salvare temporaneamente dei dati su una porzione di memoria (detta di buffer) così da velocizzare l'esecuzione di alcune operazioni informatiche

Buffering

In campo informatico con il termine buffer (o data buffer) ci si riferisce alla regione di un supporto di memoria utilizzata per contenere temporaneamente dei dati mentre questi vengono trasferiti tra un “agente” (sia esso hardware o software) e l'altro del computer. Il buffer entra in gioco nel caso di due componenti hardware che lavorano a velocità differenti (il processore e una qualsiasi periferica, ad esempio) o quando due software con priorità differente (un processo del sistema operativo e un processo di un programma “secondario”, ad esempio) devono mettersi in comunicazione l'uno con l'altro. In casi come questi, il buffering (ovvero l'azione di caricare i dati nella memoria di buffer) permette di accorciare i tempi di esecuzione dell'operazione ed evitare che si perda del tempo prezioso. Proprio per questo, solitamente il buffer è ospitato dalla memoria RAM, che garantisce tempi di risposta e di accesso più veloci rispetto a quelle di un hard disk magnetico. Per evitare di andare “fuori giri”, il buffering è gestito tramite algoritmi FIFO (acronimo di “first in, first out”, traducibile con “primo ad entrare, primo ad uscire”) che permettono di adottare differenti tempistiche di scrittura e lettura dei dati all'interno della memoria.

 

La memoria RAM ospita solitamente il buffer

 

Buffer hardware e buffer software

Il buffer può essere implementato e gestito sia a livello hardware (prevedendo, all'interno del supporto di memoria, dei circuiti dedicati ad ospitare dei dati di buffering) sia a livello software (è il programma a individuare la porzione di memoria di buffer e gestire il flusso di dati in ingresso e uscita). Anche se nei moderni sistemi informatici è possibile scegliere entrambe le soluzioni, la gestione software è di gran lunga la più utilizzata: oltre a offrire un'implementazione e una gestione più semplice, infatti, garantisce performance migliori rispetto all'implementazione hardware del buffer.

Applicazioni

La memoria di buffer può trovare applicazione nelle operazioni più disparate.

Prima di tutto, è utilizzata nella comunicazione tra componenti informatiche che lavorano a velocità differenti (basta pensare, ad esempio, alla velocità di elaborazione del processore e la velocità di acquisizione delle informazioni di una tastiera o di uno scanner). Il buffering, infatti, impedisce che ci siano dei tempi morti nell'esecuzione di istruzioni e processi da parte del processore a causa della lentezza di qualche periferica di input e output. La stampa di un qualunque documento o la masterizzazione di un CD sono esempi paradigmatici del funzionamento del buffer. Il processore elabora i dati da stampare (o masterizzare) e li appoggia sulla memoria di buffering, potendo così continuare a lavorare su un altro processo senza doversi preoccupare dei tempi di avvio e di lavoro della stampante o del masterizzatore. La periferica, infatti, andrà a pescare i dati direttamente nella memoria di buffer, senza dover disturbare ulteriormente il processore.

 

Buffering

 

Nel networking, invece, il buffering sopperisce alla latenza tipica delle comunicazioni di rete. Nel caso in cui due nodi di una rete devono scambiare una grande quantità di dati, potrebbero essere costretti ad accedere alla memoria di buffer: ciò permette di “trattenere” i dati sino a quando il canale di comunicazione non sarà libero e disponibile per mettere in comunicazione i due dispositivi. Questa tecnica assume un'importanza fondamentale per gli hub di rete: nel caso in cui i dati da gestire e inviare eccedano le capacità della rete l'hub accederà alla memoria di buffer, che si occuperà di smaltire la coda non appena il canale di comunicazione prescelto sarà liberamente utilizzabile. Nel caso dello streaming di dati multimediali, invece, il buffering assolve a compiti differenti: l'applicativo web (ad esempio un client per la riproduzione di filmati) caricherà una parte dei dati prima che la riproduzione abbia inizio. In questo modo, anche se il flusso dei dati dovesse interrompersi per una frazione di secondi, la visione del filmato continuerà senza accusare problemi di alcun genere.

A cura di Cultur-e
Addestramento IA non consentito: É assolutamente vietato l’utilizzo del contenuto di questa pubblicazione, in qualsiasi forma o modalità, per addestrare sistemi e piattaforme di intelligenza artificiale generativa. I contenuti sono coperti da copyright.
TecnologicaMente
Sei un Multitasking Master o un Procrastinatore Pro?
Immagine principale del blocco
Sei un Multitasking Master o un Procrastinatore Pro?
Fda gratis svg
Fai il test sulle abitudini di lavoro e studio con la tecnologia
Fai il test gratuito

Iscriviti
all'area personale

Per ricevere Newsletter, scaricare eBook, creare playlist vocali e accedere ai corsi della Fastweb Digital Academy a te dedicati.