تدفق البت

تدفق البت bitstream، أو التسلسل الثنائي binary sequence، هو تسلسل البت.

تدفق البايت bytestream، هو سلسلة من بايتات . عادةً ، كل بايت هو كمية 8 بت ( بايتات) ، وبالتالي يتم استخدام المصطلح تدفق ثماني بتات بالتبادل في بعض الأحيان. قد يتم ترميز ثماني بتات من تسلسل مكون من 8 بت بطرق مختلفة ومتعددة (انظر endianness) لذا لا توجد ترجمة فريدة ومباشرة بين ندفق البايت و تدفق البت.

تستخدم تدفق البت و تدفق البايت على نطاق واسع في الاتصالات و الحوسبة. على سبيل المثال ، يتم نقل دفق البت المتزامن بواسطة SONET ، و ينقل پروتوكول التحكم في الإرسال تدفق البايت بشكل غير متزامن.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

العلاقة بين تدفقات البت وتدفقات البايت

من الناحية العملية ، لا يتم استخدام تدفق البتات مباشرةً لترميز تدفق البايت ؛ قد تستخدم قناة الاتصال طريقة إرسال لا تترجم مباشرة إلى البتات (على سبيل المثال ، عن طريق إرسال إشارات ترددات متعددة) وعادةً ما تقوم بتشفير معلومات أخرى مثل التاطير و تصحيح الخطأ معًا ببياناتها.[بحاجة لمصدر]


أمثلة

كثيراً ما يستخدم مصطلح تدفق البتات لوصف بيانات التكوين التي سيتم تحميلها في مصفوفة بوابة قابلة للبرمجة الحقلية (FPGA). على الرغم من أن معظم FPGA تدعم أيضًا طريقة تحميل موازية للبايت أيضًا ، فقد يكون هذا الاستخدام قد نشأ بناءً على الطريقة الشائعة لتكوين FPGA من دفق بت تسلسلي ، عادةً من PROM أو رقاقة ذاكرة فلاش. عادة ما يكون التنسيق التفصيلي لدفق البت لمنتج FPGA خاصًا لمداول FPGA.

في الرياضيات ، تمت دراسة العديد من التسلسلات اللا نهائية من البتات لخصائصها الرياضية ؛ وتشمل هذه تسلسل Baum–Sweet ، تسلسل Ehrenfeucht-Mycielski ، فيبوناتشي word ، تسلسل كولاكوسكي ، تسلسل ورق عادي ، تسلسل رودين- شاپيرو ] و تسلسل Thue – Morse.

في معظم أنظمة التشغيل ، بما في ذلك Unix-like و Windows ، تقوم مكتبات الإدخال / الإخراج القياسية بتحويل الصفحات ذات المستوى الأدنى أو المخزنة مؤقتًا الوصول إلى الملفات إلى نموذج من تدفق البايت. على وجه الخصوص في أنظمة التشغيل الشبيهة بـ Unix ، تحتوي كل عملية على ثلاث تدفقات قياسية ، وهي أمثلة على اختبارات فرعية أحادية الاتجاه. توفر Unix pipe آلية اتصالات فرعية بين العمليات المختلفة.

غالبًا ما ترمز خوارزميات الضغط في تدفق البتات ، حيث قد تكون وحدات البت 8 التي يوفرها البايت (أصغر وحدة ذاكرة قابلة للعنونة) مسرفةً. على الرغم من أنها تُنفذ عادةً في لغات منخفضة المستوى ، فإن بعض لغات عالية المستوى مثل Python[1] و Java[2] تقدم واجهات لإدخال / إخراج تدفق البت أصلية.

أحد الأمثلة المعروفة على پروتوكول الاتصال الذي يوفر خدمة تدفق بايت لعملائه هو پروتوكول التحكم في الإرسال (TCP) مجموعة پروتوكول الإنترنت ، والذي يوفر تيارًا ثنائي الاتجاه .

إن نوع وسائط الإنترنت لتدفق البايت العشوائي هي application/octet-stream.يتم تعريف أنواع الوسائط الأخرى من أجل تدفق البايت في تنسيقات معروفة.

التحكم في التدفق

غالبًا ما يتم إنشاء محتويات المسار الفرعي ديناميكيًا ، مثل البيانات من لوحة المفاتيح والأجهزة الطرفية الأخرى (/dev/tty), بيانات من مولد رقم عشوائي (/dev/urandom), إلخ.

في تلك الحالات ، عندما تستخدم وجهة تدفق البايت (المستهلك) وحدات البايت بشكل أسرع مما يمكن إنشاؤه ، يستخدم النظام عملية المزامنة لجعل الوجهة تنتظر حتى يتوفر البايت التالي.

عندما يتم إنشاء وحدات البايت بشكل أسرع مما يمكن للوجهة استخدامها ، فهناك العديد من التقنيات للتعامل مع الموقف:

  • عندما يكون المنتج خوارزمية برمجية ، يقوم النظام بإيقاف المنتج مؤقتًا بنفس تقنيات مزامنة العملية.
  • عندما يدعم المنتج التحكم في التدفق ، يرسل النظام إشارة "جاهز" فقط عندما يكون المستهلك جاهزًا للبايت التالي.
  • عندما يتعذر إيقاف المنتج مؤقتًا - لوحة المفاتيح أو بعض الأجهزة التي لا تدعم التحكم في التدفق - يحاول النظام عادةً تخزين البيانات مؤقتًا حتى يصبح المستهلك جاهزًا لها ، وعادةً ما يستخدم قائمة الانتظار. غالبًا ما يمكن لجهاز الاستقبال إفراغ المخزن المؤقت قبل امتلائه بالكامل. المنتج الذي يستمر في إنتاج البيانات بشكل أسرع مما يمكن استهلاكه ، حتى بعد امتلاء المخزن المؤقت ، يؤدي إلى تجاوز سعة المخزن المؤقت ، فقدان الحزمة ، ازدحام الشبكة ، و رفض الخدمات.

انظر أيضاً

المصادر

  1. ^ "Bitstream". Python Software Foundation. Archived from the original on 2016-09-08.
  2. ^ "Class BitSet". Oracle. Archived from the original on 2016-11-30.
الكلمات الدالة: