Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Память, используемая временно при передаче данных
Memory used temporarily in data transfers
В информатике буфер данных (или просто буфер) — это область памяти, используемая для временного хранения данных во время их перемещения из одного места в другое. Обычно данные сохраняются в буфере при получении от устройства ввода (например, микрофона) или непосредственно перед отправкой на устройство вывода (например, динамики). Однако буфер может использоваться и при перемещении данных между процессами внутри компьютера, что сопоставимо с буферами в телекоммуникациях. Буферы могут быть реализованы в фиксированном месте памяти аппаратно или с помощью виртуального буфера данных в программном обеспечении, указывающего на область в физической памяти. Во всех случаях данные, хранящиеся в буфере, располагаются на физическом носителе. Большинство буферов реализованы программно, обычно используя более быструю оперативную память для временного хранения данных из-за значительно меньшего времени доступа по сравнению с жесткими дисками. Буферы обычно применяются, когда существует разница между скоростью получения данных и скоростью их обработки, или когда эти скорости непостоянны, например, в спулере принтера или при онлайн-видеопотоковой передаче. В распределённых вычислительных системах буфер данных часто реализуется в виде burst buffer, предоставляющего распределённую буферную службу. Буфер часто корректирует временные характеристики, реализуя алгоритм очереди (или FIFO) в памяти, одновременно записывая данные в очередь с одной скоростью и считывая их с другой.
In computer science, a data buffer (or just buffer) is a region of a memory used to store data temporarily while it is being moved from one place to another. Typically, the data is stored in a buffer as it is retrieved from an input device (such as a microphone) or just before it is sent to an output device (such as speakers). However, a buffer may be used when data is moved between processes within a computer. That is comparable to buffers in telecommunication. Buffers can be implemented in a fixed memory location in hardware or by using a virtual data buffer in software that points at a location in the physical memory. In all cases, the data stored in a data buffer are stored on a physical storage medium. A majority of buffers are implemented in software, which typically use the faster RAM to store temporary data because of the much faster access time compared with hard disk drives. Buffers are typically used when there is a difference between the rate at which data is received and the rate at which it can be processed, or in the case that these rates are variable, for example in a printer spooler or in online video streaming. In the distributed computing environment, data buffer is often implemented in the form of burst buffer, which provides distributed buffering service. A buffer often adjusts timing by implementing a queue (or FIFO) algorithm in memory, simultaneously writing data into the queue at one rate and reading it at another rate.
Приложения
Буферы часто используются совместно с вводом/выводом к аппаратному обеспечению, такому как дисковые накопители, отправка или прием данных по сети, или воспроизведение звука через динамик. Аналогию можно провести с очередью на аттракцион в парке развлечений. Люди приходят в неизвестном и часто непостоянном темпе, но аттракцион способен загружать посетителей группами (по мере прибытия и загрузки вагонов). Зона ожидания выполняет роль буфера – временного пространства, где желающие покататься ждут, пока аттракцион будет свободен. Буферы обычно используются по принципу FIFO (первый пришел – первый ушел), выдавая данные в порядке их поступления. Буферы могут повысить производительность приложений, позволяя синхронным операциям, таким как чтение или запись файлов, завершаться быстро, вместо блокировки в ожидании аппаратных прерываний для доступа к физической подсистеме диска. Вместо этого операционная система может немедленно вернуть успешный результат вызова API, позволяя приложению продолжить обработку, пока ядро завершает операцию с диском в фоновом режиме. Дополнительные преимущества достигаются, когда приложение читает или записывает небольшие блоки данных, не соответствующие размеру блока подсистемы диска. В этом случае буфер может использоваться для объединения множества небольших операций чтения или записи в блоки, более эффективные для подсистемы диска, или, в случае чтения, для полного исключения необходимости физического доступа к диску.
Buffers are often used in conjunction with I/O to hardware, such as disk drives, sending or receiving data to or from a network, or playing sound on a speaker. A line to a rollercoaster in an amusement park shares many similarities. People who ride the coaster come in at an unknown and often variable pace, but the roller coaster will be able to load people in bursts (as a coaster arrives and is loaded). The queue area acts as a buffer—a temporary space where those wishing to ride wait until the ride is available. Buffers are usually used in a FIFO (first in, first out) method, outputting data in the order it arrived. Buffers can increase application performance by allowing synchronous operations such as file reads or writes to complete quickly instead of blocking while waiting for hardware interrupts to access a physical disk subsystem; instead, an operating system can immediately return a successful result from an API call, allowing an application to continue processing while the kernel completes the disk operation in the background. Further benefits can be achieved if the application is reading or writing small blocks of data that do not correspond to the block size of the disk subsystem, which allows a buffer to be used to aggregate many smaller read or write operations into block sizes that are more efficient for the disk subsystem, or in the case of a read, sometimes to completely avoid having to physically access a disk.
Примеры
Команда/инструкция BUFFERS в CONFIG.SYS операционной системы DOS. Буфер между последовательным портом (UART) и модемом. Скорость COM-порта может составлять 38400 бит/с, в то время как скорость передачи данных модемом может быть ограничена 14400 бит/с. Интегрированный дисковый буфер на жестком диске, твердотельном накопителе или приводе BD/DVD/CD. Интегрированный буфер SRAM на сетевом адаптере Ethernet. Фреймбуфер на видеокарте.
The BUFFERS command/statement in CONFIG. SYS of DOS. The buffer between a serial port (UART) and a modem. The COM port speed may be 38400 bit/s while the modem may have only a 14400 bit/s carrier. The integrated disk buffer on a hard disk drive, solid state drive or BD/DVD/CD drive. The integrated SRAM buffer on an Ethernet adapter. The framebuffer on a video card.