رایانش بی‌درنگ

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

در علوم رایانه پردازش بی‌درنگ (به انگلیسی: Real-time computing) به بررسی مسائل بی‌درنگ بودن سامانه‌های رایانه‌ای از جمله ضرب الاجل (سررسید)هایی (به انگلیسی: deadline) که برای یک پردازش وجود دارد می‌پردازد. در سامانه‌های غیر بی‌درنگ هیچ ضرب‌الاجلی برای پردازش‌ها وجود ندارد حتی اگر پاسخ سریع یا عملکرد بالا مورد انتظار باشد.

نیاز به نرم‌افزارهای بی‌درنگ معمولاً توسط سیستم‌عامل‌های بی‌درنگ و زبان‌های برنامه‌نویسی بی‌درنگ برطرف می‌شود که بستری را برای ایجاد نرم‌افزارهای بی‌درنگ فراهم می‌سازند.

کاربرد سامانه‌های بی‌درنگ می‌تواند در زمینه‌هایی باشد که ماموریت بحرانی باشد. ترمزهای ضد قفل وسیله نقلیه مثال ساده‌ای از مورد استفاده سامانه‌های بی‌درنگ است، محدودیت پردازش درخواست در یک بازه زمانی کوتاه که در آن بازه ترمزها بایستی آزاد شوند تا از قفل شدن چرخ‌ها جلوگیری کنند. درصورتی که پردازش بی‌درنگ در ضرب‌الاجل نتواند درخواست پردازش را پاسخ دهد پردازش شکست خورده تلقی میشود. پردازش بایستی در ضرب‌الاجل درخواستی پایان یابد بدون توجه به بار پردازش‌های روی سامانه.

سامانه‌های بی‌درنگ سخت و نرم[ویرایش]

سامانهٔ بی‌درنگ به سامانه‌ای گفته می‌شود که درستی اجرای یک عملیات در آن تنها به درست بودن عملیات از نظر منطقی بستگی نداشته باشد بلکه اجرای آن عملیات در یک بازهٔ زمانی مشخص نیز در درستی اجرای عملیات در نظر گرفته شود. در سامانه‌های بی‌درنگ سخت (به انگلیسی: hard real-time) یا به عبارتی سامانه‌های بی‌درنگ بدون وقفه (به انگلیسی: immediate real-time) پایان اجرای یک عملیات پس از ضرب‌الاجل بی‌فایده تلقی می‌شود و چنین حالتی ممکن است یک خرابی بحرانی در کل سامانه بوجود آورد در حالیکه در سامانه‌های بی‌درنگ نرم (به انگلیسی: soft real-time) چنین تاخیری تحمل می‌شود و ممکن است با کیفیت پایین‌تر سرویس‌دهی شود. (همانند حذف برخی فریم‌ها در حین پخش یک ویدئو)

سامانه‌های بی‌درنگ سخت زمانی مورد استفاده قرار میگیرند که پاسخ‌دهی به یک رویداد در یک بازهٔ زمانی بسیار ضروری باشد. چنین تضمینی در سامانه‌هایی مورد نیاز است که عدم پاسخ‌دهی به یک رویداد در ضرب‌الاجل تعیین شده باعث خسارت‌های سنگینی شود، بخصوص خسارت‌های فیزیکی به اطراف یا تهدید جان انسان‌ها. در بحث سامانه‌های چندوظیفگی[۱] (به انگلیسی: multi tasking) سیاست زمان‌بندی، معمولاً براساس اولویت (به انگلیسی: priority driven) است. سایر الگوریتم‌ها همچون «اول اولین ضرب‌الاجل» (به انگلیسی: Earliest Deadline First) که بدون در نظر نگرفتن بار تعویض پردازش (به انگلیسی: context switching) برای سامانه‌هایی با بار کمتر از ۱۰۰٪ مناسب است. سامانه‌های جدید برنامه‌ریزی همچون یک Adaptive Partition Scheduler میتوانند در مدیریت سامانه‌های بزرگ با ترکیبی از عملیات بی‌درنگ سخت و سایر عملیات‌ها مفید باشند. سامانه‌های بی‌درنگ نرم معمولاً زمانی استفاده می‌شود که نیاز به دسترسی همزمان و بروز نگهداری تعدادی از سامانه‌ها وجود دارد. برای مثال نرم‌افزاری که برنامه پروازی یک شرکت هواپیمایی را نگهداری و بروزرسانی میکند، برنامه پروازی بایستی تا حد قابل قبولی همیشه بروز باشد ولی میتوان با چند لحظه تاخیر نیز کنار آمد. سامانه‌های پخش زنده صدا و تصویر نیز معمولاً سامانه‌های بی‌درنگ سهل هستند که در صورت عدم پاسخگویی سامانه در ضرب‌الاجل با پایین آوردن کیفیت وضعیت را مدیریت میکنند.

پانویس[ویرایش]

  1. چندوظیفگی معادل فارسی multi tasking مصوب فرهنگستان زبان و ادب فارسی است.

منابع[ویرایش]

  • مشارکت‌کنندگان ویکی‌پدیا، «Real-time computing»، ویکی‌پدیای انگلیسی، دانشنامهٔ آزاد (بازیابی در ۱۶ دسامبر ۲۰۰۹).