Двойная буферизация

Двойная буферизация

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

Основные области применения двойной буферизации:

  • отрисовка содержимого экрана
  • воспроизведение смешанного звука от нескольких источников

Описание

При использовании двойной буферизации вывод информации осуществляется во вторичный буфер, а чтение информации для отдачи «наружу» — из первичного.

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

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

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

Проблема, которую решает двойная буферизация, выглядит так: все видеоадаптеры, кроме совсем древних (CGA), позволяют процессору писать в видеопамять только на обратных ходах кадровой развертки, во избежание появления артефактов. Если алгоритм отрисовки очередного кадра сложен, то на него может не хватить обратного хода. Потому зачастую в играх использовалась отрисовка всего экрана на "экран в памяти", что могло делаться вне обратных ходов, с последующим копированием всего этого экрана (64000 байт для стандартного режима VGA) в видеопамять на обратном ходе.

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

См. также

Существует модификация метода двойной буферизации, которая называется тройная буферизация, позволяющая уменьшить задержки в выводе результата из-за несовпадения скоростей ввода/вывода ценой увеличения количества буферов.

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "Двойная буферизация" в других словарях:

  • двойная буферизация — Использование двух буферов для хранения передаваемых данные. Двойная буферизация используется с целью ускорения пересылки данных. Здесь, в то время, когда один буфер принимает данные от их источника, другой буфер передает ранее принятые данные… …   Справочник технического переводчика

  • двойная буферизация — dvigubasis tarpinis kaupimas statusas T sritis radioelektronika atitikmenys: angl. double buffering vok. doppelte Pufferung, f rus. двойная буферизация, f pranc. tamponnage double, m …   Radioelektronikos terminų žodynas

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

  • Буферизация (информатика) — Буферизация (от англ. buffer) метод организации обмена, в частности, ввода и вывода данных в компьютерах и других вычислительных устройствах, который подразумевает использование буфера для временного хранения данных. При вводе данных одни… …   Википедия

  • Буферизация — (от англ. buffer) метод организации обмена, в частности, ввода и вывода данных в компьютерах и других вычислительных устройствах, который подразумевает использование буфера для временного хранения данных. При вводе данных одни устройства или… …   Википедия

  • Буфер (информатика) — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете …   Википедия

  • Буфер (вычислительная техника) — В информатике буфер (англ. buffer) это область памяти, используемая для временного хранения данных при вводе или выводе. Обмен данными (ввод и вывод) может происходить как с внешними устройствами, так и с процессами в пределах компьютера. Буферы… …   Википедия

  • Основной протокол X Window System — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете …   Википедия

  • Sinclair QL — Тип персональный компьютер Выпущен 12 января 1984 …   Википедия

  • Кадровый буфер — Аппаратный видеобуфер Sun cgsix Кадровый буфер (англ. framebuffer) (другие названия: буфер кадр …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»