Buffering: qué es y cómo funciona

En la rama informática definimos la palabra buffer como la región de un determinado medio de almacenamiento que está diseñada para manejar temporalmente la información mientras se transfiere entre ordenadores. El objetivo principal de esta operación es reducir las diferentes velocidad de procesamiento de las dos unidades.

De hecho, justo en estos momentos entra en juego el buffer, capaz de compensar las diferentes velocidades de trabajo de dos componentes de hardware (periféricos de ordenador) o cuando dos piezas de software con diferentes prioridades (procesos primarios y secundarios) deben ser capaces de comunicarse entre sí. En estos casos, el amortiguación (que es la funcionalidad de cargar datos en la memoria intermedia) es capaz de acortar los tiempos de espera minimizando la pérdida de tiempo.

Generalmente, el buffer reside en la memoria central (RAM) que, al poder garantizar una velocidad de ejecución superior a la de un disco duro magnético, asegurará tiempos de respuesta mucho más eficientes. Si queremos entrar en los detalles, el buffering se gestiona mediante los siguientes algoritmos FIFO (“El primero en entrar, el primero en salir”). Esto garantizará el uso de tiempos diferentes para la escritura y la lectura de información dentro de la memoria central.

Buffer: diferencia entre software y hardware

Como hemos mencionado anteriormente, el buffer puede ser implementado y coordinado tanto en el software (un programa localiza la parte de memoria intermedia y luego gestiona los flujos de datos de entrada y salida) que hardware (mediante el uso de soportes de memoria). Hoy en día es posible utilizar ambos métodos, pero la solución de software es, con mucho, la más utilizada; con su implementación más sencilla, de hecho, garantiza un rendimiento mucho mayor que la implementación de software del buffer.

¿En qué contextos se recurre a la memoria intermedia?

En primer lugar, se utiliza en la comunicación entre componentes de hardware que trabajan a diferentes velocidades (un procesador procesa mucho más rápido que la adquisición de información del teclado). El buffering intenta eliminar los tiempos de espera minimizando el tiempo de inactividad causado por las bajas velocidades de algunos dispositivos para entrada o salida. Un ejemplo de todos es la impresión de un documento.

El procesador, tras procesar la información a imprimir, la “coloca” en la memoria intermedia para trabajar en otro proceso, reduciendo así el tiempo total sin preocuparse por el tiempo de ejecución de la impresora. De hecho, al impresor le interesará obtener la información del búfer sin consultar al procesador.

Buffering de red (streaming de vídeo)

En redPor otro lado, en el caso de que dos nodos de la red deban intercambiar una gran cantidad de información, es posible que quieran acceder a la memoria intermedia para mantener estos datos hasta que el canal de comunicación deseado esté libre para la comunicación. Se trata de un procedimiento muy importante en el ámbito de las redes porque, si los datos que se envían superan la capacidad de la red, el concentrador hará uso del buffer que se encargará de eliminar la cola.

Otro caso de especial interés en relación con el buffering de la red se encuentra en el ámbito de transmisión de video.

En ese caso, la aplicación web de interés para ver una película, cargará parte de los datos antes de iniciar la reproducción. Esto permitirá, en el caso de que haya un bloqueo del flujo de unos pocos segundos, la continuación de la visualización sin causar problemas particulares.

Querer ver una película en alta definición provocará una carga más lenta que una transmisión en baja definición. Por eso, si utilizamos conexiones de red lentas, tendremos problemas con la transmisión de vídeo en alta definición.