Jump to content

Опустошение буфера

В вычислениях подаются опустошение буфера или опустошение буфера — это состояние, возникающее, когда в буфер, используемый для связи между двумя устройствами или процессами, данные с более низкой скоростью, чем данные считываются из него. Этот термин отличается от переполнения буфера — состояния, при котором часть памяти образует буфер фиксированного размера, но заполнена большим количеством данных. Это требует, чтобы программа или устройство, считывающее данные из буфера, приостановили свою обработку на время заполнения буфера. Это может вызвать нежелательные, а иногда и серьезные побочные эффекты, поскольку буферизуемые данные обычно не подходят для такого рода доступа с остановкой и запуском.

С точки зрения параллельного программирования опустошение буфера можно рассматривать как форму нехватки ресурсов .

Термины опустошение буфера и опустошение буфера также используются для обозначения недозаписи буфера , состояния, аналогичного переполнению буфера, но когда программу обманом заставляют писать до начала буфера, переопределяя потенциальные данные там, например, биты разрешения . [1]

Общие причины и решения

[ редактировать ]

буфера Опустошение часто является результатом временных проблем, связанных с соединением буферизуемым : либо соединением между двумя процессами, когда другие конкурируют за время ЦП , либо физическим каналом связи, когда устройства конкурируют за пропускную способность .

Самая простая защита от таких проблем — увеличить размер буфера: если входящий поток данных необходимо читать со скоростью 1 бит в секунду, буфер в 10 бит позволит заблокировать соединение на срок до 10 секунд, прежде чем произойдет сбой. тогда как один из 60 бит допускает блокировку до минуты. Однако для этого требуется больше памяти, доступной процессу или устройству, что может быть дорогостоящим. Предполагается, что буфер начинает заполняться (требуется потенциально значительная пауза перед началом процесса чтения) и что он всегда будет оставаться заполненным, если соединение в данный момент не заблокировано. Если данные в среднем не доставляются быстрее, чем необходимо, любые блокировки соединения будут накапливаться; «Отбрасывание» одного бита каждую минуту в гипотетическом соединении с 60-битным буфером привело бы к опустошению буфера, если бы соединение оставалось активным в течение часа. В приложениях реального времени большой размер буфера также увеличивает задержку между вводом и выводом, что нежелательно в приложениях с низкой задержкой, таких как видеоконференции.

Проблемы с записью CD и DVD

[ редактировать ]

Опустошение буфера может вызвать серьезные проблемы во время записи CD/DVD , поскольку после начала записи она не может остановиться и возобновиться безупречно; таким образом, пауза, необходимая для опустошения, может привести к тому, что данные на диске станут недействительными. Поскольку буфер обычно заполняется из относительно медленного источника, такого как жесткий диск или другой CD/DVD, большая загрузка ЦП или памяти от других параллельных задач может легко исчерпать емкость небольшого буфера. Поэтому технология, называемая защитой от опустошения буфера , была реализована различными поставщиками устройств записи CD/DVD под различными торговыми марками , такими как Plextor BurnProof, Nero UltraBuffer, Yamaha SafeBurn, JustLink и Seamless Link. Благодаря этому методу лазер действительно может прекратить запись на любое время и возобновить запись, когда буфер снова заполнится. Разрыв между последовательными операциями записи чрезвычайно мал.

Другой способ защиты от этой проблемы при использовании перезаписываемых носителей ( CD-RW , DVD-RW , DVD-RAM ) — использовать файловую систему UDF , которая организует данные в более мелкие « пакеты », на которые ссылается один обновленный адрес. таблицу, которую поэтому можно записывать более короткими пакетами.

Воспроизведение мультимедиа

[ редактировать ]

Если фреймбуфер графического контроллера не обновляется, изображение на экране компьютера будет зависать до тех пор, пока в буфер не поступят новые данные. Многие программы видеоплееров (например, MPlayer ) имеют возможность пропускать кадры, если система перегружена, намеренно допуская опустошение буфера для поддержания темпа.

Буфер в аудиоконтроллере представляет собой кольцевой буфер . Если происходит опустошение и аудиоконтроллер не остановлен, он либо продолжит повторять звук, содержащийся в буфере, либо выведет тишину в зависимости от реализации. Такой эффект обычно называют «пулеметом» или эффектом заикания Макса Хедрума . Это происходит, если операционная система зависает во время воспроизведения звука. Процедура обработки ошибок (например, синий экран смерти ) может в конечном итоге остановить работу аудиоконтроллера.

Намеренная имитация этого звукового сбоя во время создания музыки или саунд-арта путем ручного объединения звука или повторного запуска сэмплов или с помощью плагинов называется редактированием заикания .

  1. ^ «CWE-124: Незапись буфера («Недополнение буфера»)» . КВЕ .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 965412c44b7eb64ebe8f04585a7e35c9__1666545540
URL1:https://arc.ask3.ru/arc/aa/96/c9/965412c44b7eb64ebe8f04585a7e35c9.html
Заголовок, (Title) документа по адресу, URL1:
Buffer underrun - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)