عنوان مقاله


‫پروژه سیستم عامل های بلادرنگ

فهرست مطالب

فهرست ‫پروژه سیستم عامل های بلادرنگ

· فصل اول : زمانبندی بلادرنگ………..۷

….۸

مشخصات سیستم های بلادرنگ…………………..۹

زمانبندی بلادرنگ………………………………….۱۴

رویکردهای ایستای مبتنی بر جدول……………۱۶

رویکردهای ایستای مبتنی بر اولویت و با قبضه کردن…………….۱۶

رویکردهای پویا بر اساس برنامه ریزی………..۱۶

رویکردهای پویا با بهترین کوشش……………..۱۷

زمانبندی ایستا مبتنی بر جدول…………………۱۸

زمانبندی ایستای مبتنی بر اولویت و با قبضه کردن………۱۸

زمانبند مهلت زمانی……………….۱۸

زمانبندی Linux ……………26

زمانبندی Unix SVR4……….28

· فصل دوم : الگوریتم های برنامه ریزی و حمایت سیستم های اجرایی برای سیستم های بلادرنگ……….۳۱

خلاصه…………….۳۲

برنامه ریزی بلادرنگ………………۳۵

متریک های اجرا در سیستم های بلادرنگ..۳۶

الگوهای برنامه ریزی……………۳۸

الگوریتمهای برنامه ریزی برای این الگوها………….۴۰

برنامه ریزی ثابت Table –Driven ..41

برنامه ریزی priority driven preemptive ……..42

برنامه ریزی دینامیک …….۴۳

برنامه ریزی Best –Effort دینامیک..۴۴

موضوعات برنامه ریزی مهم……..۴۵

برنامه ریزی با محدودیتهای توان خطا….۴۵

برنامه ریزی با احیای منابع……۴۶

سیستم اجرایی بلادرنگ ……..۴۶

هسته های کوچک ، سریع و اختصاصی….۴۷

توسعه های زمان واقعی برای سیستم های اجرای بازرگانی…….۴۸

سیستم های اجرای ……۵۰

هسته MARS…………51

هسته SPRING…………52

هستهMARUTI ……..52

هسته ARTS ……….52

· فصل سوم : بررسی ارتباط میان اجزای یک سیستم جامع بلادرنگ….. ۵۵

خلاصه…….۵۶

شرح رابط میان RTOS و برنامه کاربردی….۵۸

شرح عملگرهای بهبودیافته…..۶۳

تشریح تجربی………۶۹

فصل چهارم : منابع……….۷۳
========

مقدمه:
مهمترین کاربرد سیستمهای بلادرنگ در رابطه با عملیات کنترل پردازش است . خاصیت مهم سیستم عاملهای بلادرنگ این است که هر فعل و انفعال با کامپیوتر بایستی یک پاسخ در مدت زمانی که از قبل تعیین شده است دریافت دارد . سیستم بایستی بتواند این زمان پاسخ را گارانتی بکند (عواقب زمان پاسخ بد در رابطه با سیستمی که یک هواپیما و یا یک کارخانه شیمیایی را کنترل میکند را میتوان براحتی تصور کرد ) . مسئله زمان پاسخ در عمل به این معناست که معمولاً نرم افزار بصورت خاص-منظور است و به کاربرد بخصوصی اختصاص یافته است . دستگاههای جنبی چنین سیستمهایی نیز به احتمال قوی دستگاههای بخصوصی هستند . مثلاً ممکن است که از وسایل حس کننده که با سیگنالهای آنالوگ عمل می کنند به جای ترمینالهای عادی استفاده شوندمشخصات سیستمهای عامل بلادرنگ:

سیستمهای عامل بلادرنگ را میتوان با داشتن ملزومات یگانه در پنج حوزه عمومی زیر مشخص نمود:

· قطعی بودن

· پاسخ دهی

· کنترل کاربر

· قابلیت اطمینان

· نرمش با خطا

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

یک معیار مفید برای قابلیت عملکرد قطعی سیستم عامل، حداکثر تأخیر از زمان ورود یک وقفه دستگاه با اولویت بالا ، تا زمان شروع خدمت است . در سیستم های عامل غیر بلا درنگ ، این تأخیر ممکن است در محدوده دهها تا صدها میلی ثانیه باشد ، در حالیکه در یک سیستم عامل بلادرنگ ممکن است این تأخیر حد بالایی از محدوده چند میکرو ثانیه تا یک میلی ثانیه داشته باشد .

یک مشخصه مربوط ولی مجزا ، پاسخ دهی است. قطعی بودن درباره این است که سیستم عامل پس از تصدیق ، چه مدت صرف خدمت دادن به وقفه می نماید . موارد پاسخ دهی عبارتند از :

۱٫ مقدار زمان لازم برای اداره اولیه وقفه و شروع به اجرای روال خدماتی وقفه . اگر برای اجرای روال خدماتی وقفه نیاز به تغییر متن باشد ، تأخیر بیش از حالتی است که می توانست روال خدماتی وقفه در متن فرایند جاری اجرا گردد .

۲٫ مقدار زمان لازم برای اجرای روال خدماتی وقفه. معمولاً این زمان بستگی به سخت افزار دارد.

۳٫ تأثیر تو در تو بودن وقفه ها . اگر یک روال خدماتی وقفه با ورود وقفه دیگری دچار وقفه شود، خدمت مربوط به آن دچار تأخیر میگردد.

قطعی بودن و پاسخ دهی به همراه هم ، زمان پاسخ به رخدادهای خارجی را تعیین می کنند. ویژگی زمان پاسخ در سیستم های بلادرنگ بسیار حساس است ، زیرا چنین سیستم هایی باید نیازهای زمانی اعمال شده توسط افراد ، دستگاهها و جریان داده ها در خارج از سیستم را رعایت کنند.

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

قابلیت اطمینان :
قابلیت اطمینان نوعاً در سیستم های بلادرنگ بسیار مهمتر از سیستم های عادی است .

یک خرابی گذرا در سیستم غیر بلادرنگ ممکن است تا تعمیر یا تعویض آن ، منجر به سطح خدمت دهی پایین تر گردد . ولی در سیستم بلادرنگی که در حال پاسخ دهی و کنترل رخدادها در زمان حقیقی است ، از دست رفتن یا کاهش کارآمدی یک پردازنده می تواند عواقب فاجعه آمیزی (از ضرر مادی گرفته تا آسیب دیدگی کلی دستگاهها یا حتی ازدست رفتن جانها )داشته باشد.

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

نرمش با خطا:

به مشخصه ای اشاره دارد که با خرابی سیستم ، تا حد ممکن قابلیتها و داده های آن حفظ شود . مثلاً یک سیستم سنتی UNIX ، وقتی خراب شدن داده ها در هسته سیستم عامل را تشخیص دهد ، یک پیام شکست بر روی میز فرمان متصدی ارائه کرده ، محتویات حافظه را برای تجزیه و تحلیل بعدی شکست ، بر روی دیسک تخلیه می کند و به اجرای سیستم پایان می دهد .

در مقابل، یک سیستم بلادرنگ سعی بر این دارد که یا اشکال را تصحیح کندیا در حالیکه به اجرا ادامه می دهد تأثیرات اشکال را حداقل سازد . نوعاً ، سیستم به کاربر یا فرایند کاربر اطلاع می دهد که باید عمل اشکال زدایی را آغاز کند و سپس به عملیات خود (احتمالاًدر سطح پایین تری از خدمت دهی ) ادامه می دهد. در صورتی که خاموش کردن سیستم لازم باشد ، برای حفظ سازگاری پرونده و داده ها نیز تلاش خواهد شد.

یکی از موارد مهم نرمش با خطا به عنوان پایداری شناخته می شود. یک سیستم بلادرنگ پایدار در مواردی که ارضای تمام مهلتهای زمانی وظیفه غیر ممکن باشد ، مهلتهای زمانی وظیفه های بسیار حساس و اولویت بالاتر را (حتی با عدم رعایت مهلتهای زمانی وظیفه های با حساسیت کمتر ) برآورده می کند.

برای برآوردن نیازهای ذکر شده ، سیستمهای بلادرنگ امروزی نوعاً شامل خصوصیات زیر هستند :

· تعویض سریع فرایند یا نخ

· اندازه کوچک

· قابلیت پاسخ سریع به وقفه های خارجی

· عملکرد چند وظیفه ای با ابزارهای ارتباط بین فرایندها ،از قبیل راهنماها ، علائم و رخدادها

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

· زمانبندی یا قبضه کردن بر اساس اولویت

· حداقل سازی فواصل زمانی که طی آن وقفه ها غیر فعال می شوند.

· اولیه هایی جهت تأخیر انداختن وظیفه ها برای یک مدت ثابت و برای توقف یا از سرگیری وظیفه ها

· هشدارها و علائم پایان مهلت زمانی خاص

قلب یک سیستم عامل بلادرنگ زمانبند کوتاه مدت وظیفه هاست برای طراحی چنین زمانبندی، عدالت و حداقل سازی متوسط زمان پاسخ مهم نیست. آنچه مهم است تکمیل (یا شروع) کلیه وظیفه های بلادرنگ سخت در مهلت زمانی آنها و همچنین تکمیل (یا شروع) حداکثر وظیفه های بلادرنگ نرم در مهلت زمانی آنهاست.

اغلب سیستمهای عامل بلادرنگ امروزی قادر نیستند مستقیماً با مهلتهای زمانی مقابله کنند. در عوض، به گو نه ای طراحی شده اندکه تا حد امکان به وظیفه های بلادرنگ پاسخگو باشند. به طوری که وقتی یک مهلت زمانی نزدیک می شود ، یک وظیفه به سرعت زمانبندی گردد. از این دیدگاه ،کاربردهای بلادرنگ، نوعاً نیاز به زمانهای پاسخ قطعی (در محدوده چندین میلی ثانیه تا زیر میلی ثانیه ) تحت شرایط بسیار متفاوت دارند. کاربردهای سریعتر(مثلاًدر شبیه ساز هواپیمای نظامی) محدودیتهایی در حدود۱۰ تا۱۰۰ میکرو ثانیه دارند.

شکل۱-۱ طیفی از موارد ممکن را نشان می دهد. در یک زمانبند با قبضه کردن که زمانبندی ساده نوبت گردشی را به کار می گیرد ، یک وظیفه بلادرنگ به صف آماده افزوده می شودتا برهه زمانی بعدی را بدست آورد(شکل ۱-۱ الف) . در این مورد معمولاً مدت زمانبندی برای کاربردهای بلادرنگ قابل قبول نیست . به طور جایگزین، در یک زمانبند بدون قبضه کردن ، می توانیم از یک راهکار زمانبندی اولویت دار استفاده کنیم و به وظیفه های بلادرنگ اولویت بالاتری دهیم. وظیفه بلادرنگی که آماده باشد، به محض اینکه فرایند جاری مسدود گردد یا به پایان برسد ،زمانبندی خواهد شد(شکل۱-۱ ب) . اگر یک وظیفه کند و با اولویت پایین در بخش بحرانی خود در حال اجرا باشد،این عمل می تواند به تأخیر چندین ثانیه ای منجر گردد. پس این رویداد هم نمی توندقابل قبول باشد. یک رویکرد امید بخش تر ترکیب اولویتها و وقفه های بر پایه ساعت است.قبضه کردنها در فواصل منظم رخ می دهند،وقتی یک نقطه قبضه کردن می رسد ، اگر وظیفه با اولویت تری در انتظار باشدوظیفه جاری قبضه می گردد، حتی اگر شامل وظیفه هایی باشد که بخشی از هسته سیستم عامل هستند. چنین تأخیری می تواند در حد چندین میلی ثانیه باشد(شکل۱-۱ ج). اگرچه رویکرد آخر می تواند برای برخی از کاربردهای بلادرنگ کافی باشد، ولی برای کاربردهایی که انتظارات بیشتری دارند کافی نخواهد بود و در این موارد رویکرد انتخاب شده گاهی به نام قبضه کردن فوری خوانده می شود.

در این رویکرد، سیستم عامل تقریباً بلافاصله به وقفه پاسخ می دهد، مگر اینکه سیستم در بخش قفل شده بحرانی قرار داشته باشد. به این ترتیب تأخیر زمانی برای یک وظیفه بلادرنگ می تواند به ۱۰۰ میکروثانیه یا کمتر کاهش یابد.

======