En informática , un búfer de datos (o simplemente búfer ) es una región de memoria que se utiliza para almacenar datos temporalmente mientras se transfieren de un lugar a otro. Normalmente, los datos se almacenan en un búfer al recuperarse de un dispositivo de entrada (como un convertidor analógico-digital ) o justo antes de enviarlos a un dispositivo de salida (como un convertidor digital-analógico ); sin embargo, también se puede utilizar un búfer cuando los datos se transfieren entre procesos dentro de un ordenador, de forma similar a los búferes en telecomunicaciones. Los búferes pueden implementarse en una ubicación de memoria fija en el hardware o mediante un búfer de datos virtual en el software que apunta a una ubicación en la memoria física.
En todos los casos, los datos almacenados en un búfer de datos se guardan en un medio de almacenamiento físico . La mayoría de los búferes se implementan mediante software , que normalmente utiliza la memoria RAM para almacenar datos temporales debido a su tiempo de acceso mucho más rápido en comparación con los discos duros . Los búferes se utilizan generalmente cuando existe una diferencia entre la velocidad de recepción y la velocidad de procesamiento de los datos, o cuando estas velocidades son variables, por ejemplo, en un gestor de impresión o en la transmisión de vídeo en línea ; en estos casos, se puede utilizar un búfer basado en almacenamiento ( disco duro o memoria flash ). En un entorno de computación distribuida , los búferes de datos suelen implementarse como búferes de ráfaga , que proporcionan servicios de almacenamiento en búfer distribuido.
Un búfer suele ajustar la temporización implementando un algoritmo de cola (o FIFO ) en la memoria, escribiendo datos en la cola simultáneamente a una velocidad y leyéndolos a otra.
Aplicaciones
Los búferes se utilizan a menudo junto con la entrada/salida de hardware , como unidades de disco , para enviar o recibir datos desde o hacia una red , o para reproducir sonido en un altavoz. La fila para una montaña rusa en un parque de atracciones comparte muchas similitudes. Las personas que suben a la montaña rusa llegan a un ritmo desconocido y a menudo variable, pero la montaña rusa puede cargar personas en ráfagas (a medida que llega y se llena). El área de espera actúa como un búfer: un espacio temporal donde quienes desean subir esperan hasta que la atracción esté disponible. Los búferes se suelen utilizar con un método FIFO (primero en entrar, primero en salir), que emite los datos en el orden en que llegan.
Los búferes pueden aumentar el rendimiento de las aplicaciones al permitir que las operaciones síncronas, como la lectura o escritura de archivos, se completen rápidamente en lugar de bloquearse a la espera de interrupciones de hardware para acceder al subsistema de disco físico. En cambio, el sistema operativo puede devolver inmediatamente un resultado satisfactorio de una llamada a la API, lo que permite que la aplicación continúe su procesamiento mientras el núcleo completa la operación de disco en segundo plano. Se pueden obtener beneficios adicionales si la aplicación lee o escribe pequeños bloques de datos que no se corresponden con el tamaño de bloque del subsistema de disco, lo que permite utilizar un búfer para agrupar muchas operaciones de lectura o escritura más pequeñas en bloques de tamaño más eficiente para el subsistema de disco o, en el caso de una lectura, a veces para evitar por completo tener que acceder físicamente al disco.
Búfer de telecomunicaciones
Un mecanismo de almacenamiento intermedio o un medio de almacenamiento utilizado en telecomunicaciones compensa las diferencias en la velocidad de flujo de datos o en el tiempo de ocurrencia de eventos cuando los datos se transfieren de un dispositivo a otro.
Los buffers se utilizan para muchos propósitos, entre ellos:
- Interconexión de dos circuitos digitales que operan a diferentes velocidades.
- Almacenando datos para su uso posterior.
- Permite realizar correcciones de sincronización en un flujo de datos .
- Agrupar bits de datos binarios que luego pueden ser procesados como una unidad.
- Retrasar el tiempo de tránsito de una señal para permitir que se realicen otras operaciones.
Ejemplos
- El comando/instrucción BUFFERS en CONFIG.SYS de DOS .
- El búfer entre un puerto serie ( UART ) y un módem . La velocidad del puerto COM puede ser de 38400 bit/s, mientras que el módem puede tener una portadora de solo 14400 bit/s .
- El búfer de disco integrado en una unidad de disco duro, unidad de estado sólido o unidad de BD/DVD/CD.
- El búfer SRAM integrado en un adaptador Ethernet . [ 1 ]
- El núcleo de Windows NT también administra una porción de la memoria principal como búfer para dispositivos más lentos, como tarjetas de sonido y controladores de interfaz de red . [ 2 ] [ 3 ]
- El búfer de fotogramas en una tarjeta de video.
- El búfer de transmisión utilizado por servicios de transmisión como YouTube y Netflix (ya sea versión web, aplicación o software), en lugar de la descarga completa. [ 4 ]
Historia
Una de las primeras menciones de un búfer de impresión es el "Outscriber" ideado por el pionero del procesamiento de imágenes Russel A. Kirsch para la computadora SEAC en 1952: [ 5 ]
Uno de los problemas más importantes en el diseño de computadoras digitales automáticas es obtener los resultados calculados con la suficiente rapidez para evitar retrasos en el desarrollo de los cálculos. En muchos de los problemas a los que se aplica una computadora de propósito general, la cantidad de datos de salida es relativamente grande, tanto que obligar a la computadora a esperar a que estos datos se escriban en las impresoras existentes generaría una grave ineficiencia. Esta dificultad se ha resuelto en la SEAC mediante el uso de dispositivos de grabación magnética como unidades de salida. Estos dispositivos pueden recibir información de la máquina a velocidades hasta 100 veces superiores a las de una máquina de escribir eléctrica. De este modo, se logra una mayor eficiencia en el registro de los datos de salida; posteriormente, se puede transcribir la información desde el dispositivo de grabación magnética a una impresora sin bloquear la computadora principal.
Véase también
- Desbordamiento de búfer
- Subdesbordamiento de búfer
- Búfer circular
- Búfer de disco
- Transmisión de medios
- Búfer de fotogramas para su uso en pantallas gráficas
- Doble búfer y triple búfer para técnicas principalmente en gráficos
- Búfer de profundidad , búfer de plantilla , para diferentes partes de la información de la imagen.
- búfer de longitud variable
- búfer óptico
- MissingNo. , el resultado de que los datos del búfer no se borraran correctamente en Pokémon Rojo y Azul.
- búfer UART
- ENOBUFS , error POSIX causado por falta de memoria en los búferes.
- Búfer de escritura , un tipo de búfer de memoria
- Copia cero
- 512.000 días
Referencias
- ↑ "Hoja de datos del controlador Ethernet Gigabit Intel® 82576EB" (PDF) . intel.com . Diciembre de 2011. Consultado el 18 de octubre de 2025 .
- ↑ "Administración del búfer de datos de red - Controladores de Windows" .
- ↑ "Estructura DSBUFFERDESC" . learn.microsoft.com . Consultado el 18 de octubre de 2025 .
- ↑ https://developer.mozilla.org/en-US/docs/Web/API/MediaSource
- ↑ "Manual de mantenimiento de SEAC: El escriba" (PDF) . Informe de la Oficina Nacional de Normas . 2794. Julio de 1953. Archivado del original (PDF) el 15 de febrero de 2020. Consultado el 13 de julio de 2017 .
- Sincronización
- Memoria de computadora