حوسبة في زمن حقيقي

الحوسبة في الوقت الفعلي (RTC: Real-time computing) أو الحوسبة التفاعلية في علوم الحاسوب، تصف أنظمة الأجهزة والبرامج الخاضعة «لقيد الوقت الحقيقي»، يستمد مصطلح الوقت الفعلي من استخدامه في المحاكاة المبكرة، حيث يتم محاكاة العملية في العالم الافتراضي(الحاسوب) بمعدل يطابق معدل العملية الحقيقي.

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

قد يستخدم برنامج الوقت الفعلي واحدًا أو أكثر من الإجراءات التالية: لغات البرمجة المتزامنة، وأنظمة التشغيل في الوقت الفعلي، والشبكات في الوقت الفعلي، كل منها يوفر أطر عمل أساسية يمكن بناء عليها بناء تطبيق برنامج في الوقت الفعلي.

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

التاريخ 
زادت الحواسيب الصغيرة، وخاصة في السبعينيات وما بعدها، عند دمجها في أنظمة مضمّنة مخصصة مثل الماسحات الضوئية ومشاركة البيانات، ومن الحاجة إلى زمن استجاباه منخفض، التفاعلات المهمة مع البيانات الواردة وأنظمة التشغيل.

معايير للحوسبة في الوقت الحقيقي 
يتم تصنيف أنظمة الوقت الفعلي، بالإعتماد إلى المواعيد النهائية الخاصة بها [5]، والتزام البرنامج بها بالشكل التالي:

شديد _ فشل النظام في إتمام المهمة في الوقت المحدد، فشل النظام الكلي.

رَاسِخ _ النظام يخطئ بشكل نادر في اتمام المهمة.

مُتَسَاهِل _ النظام يخطئ بشكل متكرر.

وبالتالي، فإن الهدف من نظام الوقت الحقيقي الشديد هو ضمان إتمام جميع المهام في المواعيد النهائية ولكن لأنظمة الوقت الحقيقي المتساهلة يصبح الهدف تلبية مجموعة فرعية معينة من المواعيد النهائية من أجل تحسين بعض المعايير الخاصة بالتطبيق. تعتمد المعايير الخاصة المُحسّنة على التطبيق.

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

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

_ أنظمة الصوت والفيديو؛ يؤدي انتهاك القيود (قيدالوقت)إلى تدهور الجودة، ولكن يمكن للنظام مواصلة العمل واسترداده باستخدام منهجيات التنبؤ وإعادة التكوين. [7][8]

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

تعتبر تأخيرات الاتصالات ثنائية الاتجاه في الوقت الفعلي التي تقل عن 300 ملي ثانية («رحلة ذهابًا وإيابًا» أو ضعف التأخير أحادي الاتجاه) «مقبولة» لتجنب «التحدث غير المرغوب فيه» في المحادثة.

الوقت الحقيقي وعالية الأداء 

أحيانًا ما يساء فهم الحوسبة في الوقت الفعلي على أنها حوسبة عالية الأداء[10] لكن هذا ليس تصنيفًا دقيقًا. على سبيل المثال قد يوفر الحاسوب الخارق الذي ينفذ المحاكاة العلمية أداءً رائعًا لكنه لا ينفذ عملية حسابية في الوقت الفعلي.على العكس من ذلك على سبيل المثال تصميم الأجهزة والبرامج لنظام الفرامل المانعة للإنغلاق للوفاء بمواعيد معينة لن تكون هناك مكاسب إضافية في الأداءالخارق أو حتى تكون مفيدة. علاوة على ذلك إذا كان النظام محملاً بدرجة عالية، فقد يكون زمن الاستجابة أبطأ ولكن (في معظم الحالات) لا يزال ينجح قبل انقضاء المهلة (الوصول إلى الموعد النهائي).في نظام الوقت الفعلي، مثل مؤشر FTSE 100 غالبًا ما يُعتبر التباطؤ الذي يتجاوز الحدود كارثيًا في سياق التطبيق أهم متطلبات نظام الوقت الحقيقي هو الإخراج المتسق وليس الإنتاجية العالية.يمكن أن تندرج بعض أنواع البرامج مثل العديد من برامج لعب الشطرنج على سبيل المثال سيحتاج برنامج الشطرنج المصمم للعب في دورة على مدار الساعة إلى اتخاذ قرار بشأن الخطوة القادمة قبل موعد نهائي معين أو يفقد اللعبة وبالتالي يعد حسابًا في الوقت الفعلي على الرغم من ذلك قد يكون الأداء العالي مرغوب فيه فكلما زاد العمل الذي يمكن أن يقوم به برنامج الشطرنج الوقت المحدد كلما كانت تحركاته أفضل وكلما كان برنامج الشطرنج غير المقيد أسرع إذا لم يتخذ برنامج الشطرنج الخاص بالبطولة قرارًا بشأن الخطوة التالية في الوقت المخصص له فسيخسر اللعبة— أي أنه يفشل كحساب في الوقت الفعلي — بينما في السيناريو الآخر، يفترض أن الوفاء بالموعد النهائي ليس ضروريًا. يشير الأداءالعالي إلى مقدار معالجة البيانات الذي يتم تنفيذه في فترة زمنية معينة في حين أن الوقت الفعلي هو القدرة على إنجاز المعالجة باستخدام ناتج مفيد في الوقت المتاح.

قرب الوقت الحقيقي 
يشير المصطلح «قرب الوقت الفعلي» أو «الوقت الفعلي تقريبًا»، في الاتصالات والحوسبة، إلى التأخير الزمني الذي يتم تقديمه عن طريق المعالجة للبيانات أو نقل الشبكة بين حدوث الحدث واستخدام الحدث البيانات التي تمت معالجتهاعلى سبيل المثال تعرض الشاشة في الوقت الفعلي تقريبًا حدثًا أو موقفًا كما كان موجودًا في الوقت الحالي مطروحًا منه وقت المعالجة، كما هو تقريبًا وقت الحدث المباشر.التمييز بين المصطلحين «قرب الوقت الحقيقي» و «الوقت الحقيقي» غامض إلى حد ما ويجب تحديده للحالة المطروحة. يشير المصطلح «قرب الوقت الحقيقي» إلى عدم وجود تأخيرات كبيرة. [11]يشير الوقت الفعلي القريب أيضًا إلى تأخر إرسال الصوت والفيديو في الوقت الفعلي. يسمح بتشغيل صور الفيديو، في الوقت الفعلي تقريبًا، دون الحاجة إلى انتظار تنزيل ملف فيديو كبير بالكامل. يمكن لقواعد البيانات غير المتوافقة التصدير ولاستيراد إلى ملفات مشتركة بينما يمكن لقاعدة البيانات أخرى استيرادها أو تصديرها على أساس مجدول حتى تتمكن من مزامنة ومشاركة البيانات المشتركة في «الوقت الفعلي القريب» مع بعضها البعض.يختلف الفرق بين «الوقت الفعلي القريب» و «الوقت الفعلي»، والتأخير يعتمد على نوع وسرعة الإرسال. يكون التأخير في الوقت الحقيقي القريب عادةً من عدة ثوانٍ إلى عدة دقائق.

طرق التصميم 
توجد عدة طرق للمساعدة في تصميم أنظمة الوقت الفعلي، مثال على ذلك MASCOT ، وهي طريقة قديمة ولكنها ناجحة جدًا تمثل البنية المتزامنة للنظام. ومن الأمثلة الأخرى:
- HOOD
- Real-Time UML
- AADL
-وملف تعريف Ravenscar
- Java

انظر أيضا 
 رسوميات الحاسب آنية-اللحظة

مراجع 

حوسبة في الزمن الحقيقي