Este artigo não cita fontes confiáveis. (Abril de 2012) |
Em informática Buffer underrun ou Buffer underflow é um efeito geralmente indesejado que ocorre quando um buffer (memória virtual temporária utilizada por diversos tipos de software ou hardware) é lido, ou esvaziado, mais rapidamente do que é reescrito, ou preenchido. Isto pode eventualmente levar a um esvaziamento completo do buffer, causando a interrupção do fluxo de dados.
O buffer underrun, por ser gerado por banda insuficiente em contraposição com erros de gerenciamento de memória que geram o overflow de buffer (ver buffer overflow), é dificilmente resolvido a nível de software. Uma das soluções aplicáveis é aumentar o comprimento do buffer. Esta solução pode não resolver o problema com absoluta certeza, pois, no caso de um esvaziamento constante, ela apenas provê mais tempo até que a memória se esvazie; porém, no caso de esvaziamento causado por flutuações inconstantes na velocidade, essa pode ser uma solução eficiente. Por exemplo, um buffer de 10 kB totalmente preenchido permite uma interrupção de apenas 8 segundos de um fluxo de dados de 10 kbps. Se esse buffer fosse aumentado para 100 kB, porém, esse tempo aumentaria para 80 segundos.
O buffer underrrun apresenta um perigo à gravação de mídias de CD e DVD pois, em muitos tipos de gravação, o interrompimento da gravação causada pelo esvaziamento do buffer pode comprometer a gravação, já que os lasers de gravação podem não ser capazes de retomar a gravação onde ela parou, uma vez que interrompida.
Algumas tecnologias foram criadas para lidar com o problema, como a BurnProof, da Plextor ou a SafeBurn da Yamaha - mídias que permitem que o laser retome uma gravação interrompida. Outra maneira de evitar o problema quando utilizando mídia regravável (CD-RW, DVD-RW, etc) é utilizar o formato de arquivação de dados UDF (Universal Disk Format), que realiza gravações em pacotes endereçados de acordo com uma tabela única, que permitem que a gravação seja feita em pequenos trechos.