Buffer circulaire

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.
Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus.

Cet article ne cite pas suffisamment ses sources ().

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».

En pratique : Quelles sources sont attendues ? Comment ajouter mes sources ?

Un cercle représentant un buffer circulaire de manière conceptuelle. En réalité, une représentation linéaire est utilisée, et la partie orange est simplement écrasée.

Un buffer circulaire est une structure de données utilisant un buffer de taille fixe et dont le début et la fin sont considérés comme connectés. Les buffers circulaires sont souvent utilisés pour gérer des flux de données ou pour implémenter un comportement de type FIFO.

Fonctionnement

Un buffer circulaire est vide au départ et a une longueur prédéterminée. Par exemple, un buffer de sept éléments :

Supposons que le nombre 1 est écrit à une position, arbitrairement définie comme position initiale :

Deux éléments supplémentaires — 2 & 3 — sont alors ajoutés après le 1 :

Si deux éléments sont alors retirés du buffer il s’agira des deux premiers éléments ajoutés. Ici, il s’agit de 1 et 2, le buffer ne contient alors plus que le 3 :

Si le buffer a 7 éléments, il est alors complètement rempli :

L'une des conséquences de l'utilisation d'un buffer circulaire est que lorsqu'il est plein et qu'un ajout supplémentaire est effectué, les données les plus anciennes sont écrasées.
Dans ce cas, deux éléments — A & B — sont ajoutés et écrasent le 3 et le 4 :

Il est aussi possible que la routine gérant le buffer ne laisse pas l'écrasement se produire et provoque une erreur lors de l'ajout de données supplémentaires ou qu'elle se charge automatiquement d'allouer l'espace nécessaire au stockage des nouveaux éléments.

Pour finir, si deux éléments sont alors retirés, les éléments obtenus ne seraient alors pas 3 et 4 mais 5 et 6, car A et B ont écrasé le 3 et le 4 ; laissant le buffer dans cet état :

Notes et références

v · m
Type abstrait
Tableau
  • Buffer circulaire
  • Tableau de bits
  • Table de hachage
  • Vecteur
Chaînage
Arbre
Graphe Diagramme de décision binaire
  • icône décorative Portail de l’informatique