ビットストリーム

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

バイナリシーケンスとも呼ばれるビットストリーム(またはビットストリーム)は、ビットシーケンスです

バイトストリームは、バイトシーケンスです通常、各バイトは8ビットの量であるため、オクテットストリームという用語は同じ意味で使用されることがあります。オクテットは、複数の異なる方法で8ビットのシーケンスとしてエンコードされる場合があるため(ビット番号付けを参照)、バイトストリームとビットストリームの間に一意の直接変換はありません。

ビットストリームとバイトストリームは、電気通信コンピューティングで広く使用されています。たとえば、同期ビットストリームはSONETによって伝送され、伝送制御プロトコル非同期バイトストリームを転送します。

ビットストリームとバイトストリームの関係

実際には、ビットストリームはバイトストリームをエンコードするために直接使用されません。通信チャネルは、ビットに直接変換しない信号方式を使用する場合があり(たとえば、複数の周波数の信号を送信することによって)、通常、フレーミングエラー訂正などの他の情報をそのデータと一緒にエンコードします。[要出典]

ビットストリームという用語は、フィールドプログラマブルゲートアレイ(FPGA)にロードされる構成データを表すためによく使用されます。ほとんどのFPGAはバイトパラレルロード方式もサポートしていますが、この使用法は、シリアルビットストリーム(通常はシリアルPROMまたはフラッシュメモリチップ)からFPGAを構成する一般的な方式に基づいている可能性があります。特定のFPGAのビットストリームの詳細なフォーマットは、通常、FPGAベンダー独自のものです。

数学では、ビットのいくつかの特定の無限シーケンスがそれらの数学的特性について研究されてきました。これらには、Baum–SweetシーケンスEhrenfeucht–MycielskiシーケンスFibonacciワードKolakoskiシーケンス正規折紙列Rudin–Shapiroシーケンス、およびThue–Morseシーケンスが含まれます。

UnixライクなWindows含むほとんどのオペレーティングシステムでは、標準のI / Oライブラリが低レベルのページまたはバッファファイルアクセスをバイトストリームパラダイムに変換します。特にUnixライクなオペレーティングシステムでは、各プロセスに3つの標準ストリームがあります。これは単方向バイトストリームの例です。Unixパイプメカニズムは、異なるプロセス間のバイトストリーム通信を提供します。

バイト(メモリのアドレス可能な最小単位)によって提供される8ビットは無駄になる可能性があるため、圧縮アルゴリズムはビットストリームでコーディングされることがよくあります。通常、低水準言語で実装されますが、Python [1]やJava [2]などの一部の高水準言語は、ビットストリームI / O用のネイティブインターフェイスを提供します。

クライアントにバイトストリームサービスを提供する通信プロトコルのよく知られた例の1つは、双方向バイトストリームを 提供するインターネットプロトコルスイートの伝送制御プロトコル(TCP)です。

任意のバイトストリームインターネットメディアタイプは、 application / octet-streamです。他のメディアタイプは、よく知られた形式のバイトストリーム用に定義されています。

フロー制御

多くの場合、キーボードやその他の周辺機器からのデータ(/ dev / tty)、疑似乱数ジェネレーターからのデータ(/ dev / urandom)など 、バイトストリームのコンテンツは動的に作成されます。

このような場合、バイトストリームの宛先(コンシューマー)が生成可能なバイトよりも速くバイトを使用すると、システムはプロセス同期を使用して、次のバイトが使用可能になるまで宛先を待機させます。

宛先が使用できるよりも速くバイトが生成される場合、状況に対処するためのいくつかの手法があります。

  • プロデューサーがソフトウェアアルゴリズムの場合、システムは同じプロセス同期手法でプロデューサーを一時停止します。
  • プロデューサーがフロー制御をサポートしている場合、システムは、コンシューマーが次のバイトの準備ができたときにのみ準備完了信号を送信します。
  • プロデューサーを一時停止できない場合(フロー制御をサポートしていないキーボードまたは一部のハードウェア)、システムは通常、コンシューマーがデータの準備ができるまで、通常はキューを使用してデータを一時的に保存しようとします。多くの場合、レシーバーは、バッファーが完全にいっぱいになる前にバッファーを空にすることができます。バッファがいっぱいになった後でも、消費できるよりも速くデータを生成し続けるプロデューサーは、不要なバッファオーバーフローパケット損失ネットワーク輻輳、およびサービス拒否につながります。

も参照してください

参考文献

  1. ^ 「ビットストリーム」Pythonソフトウェアファウンデーション。2016年9月8日にオリジナルからアーカイブされました。
  2. ^ 「クラスビットセット」オラクル。2016年11月30日にオリジナルからアーカイブされました。