التحكم في تدفق البرمجيات

يُعدّ التحكم في تدفق البيانات عبر البرمجيات أسلوبًا للتحكم في تدفق البيانات يُستخدم في وصلات بيانات الحاسوب ، وخاصةً وصلات RS-232 التسلسلية . ويعتمد هذا الأسلوب على استخدام رموز خاصة تُرسل ضمن نطاق الاتصال عبر قناة الاتصال الرئيسية. وتُعرف هذه الرموز عمومًا باسم XOFF و XON (اختصارًا لعبارتي "إيقاف الإرسال" و"تشغيل الإرسال" على التوالي). لذا، يُطلق على "التحكم في تدفق البيانات عبر البرمجيات" أحيانًا اسم "التحكم في تدفق البيانات XON/XOFF". ويختلف هذا عن التحكم في تدفق البيانات عبر إشارات مخصصة خارج نطاق الاتصال - " التحكم في تدفق البيانات عبر الأجهزة " - مثل RS-232 RTS/CTS .

التمثيل

بالنسبة للأنظمة التي تستخدم رمز الأحرف ASCII ، يتم تمثيل XOFF بشكل عام باستخدام حرف أو بايت بقيمة عشرية 19؛ وXON بقيمة 17.

لا يخصص معيار ASCII أي أحرف تحكم لاستخدامها تحديدًا كـ XON/XOFF. مع ذلك، فهو يوفر أربعة أحرف تحكم عامة (DC1 إلى DC4). اعتمد جهاز Teletype Model 33 ASR اثنين من هذه الأحرف، وهما DC3 وDC1، لاستخدامهما كـ XOFF وXON على التوالي. وقد تم نسخ هذا الاستخدام من قبل آخرين، وأصبح الآن معيارًا فعليًا . كما أن المكافئات على لوحة المفاتيح لـ Ctrl+S لـ XOFF و + لـ XON مشتقة أيضًا من هذا الاستخدام.CtrlQ

تمثيلات XOFF/XON في ASCII
شفرةمعنىASCIIديسمبرعرافةلوحة المفاتيح
XOFFإيقاف الإرسال مؤقتًادي سي 31913Ctrl+S
إكسوناستئناف الإرسالDC11711Ctrl+Q

الآلية

عندما يعجز أحد طرفي وصلة البيانات عن استقبال المزيد من البيانات (أو يقترب من ذلك)، يرسل إشارة XOFF إلى الطرف الآخر. يستقبل الطرف الآخر إشارة XOFF، ويتوقف عن الإرسال . بمجرد أن يصبح الطرف الأول جاهزًا لاستقبال البيانات مجددًا، يرسل إشارة XON، ويستأنف الطرف الآخر الإرسال.

على سبيل المثال، يمكن تخيل جهاز كمبيوتر يرسل بيانات إلى طابعة بطيئة . ولأن الكمبيوتر أسرع في إرسال البيانات من الطابعة في طباعتها، تتأخر الطابعة وتقترب من حالة تُصبح فيها عاجزة عن استيعاب كمية البيانات. تستجيب الطابعة لهذا الوضع بإرسال إشارة XOFF إلى الكمبيوتر، الذي يتوقف مؤقتًا عن إرسال البيانات. وعندما تصبح الطابعة جاهزة لاستقبال المزيد من البيانات، تُرسل إشارة XON إلى الكمبيوتر، الذي يستأنف إرسال البيانات.

يمكن استخدام XOFF/XON في كلا الاتجاهين، على سبيل المثال، جهازي طباعة عن بعد متصلين ببعضهما البعض.

مقارنة مع التحكم في تدفق الأجهزة

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

مع ذلك، لا يخلو التحكم في تدفق البيانات عبر البرمجيات من مشاكله. وأهم عيوبه انخفاض موثوقيته. إذ يتطلب إرسال إشارة XOFF زمنًا لا يقل عن زمن إرسال حرف واحد، وقد تتأخر الإشارة عن البيانات المرسلة مسبقًا والموجودة في المخازن المؤقتة. كما قد تُفعّل إشارات الأجهزة بشكل فوري تقريبًا، وبترتيب غير صحيح.

ملخص المفاضلات المتعلقة بالتحكم في التدفق
يكتبسلامة البياناتتكلفة منخفضةخارج النطاق
التحكم في تدفق الأجهزةالأكثر موثوقيةلانعم
برنامج مدمج على الشريحة fcجيدبعضلا
برنامج fc (FIFO معطل)جيد، لكنه بطيءنعملا
برنامج fc (مُمكّن FIFO)غير موثوق بهنعملا

كما يوحي الاسم "التحكم في تدفق البرمجيات"، يُنفذ التحكم في التدفق باستخدام هذه الطريقة عادةً في البرمجيات (أو البرامج الثابتة )، مما قد يُسبب تأخيرات إضافية في استجابة XOFF. قد تؤدي هذه التأخيرات إلى تلف البيانات نتيجةً لتجاوز سعة المخزن المؤقت . من ناحية أخرى، يكون التحكم في تدفق الأجهزة عادةً تحت السيطرة المباشرة لوحدة UART المُرسِلة ، والتي تستطيع إيقاف الإرسال فورًا، دون تدخل من مستويات أعلى. ولمعالجة زمن الاستجابة الناتج عن مخازن FIFO المدمجة ، توفر وحدات UART الأكثر تطورًا، مثل 16950، تحكمًا في تدفق البرمجيات "على الشريحة". [ 1 ] قد تعاني وحدات UART التي تفتقر إلى هذا الدعم، مثل 16550 ، من تجاوز سعة المخزن المؤقت عند استخدام التحكم في تدفق البرمجيات، على الرغم من إمكانية التخفيف من ذلك جزئيًا عن طريق تعطيل مخزن FIFO الخاص بوحدة UART. [ 1 ]

أخيرًا، بما أن رموز XOFF/XON تُرسل ضمن نطاق البيانات، فلا يمكن أن تظهر في البيانات المرسلة دون أن تُفسَّر خطأً على أنها أوامر تحكم في التدفق. لذا، يجب ترميز أي بيانات تحتوي على رموز XOFF/XON بطريقة ما لضمان إرسالها بشكل صحيح، مع ما يترتب على ذلك من زيادة في الحمل. ويتم ذلك غالبًا باستخدام نوع من تسلسل الهروب . بالنسبة لأجهزة الطباعة التي تفسر رموز ASCII مباشرةً، لا تُمثل هذه مشكلة كبيرة، لأن رموز XON وXOFF تستخدم أرقام رموز "التحكم في الجهاز" ASCII .

التطبيقات

يُستخدم التحكم في تدفق البيانات على نطاق واسع في الأجهزة منخفضة السرعة، وخاصة الطابعات القديمة والمحطات الطرفية البسيطة ، للإشارة إلى عدم قدرتها مؤقتًا على استقبال المزيد من البيانات. ويعود ذلك عادةً إلى انخفاض معدل الإخراج وامتلاء المخازن المؤقتة. تستخدم بعض حزم التحكم الطرفية، مثل termcap ، تقنية "التعبئة" (تأخيرات قصيرة بدقة أجزاء من الثانية [ 2 ] ) لمنح هذه الأجهزة وقتًا كافيًا لتنفيذ الإجراءات المطلوبة دون الحاجة إلى تفعيل أمر XOFF.

لا يزال مشغلو الكمبيوتر يستخدمون أحيانًا أوامر XOFF/XON يدويًا، لإيقاف وإعادة تشغيل الإخراج الذي قد يخرج من الشاشة بسرعة كبيرة.

تدعم برامج محاكاة الطرفية عادةً وظائف XOFF/XON كوظيفة أساسية. ويشمل ذلك عادةً وحدة تحكم النظام على أجهزة يونكس ولينكس الحديثة ، بالإضافة إلى برامج محاكاة واجهة المستخدم الرسومية مثل xterm ووحدة تحكم Win32 .

تقنية XON القوية هي أسلوب لإعادة تشغيل الاتصال في حال توقفه نتيجةً لتلقي إشارة XOFF عن طريق الخطأ. تُرسل وحدة الاستقبال إشارات XON بشكل دوري عندما تكون قادرة على استقبال البيانات ويكون الخط غير مُستخدم. ومن الاستخدامات الشائعة لهذه التقنية استخدامها في الطابعات التسلسلية (مثل HP LaserJet II) للإشارة إلى أنها متصلة بالإنترنت وجاهزة لاستقبال البيانات. تُرسل إشارة XON كل ثانية إلى 30 ثانية، وذلك حسب تصميم البرامج الثابتة للطابعة.

انظر أيضاً

مراجع

  1. 1 2 يانغ، كاسبر (2009). أسرار التحكم في التدفق في الاتصالات التسلسلية (ملف PDF) . مذكرة تقنية من موكسا (  الإصدار 1.0). مركز موكسا للكتابة التقنية (نُشر في 30 سبتمبر 2009). مؤرشف من الأصل (ملف PDF) في 4 أغسطس 2022. تم الاطلاع عليه في 4 أغسطس 2022 .
  2. "مكتبة Termcap - وصف الحشو" . www.gnu.org .