16

تطبيقات الزمن الحقيقي في البرمجة كيف يمكنك شرحها ببساطة.؟

بصراحة كثيراً ما أسمع عن مصطلح تطبيق الزمن الحقيقي real time app أنا أفهم المصطلح جيداً عن التعامل مع الهاردوير و ذلك ربما لأني مهندس حواسيب مختص بالهاردوير و لكني كثيراً ما أسمع هذا المصطلح مرتبطاً بالبرامج و البرمجيات من دون أفهم المبدأ جيداً

كيف يمكنك أن تشرحه لي ببساطة؟؟


14

في ما أفهمه من مصطلح real time كما هو في نواة لينكس RT (انظر مشروع ITRON الذي تستخدمه تويوتا) هو تعريف IBM هنا والآن. وهذا هو الوضع الطبيعي للحواسيب عندما كانت مجرد آلات حالة state machine (وهنا يقول آلان كوكس "A Computer is a state machine. Threads are for people who can't program state machines".) هذا كان صحيحا قبل أن تدخل عليها تعدد المهام وطلبات المقاطعة وتعدد العمليات وخيوط المعالجة ... وأشياء كثيرة تمنع برنامجك من أن ينفذ خطوة خطوة في الزمن المطلوبة منه.

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

تطبيقات الزمن الحقيقي تحتاج نظام تشغيل خاص وبيئة متحكم فيها بالكامل وتستخدم في التحكم في المحركات والأذرع الآلية ...إلخ. مثلا عندما تريد أن يعمل محرك السيارة الكهربائية بسرعة 2000 دورة في الدقيقة يجب تقليب فولتية أقطاب المحرك brushless الثلاثة في أوقات مدروسة كي يحدث التنافر وإلا بقي الجزء الدوار في مكانه. لتحريك الذراع الآلية بالمقادر الفلاني بزاوية معينة يجب توصيل التيار الكهربائي المدة الفلانية. أوقات فتح صمامات إدخال الوقود في المحركات (تخيل أن ترسل إشارة للشعلة قبل حقن الوقود أو بعد فتح صمام العادم ) ...إلخ هل تقبل حجة مثل أن الحاسوب كان مشغولا بسبب تأخر مشغل الأغاني لأن القرص المدمج مخدوش

كل ما تكلمت عنه أخي صجيح ... لكنه شرح للمفهوم في بيئة الهاردوير و ما أقصده في سؤالي هنا شرح المفهوم في البرمجة أو أنني لم أفهم إجابتك جيداً في الحقيقة تطبيقات الدردشة هي تطبيقات زمن حقيقي و يشتعمل في بناءها حديثاً Nodejs

أرجو أن تراجع إجابتك و تشرحها لي أكثر

نعم لكن ما أتحدث أنا عنه يتعلق بالجانب البرمجي فنواة لينكس RT برمجيات وكذلك ITRON. تلك تتعلق بطريقة جدولت الأحداث المتزامنة.

http://en.wikipedia.org/wik...

هذه الصفحة تصنف البرامج الآنية (الوقت الحقيقي إلى 3 أقسام)

http://en.wikipedia.org/wik...

  • Hard حيث يعتبر تفويت الحد الزمني لمرة واحدة ولو بشيء قليل يعتبر فشل كامل للنظام.

  • Firm: حيث يمكن التغاضي عن تفويت الحد الزمني بتكرار قليل. حيث يتم تجاهل كل النتائج التي تحصل بعد حدها الزمني (ولو بفارق بسيط).

  • Soft: حيث تقل قيمة النتائج المحصلة كلما تأخرت أكثر بعد حدها الزمني لكنها لا تهمل بالإطلاق.

بأي حال ما تريده أنت هو ما يشرحه أخونا عبدالرحمن في سلسلة وصل فيها إلى 5 ولم ينتهي منها بعد. إن كنت تريد الحديث عن تقنيات الزمن الحقيقي في عالم الويب يمكنك إفراد موضوع بهذا الخصوص.