وظیفه اصلی یک سیستم عامل، مدیریت منابع و فعالیت های سخت افزاری در سیستم از جمله برنامه ریزی برنامه های کاربردی، نوشتن فایل ها بر روی دیسک، ارسال داده ها در یک شبکه و … است. هنگامی که سیستم عامل باید چندین رویداد را به طور همزمان مدیریت کند و اطمینان حاصل کند که سیستم به آن رویدادها در محدوده زمانی قابل پیش بینی پاسخ می دهد، سیستم عامل بلادرنگ (RTOS) نامیده می شود. در ادامه به بررسی کامل اینکه RTOS چیست و چه کاربردی دارد، می پردازیم.
فهرست مطالب
RTOS چیست
پیش از آنکه به مفهوم rtos یا سیستم عامل بلادرنگ بپردازیم، لازم است با تعریف سیستم عامل و انواع آن آشنا شویم. سیستم عامل (OS)، نرم افزاری است که به عنوان رابط بین اجزای سخت افزار کامپیوتر و کاربر عمل می کند. هر سیستم کامپیوتری باید حداقل یک سیستم عامل برای اجرای برنامه های خود داشته باشد. سیستم عامل ها به دو دسته RTOS (بلادرنگ) و Non RTOS (با درنگ) تقسیم می شوند. سیستم عامل های با درنگ، همان سیستم عامل هایی هستند که بر روی کامپیوتر و موبایل شما مانند ویندوز، مک، اندروید، ios و … قرار دارند.
سیستم عامل بلادرنگ چیست؟
سیستم عامل بلادرنگ RTOS که مخفف real time operating system است، یک جزء نرم افزاری است که به سرعت بین وظایف سوئیچ می کند و این تصور را ایجاد می کند که چندین برنامه به طور همزمان بر روی یک هسته پردازشی واحد اجرا می شوند. در واقع هسته پردازشی تنها میتواند یک برنامه را در یک زمان اجرا کند و کاری که RTOS در واقع انجام میدهد این است که به سرعت بین تسک ها یا وظایف جا به جا میشود تا این تصور ایجاد شود که چندین برنامه به طور همزمان اجرا میشوند.
در واقع سیستم عامل بلادرنگ (RTOS) یک سیستم عامل با دو ویژگی کلیدی است:
پیش بینی پذیری و تعیین گرایی.
در یک RTOS، وظایف تکراری در یک محدوده زمانی محدود انجام می شود، در حالی که در یک سیستم عامل با درنگ، لزوماً اینطور نیست.
تفاوت اصلی بین OS و RTOS چیست؟
تفاوت بین OS (سیستم عامل) مانند ویندوز یا یونیکس و RTOS (سیستم عامل بلادرنگ) که در سیستم های امبدد یافت می شود، زمان پاسخگویی به رویدادهای خارجی است. سیستم عاملها (OS) معمولاً پاسخی غیر قطعی نرم ارائه میدهند، که در آن هیچ تضمینی برای زمان تکمیل کار وجود ندارد، اما سعی میکنند به کاربر پاسخگو باقی بمانند. یک RTOS از این جهت متفاوت است که معمولاً یک پاسخ بلادرنگ سخت ارائه میکند و واکنشی سریع و بسیار قطعی به رویدادهای خارجی ارائه میکند.
اجزای سیستم real time شامل چه مواردی می شوند؟
زمان بند یا Scheduler: این جزء از RTOS می گوید که به چه ترتیبی بر اساس اولویت، وظایف را می توان اجرا کرد.
پردازش چندگانه متقارن(SMP): تعدادی کار مختلف است که می تواند توسط RTOS انجام شود تا پردازش به صورت موازی انجام شود.
کتابخانه توابع یا Function Library: یکی از عناصر مهم RTOS است که به عنوان یک رابط عمل می کند که به شما در اتصال هسته و کد برنامه کمک می کند. این نرم افزار به شما اجازه می دهد تا درخواست ها را با استفاده از یک کتابخانه توابع به هسته ارسال کنید تا برنامه بتواند نتایج دلخواه شما را ارائه دهد.
مدیریت حافظه: این عنصر در سیستم برای تخصیص حافظه به هر برنامه مورد نیاز است که مهمترین عنصر RTOS نیز است.
دوره ارسال سریع: فاصله زمانی بین پایان کار که توسط سیستم عامل قابل شناسایی است و زمان واقعی صرف شده توسط رشته ای است که در صف آماده ای است که پردازش شروع شده است.
اشیاء و کلاس های داده تعریف شده توسط کاربر: سیستم عامل بلادرنگ از زبان های برنامه نویسی مانند C یا C++ استفاده می کند که باید بر اساس عملکرد آنها سازماندهی شوند.
انواع RTOS
سه نوع Real time system عبارتند از:
سیستم عامل بلادرنگ سخت
در سیستم عامل بلادرنگ سخت، زمان مقرر (deadline) بسیار دقیق انجام می شود، به این معنی که وظیفه داده شده باید در زمان برنامه ریزی شده مشخص اجرا شود و باید در مدت زمان تعیین شده تکمیل شود.
مثال: سیستم مراقبت های ویژه پزشکی، سیستم های هواپیما و غیره.
سیستم عامل بلادرنگ ثابت
این نوع از RTOS نیز باید از زمان مقرر پیروی کنند. از دست دادن مهلت زمانی، ممکن است تأثیر زیادی نداشته باشد، اما میتواند باعث تأثیرات نامطلوب شود؛ مانند کاهش شدید کیفیت یک محصول.
مثال: انواع مختلف برنامه های چند رسانه ای.
سیستم عامل بلادرنگ نرم
سیستم عامل بلادرنگ نرم، برخی تاخیرها را توسط سیستم عامل می پذیرد. در این نوع سیستم عامل بلادرنگ برای یک کار خاص مهلتی تعیین شده است اما تاخیر برای مدت کمی قابل قبول است. بنابراین، زمان مقرر یا deadline توسط این نوع RTOS به آرامی کنترل می شود.
مثال: سیستم معاملات آنلاین.
اصطلاحات مورد استفاده در RTOS
در این بخش، اصطلاحات اساسی مورد استفاده در سیستم عامل بلادرنگ را ذکر کرده ایم:
تسک یا وظیفه – مجموعه ای از وظایف مرتبط که به طور مشترک قادر به ارائه برخی از عملکردهای سیستم هستند.
شغل – یک بخش کوچکی از کار است که می تواند به یک پردازنده اختصاص داده شود و ممکن است به منابع نیاز داشته باشد.
زمان انتشار یک کار – زمانی از یک کار است که در آن کار برای اجرا آماده می شود.
زمان اجرای یک کار – زمانی است که کار برای اتمام اجرای آن صرف می شود.
مهلت یک کار – زمانی است که یک کار باید تا آن زمان اجرای خود را به پایان برساند.
پردازنده ها – به عنوان منابع فعال نیز شناخته می شوند و برای اجرای یک کار مهم هستند.
حداکثر زمان پاسخگویی – مدت زمان مجاز برای انجام یک کار است که مهلت نسبی آن نامیده می شود.
زمان پاسخگویی یک کار – مدت زمانی از زمان انتشار یک کار پس از اتمام فوری است.
مهلت مطلق – مهلت نسبی است که شامل زمان انتشار آن نیز می شود.
ویژگی های سیستم عامل بلادرنگ RTOS
- تعیین گرایی
تکرار یک ورودی به همان خروجی منجر می شود.
- عملکرد بالا
سیستمهای RTOS سریع و پاسخگو هستند و اغلب اقدامات را در کسری کوچک از زمان مورد نیاز یک سیستم عامل عمومی انجام میدهند.
- ایمنی و امنیت
سیستم عامل های بلادرنگ اغلب در سیستمهای حیاتی مانند روباتیک یا کنترلکنندههای پرواز استفاده میشوند که خرابی در آنها میتوانند عواقب فاجعه باری داشته باشند. برای محافظت از اطرافیان خود، آنها باید استانداردهای امنیتی بالاتر و ویژگی های ایمنی قابل اعتمادتری داشته باشند.
- زمانبندی مبتنی بر اولویت
زمانبندی بر اساس اولویت به این معنی است که اقداماتی که اولویت بالایی دارند ابتدا اجرا میشوند و اقداماتی که اولویت پایینتری دارند، بعد از آن انجام میشوند. این بدان معنی است که یک RTOS همیشه مهمترین وظیفه را اجرا می کند.
- حافظه بسیار کمتری را اشغال می کند.
- منابع کمتری مصرف می کند.
- زمان پاسخگویی قابل پیش بینی است.
- Kernel وضعیت وظیفه قطع شده را ذخیره می کند و سپس تعیین می کند که کدام کار بعدی باید اجرا شود.
- Kernel وضعیت وظیفه را بازیابی می کند و کنترل CPU را برای آن کار منتقل می کند.
کاربردهای سیستم عامل بلادرنگ RTOS
سیستم های بلادرنگ در موارد زیر استفاده می شوند:
- سیستم رزرو کردن خطوط هوایی
- سیستم کنترل ترافیک هوایی
- سیستم هایی که به روز رسانی فوری را ارائه می دهند.
- در هر سیستمی که اطلاعات به روز و دقیق قیمت سهام را ارائه میدهد، از این سیستم استفاده میشود.
- سیستم های کاربردی دفاعی مانند رادار
- سیستم های چند رسانه ای شبکه ای
- سیستم های کنترل فرمان
- به کار بردن تلفن اینترنتی
- سیستم های ترمز ضد قفل
- دستگاه تنظیم کننده ضربان قلب
FreeRTOS چیست؟
FreeRTOS یک کلاس یا رده از RTOS است که برای اجرا بر روی یک میکروکنترلر به اندازه کافی کوچک طراحی شده است؛ اگرچه استفاده از آن تنها به برنامه های میکروکنترلر محدود نمی شود.
میکروکنترلر، یک پردازنده کوچک و با منابع محدود است که روی یک تراشه واحد، خود پردازنده، حافظه فقط خواندنی (ROM یا Flash) را برای نگه داشتن برنامه برای اجرا و حافظه دسترسی تصادفی (RAM) مورد نیاز برنامه ها را در خود جای داده است.
FreeRTOS یک سیستم عامل متن باز (open source) و بلادرنگ برای میکروکنترلرها است که برنامه ریزی، استقرار، ایمن سازی، اتصال و مدیریت دستگاه های کم مصرف را آسان می کند. FreeRTOS که به صورت آزاد تحت مجوز منبع باز MIT توزیع شده است، شامل یک هسته و مجموعه در حال رشدی از کتابخانه های نرم افزاری است که برای استفاده در بخش های صنعتی و برنامه های کاربردی مناسب است.
این شامل اتصال ایمن دستگاه های کوچک و کم مصرف شما به سرویس های ابری خدمات وب آمازون مانند آمازون IoT Core می شود. FreeRTOS با تاکید بر قابلیت اطمینان و سهولت استفاده ساخته شده است.
مزایا و معایب استفاده از RTOS
مزایای استفاده از RTOS
مزایای استفاده از سیستم عامل های بلادرنگ به شرح زیر است:
- حداکثر مصرف
حداکثر استفاده از دستگاه ها و سیستم ها که منجر به خروجی بیشتر از همه منابع می شود.
- تغییر کار
زمان اختصاص داده شده برای جابجایی وظایف در این سیستم ها بسیار کم است. به عنوان مثال، انتقال یک کار به کار دیگر در سیستم های قدیمی، حدود 10 میکروثانیه طول می کشد و در جدیدترین سیستم ها، 3 میکروثانیه طول می کشد.
- تمرکز بر برنامه
روی برنامه های در حال اجرا تمرکز می کند و اهمیت کمتری به برنامه هایی که در انتظار هستند، می دهد.
- سیستم عامل بلادرنگ در سیستم امبدد
از آنجایی که اندازه برنامه ها کوچک است، سیستم عامل بلادرنگ می تواند سیستم هایی مانند حمل و نقل را نیز تعبیه کند.
- بدون خطا
این نوع سیستم ها بدون خطا هستند.
- تخصیص حافظه
تخصیص حافظه در این نوع سیستم ها به بهترین شکل مدیریت می شود.
معایب استفاده از RTOS
در این قسمت، برخی از معایب استفاده از سیستم RTOS را ذکر کرده ایم:
- سیستم عامل بلادرنگ میتواند وظایف مینیمال یا کمینه را با هم اجرا کند و فقط روی برنامههایی متمرکز میشود که حاوی خطا هستند تا بتواند از آنها جلوگیری کند.
- برای RTOS درایورهای خاصی مورد نیاز است تا بتواند زمان پاسخگویی سریع را برای قطع سیگنال ها ارائه دهد که به حفظ سرعت آن کمک می کند.
- منابع زیادی توسط RTOS استفاده می شود که این مسئله، این سیستم را گران می کند.
- وظایفی که اولویت پایینی دارند باید برای مدت طولانی منتظر بمانند زیرا RTOS دقت برنامه را حفظ می کند که در حال اجرا هستند.
- حداقل سوئیچینگ وظایف در سیستم عامل های بلادرنگ انجام می شود.
- از الگوریتم های پیچیده ای استفاده می کند که درک آن دشوار است.
- سیستم عامل بلادرنگ از منابع زیادی استفاده می کند که گاهی اوقات برای سیستم مناسب نیستند.
چرا باید از RTOS استفاده کنیم؟
در ادامه دلایل مهمی که برای استفاده از RTOS وجود دارد را برای شما شرح می دهیم:
- RTOS، زمان بندی مبتنی بر اولویت را ارائه می دهد که به شما اجازه می دهد پردازش تحلیلی را از پردازش غیر بحرانی جدا کنید.
- سیستم عامل Real Time توابع API را ارائه می دهد که کد برنامه تمیز تر و کوچکتر را امکان پذیر می کند.
- انتزاع وابستگی های زمان بندی و طراحی مبتنی بر وظیفه منجر به وابستگی متقابل کمتری بین ماژول ها می شود.
- سیستم عامل بلادرنگ، توسعه مبتنی بر وظیفه ماژول را ارائه می دهد که امکان تست مبتنی بر وظیفه ماژول را فراهم می کند.
- API مبتنی بر وظیفه توسعه ماژول را به عنوان یک کار تشویق می کند و معمولاً نقشی کاملاً مشخص دارد. این به طراحان/تیم ها اجازه می دهد تا به طور مستقل روی بخش هایی از پروژه که مربوط به خودشان است، کار کنند.
برای سال های طولانی، استفاده از RTOS ها بیشتر به سیستم های امبدد محدود می شد؛ اما اخیراً برنامه هایی با سیستم عامل های بلادرنگ برای پلتفرم های رایج در حال توسعه به وجود آمده اند. با افزایش نیاز به سیستم های بلادرنگ، باید ویژگی ها، کاربردها، مزایا و معایب RTOS ها را درک کنید تا در صورت نیاز بتوانید بهترین انتخاب را داشته باشید.