Un búfer circular es un tipo de circuito de hardware o un área de la memoria de la computadora que se utiliza para almacenar información entrante. Es un búfer de tamaño fijo y puede entenderse como una estructura de datos que utiliza un búfer como si estuviera vinculado de un extremo al otro. Se llama búfer circular porque da la apariencia de circularidad. Agregar más información cuando el búfer está lleno hace que se sobrescriba el primer elemento almacenado en el búfer. También se denomina búfer de anillo o búfer cíclico.
Una forma fácil de entender un búfer circular es imaginar una línea en una estación de autobuses. Los datos siempre se agregan a un extremo de la línea y siempre se eliminan del otro extremo. El encabezado de la línea es siempre el espacio en el que se agrega la información; el final de la línea es el lugar del que se elimina la información. La cola y la cabeza dan la apariencia de estar una al lado de la otra en la implementación en este tipo de búfer, aunque el búfer es, en realidad, solo un bloque de memoria. Sin embargo, a diferencia de la línea en una estación de autobuses, el tamaño del búfer es fijo y tiene una cierta capacidad máxima.
Esto significa que cuando el búfer está lleno, comienza a sobrescribir los datos en la cabecera. La capacidad máxima del búfer debe establecerse de antemano y, aunque este número puede modificarse en cualquier momento, se perderán todos los datos existentes en el búfer. Por lo general, los procesos secuenciales utilizan búferes cíclicos para intercambiar información, y los datos ingresados por un proceso son leídos por el otro. El primer proceso, llamado productor, coloca datos en el búfer y el segundo proceso, conocido como consumidor, los saca. Las rutinas también utilizan búferes cíclicos para almacenar datos temporalmente.
El atributo más ventajoso de un búfer circular es la forma en que almacena datos. Los datos no se mezclan cuando se elimina un objeto al final de la línea. Si el búfer no fuera circular, todos los elementos de datos presentes en el búfer tendrían que cambiar de posición cuando se eliminaran los datos. Un búfer circular se puede considerar como un tipo de búfer Primero en entrar, primero en salir (FIFO), mientras que un búfer estándar se parece al tipo de búfer Último en entrar, primero en salir (LIFO).
Como el búfer circular almacena datos en regiones contiguas de la memoria, permite el acceso aleatorio a los datos rápidamente. Este tipo de búfer es fácil de depurar y extremadamente eficiente. Sirve como un área de caché para almacenar una cierta cantidad de los últimos datos incluidos. También es posible insertar y eliminar datos de ambos extremos muy rápidamente, lo que lo hace ideal para numerosas aplicaciones.