منبع اصلی نوشتار زیر در این لینک قرار دارد

لینوکس بلادرنگ

یک سیستم عامل بلادرنگ (RTOS) سیستم عاملی است که قادر است اجرای دستورات را در یک زمان ثابت انجام دهد.سیستم عامل های بلادرنگ زمانبند های پیشرفته ای دارند، دوره ی عکس العمل حداقل برای وقفه ها و جابه جایی بین نخ ها(Thread)دارند.RTOSها از سیستم هایی که بلادرنگ نیستند خیلی سریع تر نیستند با اینکه مدیریت وقفه در آنها به صورت به موقع است و داده های فرایند ها در اختیار آنها و یک deadLine مشخص برای آنها تعریف شده است.منظور از این مفاهیم بهتر کردن روند و کارایی سیستم عامل ها برای وسایل خاص مثل وسایل پزشکی شبیه راهنمای مصنوعی(Artifical cardiac pacemarker)، کنترل مصنوعی و غیره است.

 

 

توجه: RTOS همان RISC (Reduced instruction set computing) نیست.

خیلی از افراد میدانند که لینوکس در سیستم های تعبیه شده(embedded systems) استفاده شده است.با این وجود سیستم های embedded همان سیستم های real-time نیستند،یعنی با وجود اینکه بسیاری از سیستم های real-time ،embedded هستند اما همه ی سیستم های embedded ،real-time نیستند.

 

کرنل لینوکس به نام Vanilla (orginal  و تغییرنیافته)  توانایی بلادرنگ را ندارد اما با این وجود راههایی برای لینوکس وجود دارد که آن را مانند یک سیستم عامل بلادرنگ می کند.ساده ترین راهکار برای استفاده کرنل لینوکس که “PREEMPT_RT patch”

را شامل می شود است که –rt patch یا RT patch نامیده می شود.یک کرنل لینوکس با  PREEMPT_RT قابلیت multitasking غیر قابل پسگیری را حمایت می کند که اطمینان می دهد که هر فرایند یک مقدار زمان مشخص از زمان CPU را به خود اختصاص می دهد و همچنین کرنل بیشتر شبیه یک سیستم عامل بلادرنگ عمل می کند.یک سیستم عامل با قابلیت PREEMPT_RT یک PREEMPT_RT kernel نامیده می شود.با این وجود این کرنل ها ۱۰۰% بلادرنگ نیستند.

خوشبختانه،راه های چاره و ابزار های اضافی وجود دارد.Xenomai یک فریم ورک توسعه ی Userland-level است که رابطی بین برنامه و کرنل ایجاد میکند.فعالیتهای Xenomai به عنوان یک kernel ثانویه در کنار kernel اصلی ادامه می یابد.با این وجود نصب Xenomai برای پردازش بلادرنگ کافی نیست.توسعه دهندگان باید برنامه های بلادرنگ را recompile کنند.

 

http://xenomai.org/

http://xenomai.org/introducing-xenomai-3/

http://xenomai.org/2014/08/porting-a-linux-application-to-xenomai-dual-kernel/

 

 

برای بهترعمل کردن سیستم های بلادرنگ این راهکار به پیکربندی و compile یک kernel بهتر کمک می کند.این بهترین راهکار برای غیر فعال کردن ویژگی های kernel است که باعث  مدت رکود آن می شوند و فعال کردن ویژگی هایی که  باعث کاهش رکود می شوند.برای نمونه غیر فعال کردن CONFIG_CPU_FREQ و CONFIG_CPU_IDLE  باعث تغییر یافتن فرکانس clock یا تغییر حالت نخواهد شد.kernel باید برای کنترل مدیریت توان خود پیکربندی بشود در حالی که  BIOS دنبال راهی برای رکود است.همچنین هر driver را که کارش ضرورتی نداشته باشد غیر فعال می کند.کرنل های بلادرنگ باید مشخصا برای کاربران سخت افزار طراحی شوند نه برای تولیدکنندگان مختلف سخت افزار.برای اطلاع بیشتر از  نحوه ی پیکربندی و کامپایل یک کرنل خاص (custom) لینک زیر را دنبال کنید:

 

http://www.linux.org/threads/linux-kernel-reading-guide.5384/

 

Adeos (َAdoptive Domain Environment for Operating Systems):

یک نانوکرنل است که تحت کرنل لینوکس اجرا می شود.Adeos سیستم های لینوکس را به عنوان سیستم های بلادرنگ اجرا می کند.اجرای Adeos به recompile یا دستکاری کرنل لینوکس نیاز ندارد.

RTAI (Real-Time Application Interface):

یک کرنل توسعه یافته ی خاص برای لینوکس است که ارئه ی خاصیت بلادرنگ را پشتیبانی میکند.RTAI،POSIX-compliant و متن باز است.RTAI یک پچ تنها برای لینوکس است که سرویس های مختلف و یک لایه ی انتزاعی سخت افزار را به آن اضافه می کند.

 

https://www.rtai.org/

 

زمان انتخاب یک متد یا ترکیبی از متدها برای بلادرنگ گردن سیستم های لینوکس نوع پردازنده را چک کنید تا مطمئن شوید که متدها CPU و سخت افزار سیستم را پشتیبانی می کنند.بعضی از پردازنده ها و سخت افزارها ویژگی های خاصی دارند که آنها را قادر می سازدکه در محیط های بلادرنگ بهتر عمل کنند.برای نمونه پردازنده های ARM در سری های Cortex-R اجرای سیستم های بلادرنگ را به خوبی پشتیبانی می کنند و به خوبی پردازش می کنند.

اگر قادر به بدست آوردن ویژگیهای بلادرنگ به صورت ۱۰۰% در هر یک از روش های بالا نشدید،روش های متن باز دیگری وجود دارد.در لینک های زیر میتوانید منابع بیشتری بیابید.

 



برچسب ها : ,