- Ecriture bufferisee
-
Écriture bufferisée
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 :
- N'utilisant pas le support d'écriture plus lent, le logiciel n'a pas à attendre que l'écriture ait été effectuée. En conséquence, celui-ci est plus rapide.
- Des supports ne permettant qu'un accès à un moment donné (comme un disque dur ou un graveur de CDROM) sont sollicités moins souvent. Ceci permet de traiter d'un coup toutes les écritures d'un logiciel donné, et de permettre ainsi la réduction des temps d'accès dans le cas de plusieurs logiciels devant y accéder.
Sommaire
Fonctionnement
Algorithme
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 :
- Le buffer, une zone de mémoire vive stockant temporairement les données. Concrètement, cette zone peut être un tableau de bits, une chaîne de caractères, une liste, ...
- Le flush du buffer, ou vidage de la mémoire tampon, qui consiste à écrire les données du buffer sur le support.
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.
Utilisation habituelle
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.
Problèmes de l'écriture bufferisée
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 :
- Les données ne sont effectivement stockées sur le support que lors du vidage du buffer. Ceci induit qu'en cas de débranchement du support, ou d'une panne de système, elles ne sont pas écrites, ce qui peut aboutir à une perte de données, voire à une corruption. C'est l'une des raisons pour laquelle il est fortement recommandé de ne pas éteindre un ordinateur en coupant le courant éléctrique ;
- Dans le cas de plusieurs processus ou logiciels accédant à la même donnée, l'écriture peut donner naissance à une race condition : la modification d'une même donnée au même moment. Ceci peut par exemple arriver dans l'utilisation d'une base de données sans le recours aux transactions.
Catégorie : Terminologie de l'informatique
Wikimedia Foundation. 2010.