L'écriture bufferisée en informatique est une technique qui consiste à stocker des données temporairement en mémoire vive (ou mémoire tampon), avant de les écrire par blocs sur un support (disque dur, base de données, CDROM, ...).
L'objectif de l'écriture bufferisée est de profiter de la vitesse très supérieure d'accès à la mémoire vive pour minimiser ceux à des supports usuellement beaucoup plus lents. Ceci présente deux avantages :
Usuellement, l'écriture bufferisée va en principe être une fonction se substituant aux fonctions d'écritures sur le support, et gérant automatiquement son buffer.
L'écriture bufferisée fait appel à deux concepts :
La fonction d'écriture dans le tampon (se substituant à celle d'écriture sur le support) suit l'algorithme suivant :
SI le buffer est plein ALORS
vider le buffer
FIN SI
SI le buffer n'existe pas ALORS
créer le buffer
FIN SI
ECRIRE donnée dans le buffer
La fonction de flush suit l'algorithme suivant :
TANT QU'il y'a des données dans le buffer FAIRE
ECRIRE donnée du buffer sur le support
FIN TANT QUE
EFFACER les données du buffer
Ces algorithmes sont bien sûrs très génériques, mais représentent le principe d'écriture bufferisée.
Habituellement, l'écriture bufferisée est gérée par le biais d'une bibliothèque logicielle du système, ou de surcouches y faisant appel. Ceci permet au système d'exploitation de faire vider tous les tampons d'écritures (ou buffer) en cas de besoin (mise en veille, extinction, ...), et d'ordonnancer l'écriture sur les disques.
L'écriture bufferisée possède principalement deux inconvénients, provenant du décalage entre la demande d'écriture d'un logiciel et l'écriture effective :