16

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

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

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

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

17

تطبيقات الزمن الحقيقي هي التطبيقات التي تنجز المهمة بزمن لا يؤثر على النتيجة المطلوبة

اضرب مثال

تطبيقات حجوزات الطيران تعتبر تطبيقات زمن حقيقي وذلك لأنه يمنع حجز نفس المقعد على نفس الرحلة لشخصين معا

وبالتالي فإن أي استفسار عن رحلة ما يجب أن يعكس حالتها الآنية وليس حالتها قبل 10 دقائق مثلا

مثلا تطبيق يقوم بنقل فيديو لعملية جراحية عن بعد

يجب أن تنقل الصورة بالزمن الحقيقي لأن تفاعل الطبيب يكون آنيا وليس لحالة مضى عليها عدة دقائق

طبعا نظريا أو مثاليا يجب أن يكون زمن التنفيذ صفري أي في ذات اللحظة

بينما عمليا يوجد استحالة في تحقيق ذلك وهناك مجالات تأخير يسمح بها بما تقتضيه الحالة

ولهذا تجد غاليا أن مثل هذه التطبيقات تكتب بكود Native بلغات مثل C++ أو لغة الأسمبلي أو لغة الآلة بحسب النظام المستخدم والتعامل مع عتاد ذو سرعات كبيرة

المشاكل التي أشرت لها مشاكل مزامنة synchronization سواء مزامنة الوصول للبيانات أو مزامنة البيانات نفسها، تطبيقات الـrealtime يكون فيها حدث أو بيانات يلزم أن يستجاب لها في زمن محدد وليس فقط أسرع مايمكن (هذا الفرق الجوهري)، فالبيانات قد تفقد أو يفشل النظام.

لهذا الأمر طرحت الأمثلة مثل راكب الحافلة أو الطائرة لأن الموضوع نسبي والاستجابة أصلا هي نوع من أنواع المزامنة أي تأتي في إطارها

التعريف الذي ورد في مشاركة الأخ مؤيد أراه أقرب للوصف الصحيح

https://arabia.io/go/6325/2...

في تطبيقات الزمن الحقيقي يجب أن يكون هناك حد أعلى محدد وواضح ومعروف مسبقا لأقصى زمن انتظار

على سيرة الزمن الأصغري وأسرع ما يمكن سأذكر طرفة

سُئل ثلاثة أشخاص عن أسرع شيء استجابة

فقال أحدهم : المصباح

لأنك مجرد ضغط الزر يضيء المصباح

فقال الثاني : الفكرة

لأنه مجرد أن تخطر لك فكرة تظهر لديك ردة الفعل

فقال الثالث : الإسهال

لأنه عندما يحين وقته لا تستطيع أن تفكر ولا تلحق أن تشعل المصباح ツ

17

تخيل نفسك تمشي بالسيارة وفجأه ظهر امامك شخص، الشي البديهي الذي ستفعلة انك ستدوس الفرامل، لكن تخيل لو ان الفرامل لا تستجيب الا بعد 3 ثواني من الضغط على الفرامل !! هذه ال 3 الثواني في التأخير ممكن تؤدي الى فقدان حياة انسان، لذلك لابد ان تعمل الفرامل في الوقت الذي يدوس فيه السائق على دواسة الفرامل والا ستحصل كارثه.

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

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

15

ببساطة هي التطبيقات التي يكون عامل الوقت فيها مهم جداً, والتعامل مع التطبيق يتم بشكل لحظي, ويجب ان تحسب حسابه اثناء كتابة الكود (لا علاقة لكفائة الكود او سرعة التنفيذ).

مثلا VOIP, المؤتمرات عن بعد, او حتى الالعاب الجماعية.

ايضاً يدخل في مجالات اخرى, مثلاً الرادار الذي يعرض حركة الطائرات في المطار, او حتى مواعيد الرحلات.

وننتظر الاستزادة من الخبراء.

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 ولم ينتهي منها بعد. إن كنت تريد الحديث عن تقنيات الزمن الحقيقي في عالم الويب يمكنك إفراد موضوع بهذا الخصوص.

أولا هو لا يترجم تطبيق الزمن الحقيقي، فهذه ترجمة حرفية

بل الترجمة الأقرب إلى بالي ستكون تطبيق آني

ببساطة هو صنع تطبيقات وخواص تظهر مباشرة بدون تحديث الصفحة، مثلا تظهر الردود هنا مباشرة عند صدورها بدون تحديث الصفحة، ظهور تنبيه مباشر عن حدوث شيء

جيميل يقوم بإظهار آخر الرسائل مباشرة بدون تحديث في حال وصولها

هذا هو التطبيق الآن

صحيح أن تطبيقات مثل جيميل تحدث الوارد تلقائيا إلا أنه لا يعتبر من تطبيقات الزم الحقيقي

لماذا لأنه لو كان المستعرض مشغول فلن يحدث

الزمن الحقيقي هو إتمام التنفيذ بدون أن يكون هناك أي تأثير لأي شيء آخر

سبق وقدمت عدة فقرات تتعلق بهذا الموضوع

سأحاول إعادة نشرها هنا إن شاء الله

مشكور أخي

كل تطبيق يحتاج اتخاذ قرارات او تنفيذ عمليات في وقت قصير جدا اي نتائجها آنية مثلا كبرمجيات الحماية البرمجيات المتعلقة بالسلامة مثل القيادة آلية مثلا لو تم استخدام برمجية في سيارة الية ولم تستطيع السيارة ادراك او اتخاذ قرار عن طفل يقطع الطريق او تباطؤ سيارة امامها قد تصطدم بها وعندها فالنظام قد فشل ليس لانه لايستطيع اتخاذ القرار المناسب بل لانه لم يتخذ و ينفذ في وقت قصير جدا

تفضل أخي بدأت بإعادة طرح الموضوع

بإمكانك متابعة السلسلة معي

https://arabia.io/go/6339