Che cosa è buffer in programmazione?

January 1

Che cosa è buffer in programmazione?


Buffering è un metodo di programmazione per memorizzare temporaneamente i dati. Solitamente un buffer fornisce un ritardo, o di uno stato di attesa dei dati che è destinato per l'uso da un altro programma. I programmi scritti per diversi tipi di applicazioni operano diverse convenzioni circa l'uso di buffer.

Lo scambio di dati

Le informazioni inviate da un'applicazione all'altra non può sempre essere trasferito immediatamente. Il programma di ricezione potrebbe essere occupato, e in attesa di di rispondere a una richiesta causerebbe il programma chiamante per appendere. I programmi che comunicano regolarmente con l'altro stabilire un "gasdotto", che è un buffer per i comandi. In questo caso il buffer è un file. Il programma chiamando invia la richiesta lungo il gasdotto, scrive i dati nel file e poi si fa avanti con altri compiti, controllando periodicamente un buffer diverso per vedere se l'altro programma ha soddisfatto la richiesta e per iscritto i risultati.

buffer di rete

Buffering rallenta la trasmissione di dati su reti e può causare un problema per le applicazioni interattive, come la telefonia Internet. Ritardo su una chiamata telefonica Internet può rendere impossibile la conversazione, ma nessuna delle due parti è autorizzata a risolvere il problema. Il ritardo è causato da buffer su molti router tra i due punti finali della connessione. I router buffer dati per aspettare il loro connessione in uscita per diventare disponibili. congestione della rete provoca buffer di rete. gateway di rete anche buffer di dati in modo che possa essere ispezionata per i dati o virus non autorizzati. Il programma di controllo non può funzionare veloce come la velocità dei dati in arrivo, quindi i dati esegue il backup in un buffer finché l'ispezione pacchetto raggiunge la fine della trasmissione. Molte applicazioni Buffer di ricezione dati provenienti dalla rete poiché i dati possono arrivare fuori ordine.

Multimedia Buffer

Buffer non sono solo utilizzati dai programmi per inviare i dati, ma anche programmi leggono i dati in entrata in buffer. L'esempio che la maggior parte degli utenti sul web l'esperienza è un lettore multimediale in streaming contenuti il ​​buffering. lettori video tampone contenuti man mano che arrivano. Essi sono in grado di avviare la riproduzione del contenuto prima di tutto il file è arrivato. Tuttavia, se il giocatore gira ad una velocità più veloce della connessione di rete, attenderà per visualizzare il file finché ha contenuto abbastanza per andare avanti mentre il resto del file arriva. Spesso la stima della quale proporzione è necessario nel buffer non è corretta e il giocatore inizia a mostrare il video, o la riproduzione del suono, solo per mettere in pausa a metà, perché è a corto di contenuti da mostrare.

overflow del buffer

La maggior parte dei programmi leggono i dati in segmenti. Le applicazioni sono in grado di lavorare con i file scritti in un formato familiare solo. Ciò consente loro di credere che i dati che arrivano saranno presentati i programmi di dimensione massima. Se il programma viene dato un grande blocco di dati rispetto alla struttura di memoria che ha preparato per tenerlo, si verificherà un errore. In questi casi, il programma andrà in crash e segnalare un "buffer di overflow". Ciò significa che non può gestire così tanti dati nel buffer.