سیستم عامل های بلادرنگ
توسط Ali Raghimi
سیستم عامل بلادرنگ (RTOS) یک سیستم عامل (OS) برای برنامههای محاسباتی بلادرنگ است که دادهها و رویدادهایی را پردازش میکند که محدودیتهای زمانی مشخصی دارند. یک RTOS از یک سیستم عامل اشتراک زمانی متمایز است، مانند یونیکس، که اشتراک منابع سیستم را با یک زمانبندی، بافرهای داده یا اولویتبندی وظایف ثابت در یک محیط چندوظیفهای یا چندبرنامهای مدیریت میکند.
تمام پردازش ها باید در محدودیت های تعریف شده انجام شود. سیستمعاملهای بیدرنگ رویداد محور و پیشگیرانه هستند، به این معنی که سیستمعامل میتواند اولویتهای مربوط به وظایف رقیب را نظارت کند و تغییراتی را در اولویت کار ایجاد کند. سیستمهای رویداد محور بر اساس اولویتهایشان بین کارها جابهجا میشوند، در حالی که سیستمهای اشتراک زمانی کار را بر اساس وقفههای ساعت تغییر میدهند.
مشخصات
یکی از مشخصه های کلیدی RTOS میزان سازگاری آن در رابطه با مدت زمانی است که برای پذیرش و تکمیل کار یک برنامه نیاز است. یک سیستم عامل ریل تایم "سخت" (Hard RTOS) نسبت به یک سیستم عامل ریل تایم "نرم" (RTOS نرم) لرزش کمتری دارد. پاسخ دیرهنگام در یک RTOS سخت یک پاسخ اشتباه است در حالی که پاسخ دیرهنگام در RTOS نرم قابل قبول است. هدف اصلی طراحی، توان عملیاتی بالا نیست، بلکه تضمین یک دسته عملکرد نرم یا سخت است. یک RTOS که معمولاً یا به طور کلی می تواند یک ضرب الاجل داشته باشد، یک سیستم عامل بلادرنگ نرم است، اما اگر بتواند به طور قطعی یک ضرب الاجل را رعایت کند، یک سیستم عامل بلادرنگ سخت است.
یک RTOS دارای یک الگوریتم پیشرفته برای زمان بندی است. انعطافپذیری زمانبند، سازماندهی گستردهتر و سیستم کامپیوتری اولویتهای فرآیند را امکانپذیر میسازد، اما سیستمعامل بلادرنگ بیشتر به مجموعهای از برنامههای کاربردی اختصاص داده میشود.
عوامل کلیدی در یک سیستم عامل بلادرنگ عبارتند از: حداقل تأخیر وقفه و حداقل تأخیر سوئیچینگ رشته. یک سیستمعامل بلادرنگ بیشتر بهخاطر سرعت یا میزان قابل پیشبینی پاسخ دادن به آن ارزش دارد تا میزان کاری که میتواند در یک دوره زمانی معین انجام دهد.
فلسفه های طراحی
RTOS یک سیستم عامل است که در آن زمان پردازش یک محرک ورودی کمتر از زمان سپری شده تا محرک ورودی بعدی از همان نوع است.
رایج ترین طرح ها عبارتند از:
رویداد محور
وظایف را تنها زمانی تغییر می دهد که یک رویداد با اولویت بالاتر نیاز به سرویس داشته باشد که این امر، اولویت بندی پیشگیرانه یا برنامه ریزی اولویت نامیده می شود.
اشتراکگذاری زمان
وظایف را در یک وقفهی ساعتی منظم و روی رویدادها تغییر میدهد.
طرحهای اشتراکگذاری زمان، وظایف را بیشتر از آنچه که نیاز است تغییر میدهند، اما چندوظیفهای روانتر را ارائه میدهند و این توهم را ایجاد میکنند که یک فرآیند یا کاربر تنها از یک ماشین استفاده میکند.
طراحیهای اولیه CPU به چرخههای زیادی برای تغییر وظایف نیاز داشتند که طی آنها CPU نمیتوانست کار مفید دیگری انجام دهد. از آنجایی که سوئیچینگ بسیار طول کشید، سیستمعاملهای اولیه سعی کردند با اجتناب از تعویض غیرضروری، اتلاف زمان CPU را به حداقل برسانند.
تخصیص حافظه
تخصیص حافظه در یک سیستم عامل بلادرنگ نسبت به سایر سیستم عامل ها حیاتی تر است.
اول، برای پایداری، نشت حافظه وجود ندارد (حافظه ای که تخصیص داده می شود اما پس از استفاده آزاد نمی شود). دستگاه باید به طور نامحدود و بدون نیاز به راه اندازی مجدد کار کند. به همین دلیل، تخصیص حافظه پویا مورد توجه قرار نمی گیرد.
دلیل دیگر برای جلوگیری از تخصیص حافظه پویا، تکه تکه شدن حافظه است. با تخصیص مکرر و آزادسازی تکه های کوچک حافظه، ممکن است وضعیتی رخ دهد که حافظه موجود به چند بخش تقسیم شود و RTOS نتواند یک بلوک مداوم به اندازه کافی بزرگ از حافظه را اختصاص دهد، اگرچه حافظه آزاد به اندازه کافی وجود دارد.
در مرحله دوم، سرعت تخصیص مهم است. یک طرح تخصیص حافظه استاندارد یک لیست مرتبط با طول نامشخص را برای یافتن یک بلوک حافظه آزاد مناسب اسکن می کند، که در RTOS قابل قبول نیست زیرا تخصیص حافظه باید در مدت زمان معینی اتفاق بیفتد.
پست های توصیه شده
کلان داده
14 مهر, 1402
تحول دیجیتال
14 مهر, 1402
تجزیه و تحلیل داده ها
14 مهر, 1402