fbpx
Wikipedia

Búfer de datos

En informática, un búfer (del inglés, buffer) es un espacio de memoria, en el que se almacenan datos de manera temporal, normalmente para un único uso (generalmente ocupan un sistema de cola FIFO); su principal función es evitar que el programa o recurso que los requiere, ya sea hardware o software, se quede sin datos durante una transferencia (entrada/salida) de datos irregular o por la velocidad del proceso.

Normalmente los datos se almacenan en un búfer mientras son transferidos desde un dispositivo de entrada (como un ratón o mouse) o justo antes de enviarlos a un dispositivo de salida (por ejemplo: altavoces). También puede utilizarse para transferir datos entre procesos, de una forma parecida a los búferes utilizados en telecomunicaciones. Un ejemplo de esto último ocurre en una comunicación telefónica, en la que al realizar una llamada esta se almacena, se disminuye su calidad y el número de bytes a ser transferidos, y luego se envían estos datos modificados al receptor.

Implementación

Los búferes pueden ser implementados por software o hardware, esto depende del origen del búfer, aunque la gran mayoría son del tipo software debido a la flexibilidad para su creación.

Normalmente se usan cuando la frecuencia 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 en-línea (streaming). Estas diferencias temporales de transmisión son normalmente ajustadas mediante la implementación de un algoritmo tipo cola (o estructura de tipo FIFO) en memoria, para así escribir datos en la cola a una frecuencia y leerlos a otra. Esto ocurre en el envío de datos de un procesador a una impresora para que los imprima. La velocidad de impresión de la impresora en comparación a la del procesador es muy lenta, debido a esto la impresora tendrá que tener una cola FIFO (software), para ir acumulando los trabajos que todavía no se han podido imprimir.

Los búferes se pueden usar en cualquier sistema digital, no solo en informáticos, como en reproductores de música y video.

Se puede ejemplificar la función de un búfer utilizando esta metáfora: «un búfer 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, enseguida 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 búfer pequeño, en cuanto 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».

Requerimientos mínimos

Para que un búfer, de tipo software o hardware, pueda funcionar correctamente es indispensable que este posea como mínimo las siguientes características:

  • Espacio: es la memoria en donde se guarda la información almacenada en el búfer, sin ella no existe en donde guardar la información
  • Dirección: indica en donde esté el espacio
  • Dimensión: indica el tamaño del espacio
  • Índice o particiones: indica cómo se utilizara la información almacenada en el búfer

Aplicaciones

Los búferes se utilizan, a menudo, conjuntamente con E/S de hardware, tal como unidades de disco, enviar o recibir datos a/o desde una red, o reproducción de sonido en un altavoz. Una línea a una montaña rusa en un parque de atracciones comparte muchas similitudes. Las personas que viajan en la montaña llegan a un ritmo desconocido y variable, pero la montaña rusa será incapaz de cargar personas de golpe (tal como llegan se van montando). La zona de la cola actúa como un búfer: un espacio temporal donde los que deseen viajar deben esperar a que el viaje esté disponible. Los búferes utilizan generalmente un método FIFO (primero en entrar, primero en salir), es decir, la salida de datos se produce en el orden en que llegaron.

Si los búferes contienen información de gran volumen (por ejemplo, archivos para entrada y salida pseudo fuera de línea), el búfer limitado aún se puede usar para almacenar las direcciones de los búferes que se utilizan para almacenar la información. Aquí entra en juego la memoria virtual, la memoria física es sólo una proyección parcial de la memoria lógica, potencialmente mucho mayor. De este modo el productor puede estar llenando un búfer mientras el consumidor está vaciando otro búfer al mismo tiempo

Diferencias con la caché

Una memoria caché puede ser usada a veces como un búfer, 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 búfer, 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.

Ejemplos:

Historia

Una de las primeras ocasiones en que se mencionó el concepto de búfer de impresión fue en 1952, por Russel A. Kirsch para el computador SEAC:[1]

"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 ineficiente, 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 resuelta 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."

Problemas

Los problemas más comunes para los búferes son:

  • Desbordamiento de búfer (overflow), también conocido como overrun, el cual se da cuando el tamaño del búfer es insuficiente para almacenar la información que se desea ingresar normalmente ocasionado por un problema de programación en donde el programa al usar el búfer malinterpreta el tamaño de dicho búfer.
  • Subdesbordamiento de búfer (underflow), también conocido como underrun, es un problema generado por la falta de información en el búfer cuando es requerida por el otro programa ocasionando generalmente por un error de tiempos, velocidad inestable de transferencia de datos.
  • Sobreescritura, también conocido como overwrite, es un problema generalmente creado por la mala programación del búfer ya que se escribe información en espacios de memoria donde todavía no se utiliza esa información ocasionando la pérdida de dicha información.

Búfer de telecomunicación

La rutina del búfer, 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 desde un dispositivo a otro.

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

  • Interconectando dos circuitos digitales que funcionan a diversas velocidades.
  • 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.

Otros ejemplos

  • 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 apenas se libere un recurso.
  • Las grabadoras de CD o DVD, tienen un búfer 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 disco óptico no quedaba bien grabado y muchas veces era inservible.
  • En audio o video en streaming por Internet, se tiene un búfer 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.
  • YouTube y otros servicios de video y televisión web, cuentan con un búfer, que suele ser mejorado por un búfer inteligente (smart buffer),[2]​ para evitar que se interrumpa la reproducción, y que viene con los navegadores de internet de ordenadores, tabletas y televisiones inteligentes.

Administración

A continuación se muestran algunas de las formas en que se administran los diferentes tipos de búferes, cada método a utilizar depende de la información a tratar o de los procesos que la van a utilizar.

  1. Almacenamiento temporal único por demanda: este sistema no consta más que del búfer y el programa que lo utiliza. El búfer es simplemente un algoritmo de cola utilizado por el programa, por lo que es este último quien le especifica cuándo lo va a utilizar por medio de demandas.
  2. Almacenamiento temporal por anticipación: en este caso, se le añade una bandera (flag) al búfer, que va a estar cambiando de valor constantemente para indicar cuando este está lleno o vacío. Esto con el fin de que el búfer se anticipe a las demandas del programa y pueda llenarse por sí mismo cuando se detecte que ya está vacío.
  3. Almacenamiento temporal con bloques: aparte de la bandera, en este caso, el búfer también tiene una variable contador, que le permite saber el índice del último registro que pudo almacenar en su memoria. Así, cuando se leen bloques grandes de información, el búfer sabe exactamente cuál es el siguiente registro a procesar.
  4. Doble almacenamiento temporal: este método consta de dos búferes idénticos al del caso del almacenamiento temporal con bloques, y estos trabajan de forma coordinada almacenando información que el otro no alcanzó a almacenar antes de llenarse. La idea es que un búfer se llene mientras el otro se vacía, con el fin de optimizar el proceso.
  5. Triple almacenamiento temporal: en este caso, se cuenta con tres búferes coordinados. Al menos uno siempre tiene que estar lleno, así el programa puede estar procesando información sin interrupciones.

Referencias

  1. «SEAC Maintenance Manual: The Outscriber». National Bureau of Standards Report 2794. julio de 1953. 
  2. http://smartvideo.ashishmishra.in/
  •   Datos: Q331911
  •   Multimedia: Category:Data buffer

búfer, datos, informática, búfer, inglés, buffer, espacio, memoria, almacenan, datos, manera, temporal, normalmente, para, único, generalmente, ocupan, sistema, cola, fifo, principal, función, evitar, programa, recurso, requiere, hardware, software, quede, dat. En informatica un bufer del ingles buffer es un espacio de memoria en el que se almacenan datos de manera temporal normalmente para un unico uso generalmente ocupan un sistema de cola FIFO su principal funcion es evitar que el programa o recurso que los requiere ya sea hardware o software se quede sin datos durante una transferencia entrada salida de datos irregular o por la velocidad del proceso Normalmente los datos se almacenan en un bufer mientras son transferidos desde un dispositivo de entrada como un raton o mouse o justo antes de enviarlos a un dispositivo de salida por ejemplo altavoces Tambien puede utilizarse para transferir datos entre procesos de una forma parecida a los buferes utilizados en telecomunicaciones Un ejemplo de esto ultimo ocurre en una comunicacion telefonica en la que al realizar una llamada esta se almacena se disminuye su calidad y el numero de bytes a ser transferidos y luego se envian estos datos modificados al receptor Indice 1 Implementacion 1 1 Requerimientos minimos 2 Aplicaciones 3 Diferencias con la cache 4 Historia 5 Problemas 6 Bufer de telecomunicacion 7 Otros ejemplos 8 Administracion 9 ReferenciasImplementacion EditarLos buferes pueden ser implementados por software o hardware esto depende del origen del bufer aunque la gran mayoria son del tipo software debido a la flexibilidad para su creacion Normalmente se usan cuando la frecuencia de transferencia de datos es distinta a la de procesado dependiendo de las limitaciones del sistema o tambien cuando la frecuencia es variable como en la recepcion de video en linea streaming Estas diferencias temporales de transmision son normalmente ajustadas mediante la implementacion de un algoritmo tipo cola o estructura de tipo FIFO en memoria para asi escribir datos en la cola a una frecuencia y leerlos a otra Esto ocurre en el envio de datos de un procesador a una impresora para que los imprima La velocidad de impresion de la impresora en comparacion a la del procesador es muy lenta debido a esto la impresora tendra que tener una cola FIFO software para ir acumulando los trabajos que todavia no se han podido imprimir Los buferes se pueden usar en cualquier sistema digital no solo en informaticos como en reproductores de musica y video Se puede ejemplificar la funcion de un bufer utilizando esta metafora un bufer 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 segun vas trabajando Si los ahorros son pequenos enseguida que no tengas trabajo no vas a poder acometer los gastos fijos De la misma forma si escuchas musica en Internet y tu programa de audio usa un bufer pequeno en cuanto haya alguna interrupcion en la descarga porque las descargas nunca tienen una velocidad constante notaras cortes de sonido ya que faltara informacion Requerimientos minimos Editar Para que un bufer de tipo software o hardware pueda funcionar correctamente es indispensable que este posea como minimo las siguientes caracteristicas Espacio es la memoria en donde se guarda la informacion almacenada en el bufer sin ella no existe en donde guardar la informacion Direccion indica en donde este el espacio Dimension indica el tamano del espacio Indice o particiones indica como se utilizara la informacion almacenada en el buferAplicaciones EditarLos buferes se utilizan a menudo conjuntamente con E S de hardware tal como unidades de disco enviar o recibir datos a o desde una red o reproduccion de sonido en un altavoz Una linea a una montana rusa en un parque de atracciones comparte muchas similitudes Las personas que viajan en la montana llegan a un ritmo desconocido y variable pero la montana rusa sera incapaz de cargar personas de golpe tal como llegan se van montando La zona de la cola actua como un bufer un espacio temporal donde los que deseen viajar deben esperar a que el viaje este disponible Los buferes utilizan generalmente un metodo FIFO primero en entrar primero en salir es decir la salida de datos se produce en el orden en que llegaron Si los buferes contienen informacion de gran volumen por ejemplo archivos para entrada y salida pseudo fuera de linea el bufer limitado aun se puede usar para almacenar las direcciones de los buferes que se utilizan para almacenar la informacion Aqui entra en juego la memoria virtual la memoria fisica es solo una proyeccion parcial de la memoria logica potencialmente mucho mayor De este modo el productor puede estar llenando un bufer mientras el consumidor esta vaciando otro bufer al mismo tiempoDiferencias con la cache EditarUna memoria cache puede ser usada a veces como un bufer y viceversa Sin embargo una cache opera con el supuesto de que los mismos datos van a ser utilizados multiples veces que los datos escritos seran leidos en un periodo corto de tiempo o teniendo en cuenta la posibilidad de multiples lecturas o escrituras para formar un unico bloque mas grande Su premisa basica es reducir los accesos a los almacenamientos de nivel mas bajo los cuales son bastante lentos La cache tambien es normalmente una capa de abstraccion que esta disenada para ser invisible Una cache de disco o archivo de cache guarda las estadisticas de los datos almacenados en el y proporciona datos con un tiempo maximo de espera en modos de escritura en diferido Un bufer 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 leidos de manera secuencial Ejemplos Los buferes comando orden en CONFIG SYS de DOS El bufer entre un puerto serie UART y un modem La velocidad del puerto COM puede ser de 38400 bps mientras que el modem puede soportar solo 14400 bps El bufer integrado en un disco duro una impresora o cualquier otro dispositivo de hardware El bufer de una tarjeta de video donde se van almacenando cada fotograma Historia EditarUna de las primeras ocasiones en que se menciono el concepto de bufer de impresion fue en 1952 por Russel A Kirsch para el computador SEAC 1 Uno de los problemas mas serios en el diseno de computadores automaticos digitales es la obtencion de los resultados calculados por la maquina lo suficientemente rapido como para evitar retrasos en el progreso de los calculos restantes En muchos de los problemas en que se aplica un computador de proposito general la cantidad de datos a utilizar es relativamente extensa tanto que una seria ineficiente podria provocarse al forzar al computador a esperar que estos datos sean escritos en los dispositivos de impresion existentes Esta dificultad ha sido resuelta en el SEAC mediante el uso de dispositivos magneticos de grabacion utilizados como unidades de salida Estos dispositivos son capaces de recibir informacion desde la maquina a frecuencias hasta 100 veces mas altas que las frecuencias a las que se puede operar una maquina de escribir Por ello se esta logrando una mejor eficiencia al grabar los datos de salida y se pueden realizar transcripciones posteriores desde el dispositivo de grabacion magnetico a un dispositivo de impresion sin comprometer el ordenador principal Problemas EditarLos problemas mas comunes para los buferes son Desbordamiento de bufer overflow tambien conocido como overrun el cual se da cuando el tamano del bufer es insuficiente para almacenar la informacion que se desea ingresar normalmente ocasionado por un problema de programacion en donde el programa al usar el bufer malinterpreta el tamano de dicho bufer Subdesbordamiento de bufer underflow tambien conocido como underrun es un problema generado por la falta de informacion en el bufer cuando es requerida por el otro programa ocasionando generalmente por un error de tiempos velocidad inestable de transferencia de datos Sobreescritura tambien conocido como overwrite es un problema generalmente creado por la mala programacion del bufer ya que se escribe informacion en espacios de memoria donde todavia no se utiliza esa informacion ocasionando la perdida de dicha informacion Bufer de telecomunicacion EditarLa rutina del bufer 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 desde un dispositivo a otro Los almacenadores intermedios se utilizan para muchos propositos por ejemplo Interconectando dos circuitos digitales que funcionan a diversas velocidades Datos de posesion 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 epoca de transito de una senal para permitir que otras operaciones ocurran Otros ejemplos EditarEl 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 apenas se libere un recurso Las grabadoras de CD o DVD tienen un bufer para que no se pare la grabacion Hoy en dia hay sistemas para retomar la grabacion pero antes suponia que el disco optico no quedaba bien grabado y muchas veces era inservible En audio o video en streaming por Internet se tiene un bufer para que haya menos posibilidades de que se corte la reproduccion 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 YouTube y otros servicios de video y television web cuentan con un bufer que suele ser mejorado por un bufer inteligente smart buffer 2 para evitar que se interrumpa la reproduccion y que viene con los navegadores de internet de ordenadores tabletas y televisiones inteligentes Administracion EditarA continuacion se muestran algunas de las formas en que se administran los diferentes tipos de buferes cada metodo a utilizar depende de la informacion a tratar o de los procesos que la van a utilizar Almacenamiento temporal unico por demanda este sistema no consta mas que del bufer y el programa que lo utiliza El bufer es simplemente un algoritmo de cola utilizado por el programa por lo que es este ultimo quien le especifica cuando lo va a utilizar por medio de demandas Almacenamiento temporal por anticipacion en este caso se le anade una bandera flag al bufer que va a estar cambiando de valor constantemente para indicar cuando este esta lleno o vacio Esto con el fin de que el bufer se anticipe a las demandas del programa y pueda llenarse por si mismo cuando se detecte que ya esta vacio Almacenamiento temporal con bloques aparte de la bandera en este caso el bufer tambien tiene una variable contador que le permite saber el indice del ultimo registro que pudo almacenar en su memoria Asi cuando se leen bloques grandes de informacion el bufer sabe exactamente cual es el siguiente registro a procesar Doble almacenamiento temporal este metodo consta de dos buferes identicos al del caso del almacenamiento temporal con bloques y estos trabajan de forma coordinada almacenando informacion que el otro no alcanzo a almacenar antes de llenarse La idea es que un bufer se llene mientras el otro se vacia con el fin de optimizar el proceso Triple almacenamiento temporal en este caso se cuenta con tres buferes coordinados Al menos uno siempre tiene que estar lleno asi el programa puede estar procesando informacion sin interrupciones Referencias Editar SEAC Maintenance Manual The Outscriber National Bureau of Standards Report 2794 julio de 1953 http smartvideo ashishmishra in Datos Q331911 Multimedia Category Data buffer Obtenido de https es wikipedia org w index php title Bufer de datos amp oldid 140680366, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos