web-dev-qa-db-ja.com

バッファとはどういう意味ですか?

ワード"BUFFER"はどこにでもありますが、それが何であるかを正確に把握することはできません。

  1. 素人の言語でバッファとは何か説明してください。
  2. いつ使用されますか?
  3. どのように使用されますか?
128
Pratik Deoghare

ボウルからキャンディーを食べていると想像してください。定期的に一枚取ります。ボウルが空になるのを防ぐため、ボウルが空になる前に誰かがボウルを補充することがあります。

ボウルは、あなたとキャンディーバッグの間のバッファーとして機能します。

映画をオンラインで視聴している場合、Webサービスは次の5分程度を継続してバッファーにダウンロードします。そのため、視聴中にコンピューターが映画をダウンロードする必要はありません(ハングアップの原因になります)。

231
Perchik

「バッファ」という用語は非常に一般的な用語であり、ITやCSに固有のものではありません。入力速度と出力速度の違いを緩和するために、一時的に何かを保存する場所です。プロデューサーはコンシューマーよりも高速ですが、プロデューサーは出力をバッファーに格納し続けることができます。コンシューマが高速化すると、バッファから読み取ることができます。ギャップを埋めるためにバッファが中央にあります。


http://en.wiktionary.org/wiki/buffer で定義を平均すると、アイデアが得られると思います。

「学校に行くには毎日雪を考えて10マイル歩かなければならない」ということの証明については、 TOPS-10 Monitor Calls Manual Volume 1 、セクション11.9、「バッファI/Oの使用」を参照してください。 、ブックマーク11-24で。悪夢の対象になっている場合は読んでいない。

82
John Saunders

バッファは、データを保持するために使用される単なるメモリの塊です。最も一般的な意味では、通常、1回の操作で読み込まれ、その後1つまたは複数のPerchikの「キャンディボウル」の例で空にされるメモリの単一のBLOBです。たとえば、Cプログラムでは、次のようになります。

#define BUFSIZE 1024
char buffer[BUFSIZE];
size_t len = ;

// ... later
while((len=read(STDIN, &buffer, BUFSIZE)) > 0)
    write(STDOUT, buffer, len);

... cp(1)の最小バージョンです。ここでは、バッファ配列は、書き込まれるまでread(2)によって読み取られたデータを格納するために使用されます。その後、バッファが再利用されます。

より複雑なバッファスキームが使用されます。たとえば、循環バッファの場合、有限数のバッファが次々に使用されます。バッファがすべていっぱいになると、インデックスは「ラップアラウンド」し、最初のバッファが再利用されます。

19
Charlie Martin

バッファとは「一時ストレージ」を意味します。相互接続されたデバイスとシステムが互いに「同期」することはめったにないため、バッファはコンピューティングで重要です。したがって、あるシステムから別のシステムに情報が送信されるとき、受信側システムの準備が整うまで待機する場所があります。

8
karim79

実際、定義は1つではないため、それぞれの場合のコンテキストに依存しますが、非常に一般的に言えば、バッファーは一時的に何かを保持する場所です。私が考えることができる最高の現実世界の類推は、待合室でしょう。計算の簡単な例の1つは、バッファがRAMの一部をデータの一時保存に使用することを指す場合です。

5
Fraser

バッファは、異なる速度で、または異なる優先順位で動作するハードウェアデバイスまたはプログラムプロセスによって共有されるデータ領域です。バッファにより、各デバイスまたはプロセスは、他のデバイスやプロセスに縛られることなく動作できます。バッファを効果的にするために、バッファのサイズと、データをバッファに出し入れするアルゴリズム。

バッファは「中間点保持場所」ですが、アクティビティの速度を加速するために存在するのではなく、個別のアクティビティの調整をサポートします。

この用語は、プログラミングとハードウェアの両方で使用されます。プログラミングでは、バッファリングは、通常のファイルまたはデータベースに移動する前に編集または処理できるように、最終目的の場所からデータを選別する必要があることを意味する場合があります。

1

バッファは、メモリ(RAM /ディスク)内の一時的なプレースホルダ(多くのプログラミング言語の変数)であり、データをダンプしてから処理を行うことができます。

「バッファ」という用語は非常に一般的な用語であり、ITやCSに固有のものではありません。入力速度と出力速度の違いを緩和するために、一時的に何かを保存する場所です。プロデューサーはコンシューマーよりも高速ですが、プロデューサーは出力をバッファーに格納し続けることができます。コンシューマが高速化すると、バッファから読み取ることができます。ギャップを埋めるためにバッファが中央にあります。

1
Sanjeev

バッファは、メモリ(RAM /ディスク)内の一時的なプレースホルダ(多くのプログラミング言語の変数)であり、データをダンプしてから処理を行うことができます。

バッファリングには多くの利点がありますが、それは物事を並行して行うことを可能にし、IOパフォーマンスなど)を改善します。

また、バッファオーバーフロー、バッファアンダーフローなどのように正しく使用しないと多くの欠点があります。

C文字バッファーの例。

char * buffer1 = calloc(5、sizeof(char));

char * buffer2 = calloc(15、sizeof(char));

1
Santosh Gokak