WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

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

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

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

Описание

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

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

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

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

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

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

См. также

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

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии