سیستم عاملمیم تک 31

RTOS یا سیستم عامل بلادرنگ چیست ؟

RTOS یا سیستم عامل بلادرنگ چیست ؟
real time operation system

وقتی واژه سیستم عامل به گوشمان می‌خورد ، اولین چیزی که به ذهنمان می‌آید همان‌ هایی است که در زندگی روزمره از آن ها استفاده می‌کنیم. مثل ویندوز ، مکینتاش و لینوکس برای کامپیوتر ها و اندروید و ios برای موبایل ‌ها. برخی گمان می‌کنند سیستم عامل برای کامپیوتر است اما در حقیقت بیشتر دستگاه ‌های دیجیتال الکترونیک نوعی سیستم عامل در خود دارند. میکروکنترلرها هم مثل بسیاری از دستگاه‌ های الکترونیک، سیستم عامل دارند. سیستم عامل‌های مختلفی برای میکروکنترلرها طراحی شده اند. ما در این مقاله قصد داریم درباره سیستم عامل بلادرنگ یا Real Time Operating System (RTOS) صحبت کنیم.

هدف کلی RTOS چیست ؟

سیستم عامل یک برنامه کامپیوتری است که از کارکردهای اصلی رایانه پشتیبانی می کند .

به سایر برنامه ها یا برنامه هایی که در رایانه اجرا می شوند خدمات ارائه می دهد . برنامه ها عملکردی را که کاربر رایانه می خواهد یا به آن نیاز دارد فراهم می کنند . خدمات ارائه شده توسط سیستم عامل نوشتن برنامه ها را سریع تر ، ساده تر و محفوظ تر می کند . اگر در حال خواندن یک صفحه وب هستید ، از یک مرورگر وب استفاده می کنید ، که خود در یک محیط ارائه شده توسط یک سیستم عامل اجرا می شود .

 

RTOS یا سیستم عامل بلادرنگ چیست ؟

به نظر می رسد اکثر سیستم عامل ها چندین برنامه را همزمان اجرا می کنند .

به این کار چند کاره یا multi-tasking گفته می شود . در واقعیت ، هر هسته پردازنده تنها می تواند در هر نقطه معین از زمان ، یک موضوع واحد را اجرا کند . بخشی از سیستم عامل به نام برنامه ریز وظیفه دارد تصمیم بگیرد که چه زمانی برنامه را اجرا کند .  به عبارتی یک سیستم عامل زمان واقعی ، که معمولاً به عنوان RTOS شناخته می شود ، یک مؤلفه نرم افزاری است که به سرعت بین وظایف جا به جا می شود .

این تصور را می دهد که چندین برنامه همزمان در یک هسته پردازشی واحد اجرا می شوند .

 

 

FreeRTOS چیست ؟

FreeRTOS یک کلاس RTOS است که به اندازه کافی کوچک طراحی شده است تا بتواند بر روی میکروکنترلر کار کند .

اگرچه استفاده از آن محدود به برنامه های میکروکنترلر نمی شود .

 میکروکنترلر یک پردازنده محدود و منبع محدود است .

میکروکنترلرها در برنامه های عمیق embedded استفاده می شوند (برنامه هایی که در واقع هیچ وقت خود پردازنده ها یا نرم افزاری را که اجرا می کنید مشاهده نمی کنید) که به طور معمول کار بسیار خاص و اختصاصی دارند . محدودیت های اندازه ، و ماهیت پایان برنامه اختصاصی ، به ندرت استفاده از اجرای کامل RTOS را ضمانت می کنند ، یا در واقع استفاده از یک اجرای کامل RTOS را ممکن می سازند .

بنابراین FreeRTOS تنها قابلیت برنامه ریزی زمان واقعی هسته ، ارتباطات بین کار و زمان بندی را فراهم می کند .

 

کارکردهای اصلی سیستم عامل بلادرنگ :

  • زمانبندی
  • خدمات  RTOS
  • هماهنگ سازی و پیام رسانی
زمانبندی :

به طور کلی وظایف یک دستگاه ، سه حالت دارند :

  • آماده اجرا : وقتی وظیفه ای تمام منابع و پیش فرض‌های لازم برای اجرا را دارد اما هنوز اجرا نشده است ، آماده اجرا نام می‌گیرد . در واقع این حالت نقطه شروع قبل از اجرا می‌باشد .
  • در حال اجرا : این حالت به وظایفی اطلاق می‌شود که در حال انجام و پیاده سازی هستند .
  • مسدود : وقتی یک وظیفه منابع و پیش فرض‌های کافی برای اجرا را در اختیار نداشته باشد ، در حالت مسدود قرار می‌گیرد .

 

برای زمانبندی یک وظیفه ، از سه تکنیک استفاده می‌شود :

  • زمانبندی مشارکتی (Co-operative) : در این تکنیک وقتی پیاده سازی یک وظیفه کامل شود ، وظیفه اجرا خواهد شد .
  • زمانبندی نوبت گردشی (Round Robin) : در این روش ، یک مسیر یا بازه زمانی ثابت به هر وظیفه اختصاص داده می شود که پیاده سازی باید در طی آن زمان کامل شود . در غیر این صورت وظیفه جریان و داده‌های تولید شده را از دست می‌دهد و برای اجرا باید منتظر نوبت بعدی اش بماند .
  • زمانبندی پیشگیرانه (Preemptive) : در این روش ، بسته به زمان تخصیص داده شده ، اولویت وظیفه ‌ها مشخص می‌شوند . در برنامه‌ها معمولاً 256 سطح اولویت مورد استفاده قرار می‌گیرد . به این ترتیب به هر وظیفه یک سطح اولویت خاص اختصاص داده می‌شود . البته برخی از سیستم ‌ها از سطوح اولویت بیشتری حمایت می‌کنند و چند وظیفه ای ‌ها هم از اولویت یکسانی برخوردارند .

 

در سیستم عامل بلادرنگ ، هسته به وظایف مختلف سیستم رسیدگی می‌کند .

هسته در این سیستم وظایف زیر را انجام میدهد :

  • ایجاد یک وظیفه
  • حذف یک وظیفه
  • تغییر اولویت یک وظیفه
  • تغییر حالت یک وظیفه

 

خدمات سیستم عامل بی درنگ :

قلب هر سیستم عامل ، هسته آن است .

وظایف یک دستگاه همیشه نیاز به کنترل سخت افزاری ندارند . مدیریت و تخصیص منابع یکی از وظایف اصلی هسته است . از آنجایی که وظایف همیشه به تمرکز CPU نیاز ندارند ، هسته باید خدمات دیگری را هم ارائه دهد .

این خدمات عبارتند از :

  • خدمات وقفه گردانی
  • خدمات زمانی
  • خدمات مدیریت دستگاه
  • خدمات مدیریت حافظه
  • خدمات ورودی خروجی

پیام رسانی :

پیام رسانی ، ابزار ارتباط با سایر سیستم‌ ها و ارتباط میان وظایف را فراهم می‌کند .

خدمات پیام رسانی شامل موارد زیر باشد :

  • نشان برها  (Semaphores)
  • پرچم ‌های رخداد
  • صندوق ‌های پیام
  • پایپ ‌ها
  • صف ‌های پیام

نشان برها برای همگام سازی دسترسی به منابع مشترک ( مثل مناطق داده ای مشترک ) مورد استفاده قرار می‌گیرند .

پرچم ‌های رخداد هم برای همگام سازی فعالیت ‌های وظایف درونی سیستم کاربرد دارند .

صندوق ‌های پیام ، پایپ ‌ها و صف ‌های پیام برای ارسال پیام بین وظایف مختلف مورد استفاده قرار می‌گیرند .

 

real time operation system

چرا از RTOS استفاده می کنیم ؟

تکنیک های خوبی برای نوشتن نرم افزار جاسازی شده خوب و بدون استفاده از RTOS وجود دارد .

در بعضی موارد ، این روش ها مناسب ترین راه حل را ارائه می دهند . اما هرچه راه حل پیچیده تر شود ، مزایای RTOS آشکارتر می شود .

شامل موارد زیر است :

  • زمانبندی مبتنی بر اولویت : توانایی جداسازی پردازش مهم از غیر مهم یک ابزار قدرتمند است .
  • خلاصه اطلاعات زمانبندی : RTOS مسئول زمانبندی است و توابع API را ارائه می دهد . این اجازه می دهد تا کد برنامه cleaner ( و کوچکتر ) باشد .
  • قابلیت حفظ / انعطاف پذیری : انتزاع وابستگی به زمان و طراحی مبتنی بر کار منجر به وابستگی کمتری بین ماژول ها می شود . این امر باعث نگهداری آسان تر می شود .
  • Modularity : API  مبتنی بر کار به طور طبیعی توسعه ماژولار را ترغیب می کند زیرا یک کار به طور معمول نقش مشخصی دارد .
  • ارتقا توسعه تیم : سیستم مبتنی بر وظیفه به طراحان / تیم های جداگانه اجازه می دهد تا به طور مستقل روی قسمت های پروژه خود کار کنند .
  • تست آسان تر: توسعه مبتنی بر کار ماژولار امکان آزمایش مبتنی بر کار ماژولار را فراهم می کند .
  • استفاده مجدد از کد : یکی دیگر از مزایای ماژولار این است که برنامه های مشابه در سیستم عامل های مشابه به ناچار منجر به ایجاد یک کتابخانه از کارهای استاندارد می شوند .
  • بهره وری بهبود یافته : هیچ زمان پردازشی برای رای گیری رویدادهایی که رخ نداده است تلف نمی شود .
  • پردازش Idle : پس زمینه یا پردازش Idle در idle task انجام می شود . این تضمین می کند که مواردی مانند اندازه گیری بار CPU ، بررسی پس زمینه CRC و غیره بر پردازش اصلی تأثیر نمی گذارد .

 

 

هنگام انتخاب RTOS چه چیزی باید در نظر گرفته شود ؟

  • پاسخگویی : الگوریتم زمانبندی RTOS ، تاخیر زمانی و زمان تعویض متن به طور قابل توجهی پاسخگویی سیستم را مشخص می کند . مهمترین نکته این است که کدام نوع پاسخ مورد نظر است ، آیا پاسخ زمان واقعی لازم است ؟ این بدان معناست که مهلت هایی دقیقاً مشخص شده وجود دارد که در صورت عدم رعایت ، باعث خرابی سیستم خواهد شد . از طرف دیگر ، آیا پاسخی غیر قطعی در زمان واقعی مناسب است ؟ در این صورت هیچ تضمینی در مورد زمان انجام هر کار وجود ندارد .

  • منابع سیستم موجود : هسته های خرد از حداقل منابع سیستم استفاده می کنند و عملکرد برنامه ریزی کار محدود اما اساسی را ارائه می دهند . هسته های میکرو معمولاً یک پاسخ زمان واقعی را تحویل می دهند ، و با ریزپردازنده های تعبیه شده با ظرفیت RAM / ROM محدود استفاده می شوند ، اما می تواند برای سیستم های بزرگتر پردازنده تعبیه شده نیز مناسب باشد . از طرف دیگر می توان از یک سیستم عامل کاملاً برجسته مانند Linux یا WinCE استفاده کرد . این ها یک محیط سیستم عامل غنی از ویژگی هستند ، که به طور معمول با درایورها ، GUI و مؤلفه های میان افزار تهیه می شود . سیستم عامل های کامل برجسته معمولاً کمتر پاسخ می دهند .

ارسال پاسخ