Buffer

Buffer
Información sobre la plantilla
Bufferpc.jpg
Concepto:Dícesele en informática es un espacio de memoria, en el que se almacenan datos para evitar que el programa o recurso que los requiere, ya sea hardware o software, se quede sin datos durante una transferencia.

Buffer.  Área de memoria destinada a almacenar datos por un lapso de tiempo determinado. Un ejemplo de buffer es cuando declarás una variable para almacenar un String o algo así. Si bien se las conoce mejor como variables, nadie puede decir que no se trate de un buffer.

También se llama buffer a ciertos registros hardware que mantienen datos por períodos de tiempo como el Registro de Buffer de Memoria, que es el que se carga con una palabra de memoria cuando se trata de hacer una lectura y mantiene las líneas del bus de datos en un estado tal que refleje esa localidad de memoria hasta que haya sido leída por un registro.

Antecedentes históricos

Una de las primeras ocasiones en que se mencionó el concepto de buffer de impresión fue en 1952 por Russel A. Kirsch para el computador SEAC:

"Uno de los problemas más serios en el diseño de computadores automáticos digitales es la obtención de los resultados calculados por la máquina lo suficientemente rápido como para evitar retrasos en el progreso de los cálculos restantes. En muchos de los problemas en que se aplica un computador de propósito general la cantidad de datos a utilizar es relativamente extensa – tanto que una seria ineficiencia podría provocarse al forzar al computador a esperar que estos datos sean escritos en los dispositivos de impresión existentes. Esta dificultad ha sido resulta en el SEAC mediante el uso de dispositivos magnéticos de grabación utilizados como unidades de salida. Estos dispositivos son capaces de recibir información desde la máquina a frecuencias hasta 100 veces más altas que las frecuencias a las que se puede operar una máquina de escribir. Por ello, se está logrando una mejor eficiencia al grabar los datos de salida y se pueden realizar transcripciones posteriores desde el dispositivo de grabación magnético a un dispositivo de impresión sin comprometer el ordenador principal."

Funcionamiento

Normalmente los datos se almacenan en un buffer mientras son transferidos desde un dispositivo de entrada (como un ratón) o justo antes de enviarlos a un dispositivo de salida (como unos altavoces). También puede utilizarse para transferir datos entre procesos, de una forma parecida a los bufferes utilizados en telecomunicaciones.

Pueden ser implementados por software o hardware, aunque la gran mayoría son del primer tipo. Normalmente se usan cuando la frecuencias de transferencia de datos es distinta a la de procesado, dependiendo de las limitaciones del sistema, o también cuando la frecuencia es variable, como en la recepción de vídeo online (streaming). Éstas diferencias temporales de transmisión son normalmente ajustadas mediante la implementación de un algoritmo con cola (o estructura de tipo FIFO) en memoria, para así escribir datos en la cola a una frecuencia y leerlos a otra.

Los buffers se pueden usar en cualquier sistema digital, no solo en informáticos, como en reproductores de música y vídeo .

Se puede ejemplificar la función de un buffer utilizando ésta metáfora: Un buffer es como tener dinero en el banco (buffer), un trabajo (entrada) y unos gastos fijos (salida). Si tienes un trabajo inestable, mientras tengas ciertos ahorros, puedes mantener tus gastos fijos sin problemas, e ir ingresando dinero cuando puedas según vas trabajando. Si los ahorros son pequeños, en seguida que no tengas trabajo, no vas a poder acometer los gastos fijos. De la misma forma si escuchas música en Internet y tu programa de audio usa un buffer pequeño, en cuanto que haya alguna interrupción en la descarga (porque las descargas nunca tienen una velocidad constante), notarás cortes de sonido, ya que faltará información.

Aplicaciones

Los almacenadores intermedios son de uso frecuente conjuntamente con la entrada-salida al hardware, tal como unidades de disco, enviando o recibiendo datos desde una red, o reproducir el sonido en un altavoz. Una línea a un "rollercoaster" en un parque de atracciones comparte muchas semejanzas. La gente que monta la montaña entra en un desconocido y un paso a menudo variable, pero la montaña rusa podrá cargar a gente en explosiones (mientras que un práctico de costa llega y se carga).

El área de la cola actúa como almacenador intermedio: un espacio temporal donde están disponibles ésos que desean montar esperando hasta el paseo. Los almacenadores intermedios se utilizan generalmente en un método FIFO (primero que llegua, primero que sale).

Diferencias con la caché

Una caché puede ser usada a veces como un buffer, y viceversa. Sin embargo, una caché opera con el supuesto de que los mismos datos van a ser utilizados múltiples veces, que los datos escritos serán leídos en un periodo corto de tiempo, o teniendo en cuenta la posibilidad de múltiples lecturas o escrituras para formar un único bloque más grande. Su premisa básica es reducir los accesos a los almacenamientos de nivel más bajo, los cuales son bastante lentos. La caché también es normalmente una capa de abstracción que está diseñada para ser invisible.

Una caché de disco o archivo de caché guarda las estadísticas de los datos almacenados en él y proporciona datos con un tiempo máximo de espera en modos de escritura en diferido. Un buffer, por el contrario, no hace nada de esto, sino que es utilizado normalmente en entrada, salida y a veces, almacenamiento temporal de datos que se enrutan entre distintos dispositivos o que van a ser modificados de manera no secuencial antes de ser escritos o leídos de manera secuencial.

Ejemplo #1

  • Los buffers comando/orden en CONFIG.SYS de DOS.
  • El buffer entre un puerto serie (UART) y un módem. La velocidad del puerto COM puede ser de 38400 bps, mientras que el módem puede soportar sólo 14400 bps.
  • El buffer integrado en un disco duro, una impresora o cualquier otro dispositivo de hardware.
  • El buffer de una tarjeta de vídeo donde se van almacenando cada fotograma.


Buffer de telecomunicación

La rutina del buffer o bien el almacenamiento medio usado en telecomunicaciones, compensa una diferencia en el flujo de datos, o el tiempo de la ocurrencia, al transferir datos a partir de un dispositivo a otro.

Los almacenadores intermedios se utilizan para muchos propósitos, por ejemplo:

- Interconectando dos circuitos digitales que funcionan a diversas tarifas.

- Datos de posesión para el uso en un momento posterior.

- Permitir que las correcciones que miden el tiempo sean hechas en una secuencia de datos.

- Recoger los bits de datos binarios en los grupos que pueden funcionar encendido como unidad.

- Retraso de la época de tránsito de una señal para permitir que otras operaciones ocurran.

Ejemplo #2

  • El buffer de teclado es una memoria intermedia en la que se van almacenando los caracteres que un usuario teclea, los cuales son tratados por el computador a penas se libere un recurso.
  • En audio o video en streaming por Internet. Se tiene un buffer para que haya menos posibilidades de que se corte la reproducción cuando se reduzca o corte el ancho de banda.
  • Un buffer adecuado permite que en el salto entre dos canciones no haya una pausa molesta.
  • Las grabadoras de CD o DVD, tienen un buffer para que no se pare la grabación. Hoy en día hay sistemas para retomar la grabación pero antes suponía que el CD no quedaba bien grabado y muchas veces era inservible.

Fuentes