رایانش بیدرنگ
در علوم رایانه رایانش بیدرنگ یا محاسبه همزمان-با-وقوع (به انگلیسی: 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 میتوانند در مدیریت سامانههای بزرگ با ترکیبی از عملیات بیدرنگ سخت و سایر عملیاتها مفید باشند. سامانههای بیدرنگ نرم معمولاً زمانی استفاده میشود که نیاز به دسترسی همزمان و بروز نگهداری تعدادی از سامانهها وجود دارد. برای مثال نرمافزاری که برنامه پروازی یک شرکت هواپیمایی را نگهداری و بروزرسانی میکند، برنامه پروازی بایستی تا حد قابل قبولی همیشه بروز باشد ولی میتوان با چند لحظه تأخیر نیز کنار آمد. سامانههای پخش زنده صدا و تصویر نیز معمولاً سامانههای بیدرنگ سهل هستند که در صورت عدم پاسخگویی سامانه در ضربالاجل با پایین آوردن کیفیت وضعیت را مدیریت میکنند.
تاریخچه
اصطلاح real time از کاربرد آن در شبیهسازی ناشی میشود که در آن یک فرایند در دنیای واقعی با سرعتی شبیه به فرایند واقعی شبیهسازی میشود (که اکنون برای جلوگیری از ابهام از آن به عنوان شبیه سازی در زمان واقعی یاد میشود). رایانههای آنالوگ، اغلب قادر به شبیهسازی با سرعتی بسیار سریعتر از زمان واقعی هستند، وضعیتی که اگر شناسایی و حساب نشود، میتواند به همان اندازه شبیهسازی کند خطرناک باشد. کامپیوترهای کوچک، به ویژه در دهه 1970 به بعد، هنگامی که در سیستمهای تعبیهشده اختصاصی مانند اسکنرهای DOG (گرافیک دیجیتال روی صفحه) تعبیه شدهاند، نیاز به پاسخهای اولویت محور با تأخیر کم را برای تعاملات مهم با دادههای ورودی و سیستمهای عامل مانند Data افزایش میدهند. General RDOS (سیستم عامل دیسک در زمان واقعی) و RTOS با برنامهریزی پیشزمینه و پسزمینه و همچنین RT-11 شرکت تجهیزات دیجیتال از این دوران میگذرد. برنامه ریزی پیش زمینه-پیش زمینه، زمان انجام CPU را برای انجام کارهای با اولویت پایین مجاز میداند، در حالی که برای انجام هیچ کاری از پیش زمینه، نیازی به انجام وظایف پیش زمینه نیست و به موضوعات/وظایف با بالاترین اولویت، اولویت مطلق را در پیش زمینه میدهد. همچنین از سیستمعاملهای زمان واقعی برای انجام وظایف چند کاربره به اشتراک گذاشته شده در زمان استفاده میشود. به عنوان مثال، Data General Business Basic میتواند در پیش زمینه یا پس زمینه RDOS اجرا شود و عناصر اضافی را به الگوریتم برنامه ریزی معرفی کند تا مناسبتر برای افرادی که از طریق پایانه های گنگ تعامل دارند، باشد. زمانی که MOS Technology 6502 (در Commodore 64 و Apple II استفاده می شود) و بعداً هنگامی که Motorola 68000 (که در Macintosh ، Atari ST و Commodore Amiga استفاده می شود) محبوب بودند، هرکسی می توانست از رایانه خانگی خود به عنوان زمان واقعی استفاده کند سیستم. امکان غیرفعال کردن وقفههای دیگر برای حلقه های سخت کدگذاری شده با زمان مشخص شده امکان پذیر است و تأخیر کم وقفه امکان اجرای یک سیستم عامل در زمان واقعی را فراهم میکند، به رابط کاربر و درایوهای دیسک نسبت به موضوع زمان واقعی اولویت کمتری میدهد.
معیارهای محاسبه در زمان واقعی
گفته میشود که یک سیستم در زمان واقعی است در صورتی که صحت کل یک عملیات نه تنها به صحت منطقی آن بلکه به زمان انجام آن بستگی دارد. سیستمهای بیدرنگ و همچنین مهلتهای آنها، به دلیل از دست دادن یک مهلت طبقه بندی میشوند:
- سخت - از دست دادن یک مهلت کاملاً خراب سیستم است.
- شرکت - قصور نادرست در مهلت قابل تحمل است، اما ممکن است کیفیت خدمات سیستم را پایین بیاورد. سودمندی یک نتیجه پس از پایان مهلت آن صفر است.
- نرم - سودمندی یک نتیجه پس از پایان مهلت آن کاهش یافته و در نتیجه کیفیت خدمات سیستم را پایین میآورد.
بنابراین، هدف یک سیستم سخت در زمان واقعی اطمینان از رعایت تمام مهلتها است، اما برای سیستمهای نرم زمان واقعی، هدف دستیابی به زیرمجموعه خاصی از مهلت ها به منظور بهینه سازی برخی از معیارهای خاص برنامه است. معیارهای خاص بهینه سازی شده به برنامه بستگی دارد، اما برخی از نمونههای معمول شامل به حداکثر رساندن تعداد مهلت های تعیین شده، به حداقل رساندن تأخیر وظایف و به حداکثر رساندن تعداد وظایف با اولویت بالا که در مهلت های تعیین شده خود هستند. سیستمهای زمان واقعی سخت هنگامی مورد استفاده قرار میگیرند که ضروری است در یک مهلت دقیق به یک رویداد واکنش نشان دهند. چنین تضمینهای محکمی در مورد سیستمهایی مورد نیاز است که عدم واکنش آنها در یک بازه زمانی مشخص باعث نوعی خسارت بزرگ میشود، خصوصاً صدمه جسمی به محیط اطراف یا تهدید جان انسانها (اگرچه تعریف دقیق این است که از دست دادن مهلت مقرر به منزله خرابی سیستم است) ) چند نمونه از سیستمهای سخت در زمان واقعی:
- سیستم کنترل موتور خودرو یک سیستم سخت در زمان واقعی است زیرا سیگنال تأخیری ممکن است باعث خرابی یا خرابی موتور شود.
- سیستمهای پزشکی مانند ضربانساز مصنوعی قلب حتی اگر کار یک ضربان ساز ساده است، اما به دلیل خطر احتمالی برای زندگی انسان، سیستمهای پزشکی مانند اینها معمولاً مورد آزمایش و صدور گواهینامه کامل قرار میگیرند، که به نوبه خود نیاز به محاسبات سخت افزاری در زمان واقعی دارد تا بتواند تضمین های اثبات پذیر بودن خرابی را ارائه دهد.
- کنترل کنندههای فرآیند صنعتی، مانند دستگاه روی خط مونتاژ. اگر دستگاه به تأخیر بیفتد، مورد موجود در خط مونتاژ میتواند از حد امکان دستگاه عبور کند (محصول را دست نخورده باقی بگذارد) ، یا با فعال کردن ربات در زمان نامناسب، دستگاه یا محصول آسیب ببیند. در صورت شناسایی خرابی، هر دو حالت منجر به توقف خط مونتاژ میشود که تولید را کند میکند. اگر خرابی شناسایی نشود، محصولی با نقص میتواند آن را از طریق تولید ایجاد کند یا در مراحل بعدی تولید آسیب ببیند.
- سیستمهای زمان واقعی سخت معمولاً در سیستم های تعبیه شده در سطح پایین با سخت افزار فیزیکی تعامل دارند. سیستمهای بازیهای ویدئویی اولیه مانند گرافیک برداری Atari 2600 و Cinematronics به دلیل ماهیت گرافیک و سخت افزار زمان بندی، نیاز به زمان واقعی داشتند.
- سافت مودمها مودم سخت افزاری را با نرم افزاری که روی پردازنده مرکزی رایانه کار میکند جایگزین میکنند. این نرم افزار باید هر چند میلی ثانیه اجرا شود تا داده های صوتی بعدی برای تولید تولید شود. اگر این داده ها دیر شود ، مودم دریافت کننده همگام سازی را از دست میدهد و باعث ایجاد وقفه طولانی میشود زیرا همگام سازی دوباره برقرار میشود یا باعث میشود اتصال به طور کامل قطع شود.
- بسیاری از انواع چاپگرها نیاز به زمان واقعی دارند، مانند جوهر افشان (جوهر باید در زمان صحیح با عبور سر صفحه از صفحه ذخیره شود) ، چاپگرهای لیزری (لیزر باید در زمان مناسب فعال شود زیرا پرتو در سراسر اسکن میشود درام چرخان)، و ماتریس نقطه و انواع مختلف چاپگرهای خطی (مکانیزم ضربه باید در زمان مناسب فعال شود زیرا مکانیسم چاپ با خروجی مورد نظر همسو می شود). عدم موفقیت در هر یک از اینها باعث از بین رفتن یا از بین رفتن نامناسب خروجی میشود.
در زمینه multitasking systems، سیاست برنامه ریزی معمولاً اولویت محور است (برنامه ریزهای پیشگیرانه). در برخی شرایط، اینها میتوانند عملکرد سخت در زمان واقعی را تضمین کنند (به عنوان مثال اگر مجموعه وظایف و اولویت های آنها از قبل مشخص باشد). برنامه ریزهای زمان واقعی سخت دیگری نیز وجود دارد مانند نرخ یکنواخت که در سیستم های عمومی کاربرد عادی ندارد، زیرا برای برنامه ریزی یک کار به اطلاعات اضافی نیاز دارد: یعنی برآورد مقید یا بدترین حالت برای مدت زمان انجام کار. الگوریتمهای خاصی برای برنامه ریزی چنین کارهای سخت در زمان واقعی وجود دارد، از جمله اولین مهلت اولیه، که بدون توجه به هزینه بالای سوئیچینگ زمینه، برای بارهای سیستم کمتر از 100٪ کافی است. سیستمهای جدید زمان بندی همپوشانی، مانند برنامه ریز پارتیشن تطبیقی ، به مدیریت سیستمهای بزرگ با ترکیبی از برنامههای سخت در زمان واقعی و غیر واقعی کمک میکنند.
پانویس
- ↑ چندوظیفگی معادل فارسی multi tasking مصوب فرهنگستان زبان و ادب فارسی است.