Subdesbordamiento de búfer

Subdesbordamiento de búfer
Información sobre la plantilla
Bufferunderrun.jpg
Concepto:Problema aritmético, que sucede cuando un búfer carga su información a una velocidad más baja que el procesamiento de la misma


En informática un subdesbordamiento de búfer (Buffer underflow/underrun) es un problema aritmético, esto sucede cuando un búfer carga su información (flujo de datos) a una velocidad más baja que el procesamiento de la misma, esto hace que el programa o dispositivo que procesa dicha información se detenga momentánea y seguidamente por el hecho de que si continua, estaría haciendo una solicitud a un espacio de memoria nula, un subdesbordamiento de búfer puede efectuarse en cualquier software o dispositivo que dependa del flujo de datos o carga de un búfer: Grabadores, exploradores de internet, etc.

Descripción

Cuando el dispositivo que lee la información del búfer lo hace a una velocidad mayor que la velocidad de escritura del dispositivo que "llena" el búfer. La información se agota y el dispositivo de lectura se ve obligado a parar. Por lo tanto "lentitud de llenado" o "almacenamiento del búfer", como explicaciones, son solo parciales (un búfer puede llenar lentamente y no dar lugar a un "subdesbordamiento", siempre que la velocidad de vaciado sea todavia mas lenta). Podriamos utilizar expresiones más explicativas todavía (y correctas en español), como "insuficiente velocidad de llenado de la memoria intermedia", pero quizás sería más lógico adaptar o escoger términos especificos más concisos.

Underflow/run vs Overflow/run

Un subdesbordamiento de búfer (buffer Underflow/run) es el opuesto de desbordamiento de búfer (buffer Overflow/run), por el hecho de que este último se produce mediante la aparición de una sobrecarga en el búfer y la incapacidad de procesar la información almacenada en él y un subdesbordamiento de búfer se produce por la falta de información en un búfer y el exceso de capacidad de procesar la información almacenada en él.

Subdesbordamiento en Grabadoras

Un subdesbordamiento de búfer durante la grabación de un CD o de un DVD es generado por falta de flujo de datos en el búfer de la grabadora, esto hace que el láser de la misma no pueda detenerse y comience a escribir el disco con información invalida, esto hace del disco un disco inservible e irreutilizable. En un principio los quemadores de CD necesitaban un flujo constante de datos, pues no podían parar el láser en ningún momento del proceso de grabación. Si esto ocurría (se interrumpe el flujo de datos y el láser se para) el disco quedaba inservible. Para evitar este problema tan costoso, se añadió a los quemadores una memoria propia denominada memoria caché o buffer, el funcionamiento de esta memoria en el proceso de grabación es el siguiente:

  • Los datos a grabar son leídos del dispositivo fuente (por ejemplo el disco duro) y se van introduciendo en esta memoria caché ó buffer.
  • Cuando esta memoria se ha llenado, se empieza a grabar en el disco y los datos ya grabados son sustituidos en la memoria caché o buffer por datos nuevos, de este modo si se produce un error en el flujo de datos (por ejemplo: Si se activa el protector de pantalla, el disco duro no puede enviar mas datos al quemador hasta que lea el software del protector de pantalla) la memoria caché sigue suministrando datos, es decir, disponemos de unos segundos para que el disco duro vuelva a reanudar el flujo de datos.
  • Si esto no ocurre y la memoria caché o buffer se vacía, se produce el temido Buffer Underrun y la grabación se detiene quedando el disco inservible.

El número de segundos depende del tamaño de la memoria buffer, cuanto mayor sea esta memoria, mayor número de segundos dispondrá el sistema antes de que se produzca el temido error. Esto significa que anteriormente mientras estábamos grabando no podíamos utilizar el computador hasta que terminase la grabación.

Protección frente al Subdesbordamiento Burn-Proof

Como veiamos anteriormente, la memoria caché ó buffer nos ayudaba hasta tanto ésta no se vaciara, dado que si eso ocurría, entonces se perdía el disco que estabamos grabando, debido a esto, tener un quemador con memoria caché ó buffer con muchos MB no era garantía para que el temido BUFFER UNDERRUN no apareciera.

A mediados del año 2000, empezaron a aparecer unidades CD-RW que utilizaban una combinacion de hardware/firmware que hacían al 'buffer underrun' una cosa del pasado. Originado y patentado por Sanyo, la tecnología BURN-Proof (Buffer UndeRuN-Proof technology) trabaja constantemente revisando el estado del buffer de datos, asi que, si se detecta que la memoria cache está vacía, éste pausa la grabación y ordena al láser que haga una pequeña marca en el disco (GAP) y cuando esta memoria vuelve a llenarse el láser reanuda la grabación justo en el punto donde dejó la marca, esto permite además poder realizar otras tareas con el computador mientras el quemador está haciendo su trabajo y olvidarnos de una vez por todas del odiado Buffer Underrun.

Los GAP o pequeñas marcas que hacen en el disco los sistemas de protección contra el buffer underrun son el motivo por el que ciertas personas (sobre todas aquellas que dedican el quemador a escribir CD de Audio) quieren quemadores con la mayor cantidad de memoria caché posible, para de este modo evitar en lo posible el vaciado de esta memoria e impedir así que entre en funcionamiento el sistema de protección y deje un GAP en el disco. El objetivo de evitar estos GAP's es conseguir la mayor calidad de grabación posible, tan importante en el mundo audio (es lógico que quien tiene un muy buen y caro equipo de música quiera una copia de seguridad fidedigna de su CD de música preferido). Pero una memoria caché alta no protege al 100% del temido buffer underrun por lo que lo ideal es un quemador con la mayor cantidad de memoria caché posible y un buen sistema de protección contra el buffer underrun que actué en segundo plano por si acaso.

La compañía Plextor usa la tecnología de Sanyo en combinacion con su propia metodología "PoweRec" (Plextor Optimised Writing Error Reduction Control). Con esta, la grabación es periodicamente pausada usando la tecnología BURN-Proof, permitiendo que la calidad de grabado sea revisada y de una manera u otra esto permita aumentar la velocidad de grabacion en algunos incrementos.

Otros fabricantes de unidades han licenciado tecnologías similares o han desarrollado sus propias versiones. Mitsumi usa la tecnología de OAK el sistema "ExacLink", LG Electronics utiliza su tecnología "SuperLink", Yamaha utiliza los mismos metodos pero sobre una marca llamada "SafeBurn", Lite-On la llama "Smart Burn", Acer Communications se refiere a su tecnología como "Seamless Link" y Ricoh a la suya como "JustLink". Aunque se conocen con distintos nombres, el resultado es el mismo.

Existen varias maneras de combatir la falta de data en el buffer:

  • Desfragmentar tu disco duro antes del proceso de grabación.
  • Copiar la data a tu disco duro local antes de grabar, pero asegúrate de hacer espacio en tu disco duro, al menos 650 MB que es la capacidad de la mayoría de los CDs. También, es bueno hacer una imagen (duplicado de la fuente) en tu disco duro antes de grabar.
  • No grabes un CD a través de una red.
  • El flujo de data puede ser interrumpido por archivos corrompidos y sectores dañados en el disco duro. Corre el programa apropiado para hacer este tipo de revisiones y corregir los problemas.
  • Asegúrate que tu CD está limpio antes de grabar.
  • CDs de calidad inferior pueden causar problemas. Si los CDs de un fabricante en particular te han fallado, intenta otra marca de discos. [Es conocida una incompatibilidad de los equipos SAMSUNG para reproducir ciertos CD-R, para estos equipos utiliza siempre CD-R marca PRINCO].

Enlaces internos

Enlaces externos