مقدمه
قبلاز اینکه آموزش RTOS را شروعکنیم لازمه یکم درمورد RTOS توضیحبدیم، چون هیچ بعید نیست که خیلیها حتی اسم RTOS را تاحالا نشنیدهباشید(البته بعید میدونم اونم توی قرن۲۱) خواهی نخواهی دیگه باید از سبک و شیوههای قدیمی فاصلهگرفت و با تکنولوژیهای جدید آشتیکرد. البته این به اینمعنی نیست که RTOS موجود جدیدی است؛ به این معنیه که خیلیاز ما داریم از شیوههای قدیمی توی کدنویسی استفاده میکنیم که اگر از شیوههای جدید استفادهکنیم، قادرخواهیمبود که بهرهوری رو افزایشبدیم. برای آموزشهای بیشتر با ما همراه باشید.
چرا آموزش RTOS؟
ممکناست با خودتون فکرکنید که الان من بدون سیستمعامل هم دارم بهخوبی کار خودم رو پیش میبرم و چهنیازی هست که خودم رو درگیر پیچیدگیهای سیستمعامل کنم؛ یا اینکه RTOS چهکاری میتونه برای من بکنه که خودم قادرنیستم انجامشبدم؟ اینها دقیقا تصورات خود من بوده! البته مربوطبه ۷سالپیش وقتیکه هنوز کار با سیستمعامل رو شروعنکردهبودم! اونموقع برنامهنویسی رو بهشکل سنتی Super Loop انجام میدادم و تقریبا هرکاری رو میخواستم قادربودم انجامبدم! تا اینکه یک روز کنجکاو شدم که این سیستمعامل چی هست و به چهدردی میخوره؟!
از وقتی که با سیستمعامل آشناشدم دیگه برنامهنویسی بدون RTOS برام بیمعنی شده، پروژهای که ساختش بدون سیستمعامل ممکنبود یکماه زمان ببره با سیستمعامل زمان اجراش به ۱۵روز کاهش پیدا کرد، اینو واقعا تجربهکردم؛ گاهی با خودم فکر میکنم چطور من بدون سیستمعامل کدنویسی میکردم؟ چرا زودتر سراغ سیستمعامل نرفتم!
تاثیر استفادهاز سیستمعامل برای من اینقدر زیاد بود که دوستدارم همه دوستان رو با سیستمعامل و قابلیتهای اون آشناکنم ولی متاسفانه مثل همیشه منبع خوب فارسی در این خصوص پیدانکردم :/ واقعا جای تاسف داره، برایهمین تصمیمگرفتم این آموزش رو تهیهکنم تا همه دوستان و همراهان بتونن از اون استفادهکنند.طبق رایگیریای که قبلا داشتیم ۶۰درصد شرکتکنندهها توی نظرسنجی نظرشون این بود که یک سیستمعامل رو از اول باز نویسی کنیم! خوب جای خوشحالی داره که دوستان و همراهان عزیزمون اینقدر علاقهبه یادگیری از پایه و بیس دارند(بین خودمون باشه نظرخودمم همین گزینه بود).
RTOS چیست؟
زمانبندی اجرای تسکها در RTOS فکر میکنم اولین سوالی که لازمه جوابدادهبشه این سوال باشه که اصلا RTOS چیست و به چهدردی میخوره؟ همونطورکه حدسمیزنید و از اسمش هم پیداست OS مخفف operating system و معادلفارسی اون هم سیستمعامل است. امروزه بالغبر ۹۰درصد جمعیتزمین با یکیاز انواع سیستمعامل کار کردهاند. سیستمعامل درواقع یک نرمافزار است که منابع سختافزاری رو مدیریت میکند. یونیکس، لینوکس، بیاسدی، مک و ویندوز همگی سیستمعاملهایی هستند که امروزه برای سرورها و کامپیوترهای شخصی استفاده میشوند. اندروید، ios، سیمبین، بلکبری، میگو و… هم سیستمعاملهایی هستند که برروی گوشیهای همراه و دستگاههای قابلحمل نصبو راهاندازی میشوند. اما دنیای سیستمعاملها به همینجا ختم نمیشود. سیستمعامل در دستگاههایی وجود دارد که حتی فکرش را هم نمیشود کرد: مثلا ممکن است مسواکبرقی شما از یک سیستمعامل خاص استفادهکند! عموما سیستمعاملها در دودسته سیستمعاملهای بلادرنگ یا همان RTOS که مخفف Real Time operating system است و سیستمعاملهای با درنگ که Non RTOS خوانده میشوند. تمام سیستمعاملهایی که قبلا معرفیکردیم، سیستمعاملهای بادرنگ هستند. در ادامه بیشتر درخصوص RTOS توضیح میدهیم و بررسی میکنیم چرا وجود چنین سیستمعاملی لازم و حیاتی است. پس آموزش RTOS را از دست ندهید.
چرا RTOS تافته جدابافته است؟
ماموریت آپلو۱۱ فرضکنید آپلو۱۱ از سیستمعامل ویندوز استفاده میکرد، قطعا پای بشر به ماه نمیرسید یا قبلاز خروج از جو زمین موتورها خاموش میشد و سقوط میکرد یا از مدارماه خارج میشد و در کهکشان سرگردان میگشت. اما آیا فکرکردهاید که چرا این اتفاقات ناگوار نیفتاد؟ و بشر موفقشد که به کرهماه برود! خیلیساده است چون آپلو۱۱ از ویندوز استفاده نمیکرد ? حالاکه حرف آپلو۱۱ شد بد نیست بدونید که کامپیوتر آپلو۱۱ تنها ۲کیلوبایت Ram داشته و حدود ۳۰کیلوبایت Rom یعنی چیزی درحدود میکروکنترلر Atmega32 نه بیشتر! اما چرا سیستمعامل ویندوز باعث شکست پروژه میشد؟ دقیقا به ایندلیل که ویندوز یک سیستمعامل بلادرنگ نیست! RTOS با مدیریت زمان باعث میشود که پردازنده قادر باشد ورودیهای سیستم را بدون کوچکترین تاخیری پردازشکند و عکسالعمل مناسب رو در زمان مناسب از خود نشاندهد. دقیقا تنها برتری مهم RTOS نسبتبه دیگر سیستمعاملها همین قابلیت Real Timeبودن است.
درواقع Real Time Os تضمین میکند که یک کار در زمان معین برای یک زمان مشخص اجرا شود.
و همین مهمترین خصیصه یک سیستمعامل بلادرنگ است. درمقابل، سیستمعاملهای بادرنگ چنین تضمینی را ارائه نمیدهند!
چرا باید از RTOS استفادهکنیم؟
سیستمعامل بلادرنگ درمقابل سیستمعامل بادرنگ معمولا در پروژههای الکترونیکی و کنترلی لازماست که سیستم عملکرد مناسبی را نسبتبه ورودیها داشتهباشد یعنی کمترین تاخیر ممکن از لحظه اعمال یک ورودی تا گرفتن خروجی مناسب! مدیریتصحیح منابع یکیدیگر از دلایلی است که باید از سیستمعامل استفادهکنید، فکرکنید چطور میشود یک گوشی هوشمند بدون سیستمعامل باشد؟ یا در مثال صنعتی باید گفت چطور میشود که یک PLC از سیستمعامل استفادهنکند؟ تقریبا چنینچیزی غیرممکن است. سیستمعامل همچنین کمک میکند برنامه با ساختاربهتری نوشتهشود این خود بهتنهایی فرایند خطایابی را سادهتر میکند و به توسعه سریع برنامه کمک زیادی میکند همچنین قابلیت حمل کد را بالا میبرد و برای اجرای یک برنامه برروی سختافزار جدید تنها نیازخواهیدداشت که سیستمعامل را روی آن اجراکنید(البته این درصورتی است که برنامه را با ساختارمناسب نوشتهباشید)
وقتی از سیستمعامل استفاده میکنید بهسادگی میتوانید برنامههای بزرگ و پیچیده را به بخشهای کوچک و ساده تبدیلکنید و هر بخش را در یک Task اجراکنید که این فرایند باعث میشود قادر باشید برنامههای پیجیده را در کوتاهترین زمان ممکن پیادهسازی کنید.
در پستبعد آموزش RTOS قسمت دوم، قابلیتهای یک سیستمعامل بلادرنگ رو بررسی میکنیم و بررسی میکنیم که چه سیستمعاملهای بلادرنگی وجود دارند. پس با ما همراه باشید.
منبع: سیسوگ