گروه فنی مهندسی آرکام

پروژه های دانشجویی ، آموزش ، مشاوره ، فروش آثار

گروه فنی مهندسی آرکام

پروژه های دانشجویی ، آموزش ، مشاوره ، فروش آثار

گروه فنی مهندسی آرکام

گرداننده و نگارنده : محمد نوری

البرز ، کرج ، گلشهر

09125623558
Nouri.Iut@Gmail.Com

جهت حمایت از این وبلاگ، ما را به یک فنجان چای داغ مهمان کنید.
6273-8111-1003-9762

دنبال کنندگان ۳ نفر
این وبلاگ را دنبال کنید

تبلیغات

آخرین نظرات

پیوندها

در اینجا من پس از ارائه یک تعریف کلی از سیستم های بلادرنگ و کاربردهایشان، به بررسی الزام بکارگیری سیستم عامل بلادرنگ در چنین سیستم هایی می پردازم. سپس ضمن بیان الزامات سیستم های عامل بلادرنگ و ویژگی های عمومی آنها، به بررسی پیش نیازهای یک سیستم عامل بلادرنگ به منظور تطابق با استاندارد POSIX 1003.1b پرداخته، و در پایان با معرفی چند سیستم عامل بلادرنگ رایج  و ذکر چند نمونه از کاربرد آنها، به صحبتم خاتمه می دهم.

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

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

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

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

به عنوان نمونه دیگری از یک سیستم بلادرنگ می توان سیستم مانیتورینگ بخشI.C.U  بیمارستان را نام برد.

یک تصور اشتباهی که درباره یک سیستم بلادرنگ وجود دارد این است که فکر می کنیم یک سیستم بلادرنگ، سیستمی با سرعت بالا است. در صورتیکه یک سیستم بلادرنگ الزماً یک سیستم با سرعت بالا نیست. یک سیستم می‌تواند خیلی کُند کار کند، ولی در پاسخ دادن به رخدادها سرعت مناسبی داشته باشد.

دوباره متذکر می شوم که یک سیستم بلادرنگ باید مهلت زمانی وظایف را رعایت کند. این مهلت زمانی ممکن است 1 نانو ثانیه تا ساعت ها و روزها باشد.

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

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

با توجه به کاربردهای سیستم های بلادرنگ و درجه حساسیت و فوریت واکنش به رخدادها خارجی، این سیستم ها به سه دسته­ی سیستم بلادرنگ سخت،  سیستم بلادرنگ میان و سیستم بلادرنگ نرم تقسیم می‌شوند.

سیستم بلادرنگ سخت، سیستمی که برآورده نشدن محدودیت های زمانی در آن، باعث خراب شدن سیستم می‌شود. در چنین سیستمی ابداً نباید هیچ رخدادی از دست برود. مانند سیستم های کنترل شرایط بحرانی در نیروگاه های هسته ای 

در این سیستم‌ های بلادرنگ میان نیز باید قبل از پایان یافتن مهلت زمانی به رخدادهای سیستم، پاسخ داده شود. پاسخ بعد از مهلت زمانی، غیر ممکن یا بی‌فایده است. ولی پاسخ ندادن باعث خرابی های جدی نمی‌شود. مانند سیستم های پیش بینی وضع آب و هوا

 

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

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

به عنوان مثال، یک سیستم کنترل ماشین لباسشویی یا تلفن عمومی نیازی به سیستم عامل ندارد، اما یک خودپرداز به خاطر نیاز به ارتباط TCP/IP نیازمند استفاده از سیستم عامل است.

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

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

به عبارتی دیگر، نحوه برنامه‌نویسی، زبان برنامه‌نویسی، سطح برنامه‌نویسی، نحوه مدیریت پورت های I/O  و خیلی مسائل دیگر در عملکرد سیستم تاثیر دارند.

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

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

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

کنترل کاربر: در یک سیستم بلادرنگ لازم است به کاربر اجازه کنترل دقیق بر نحوه عمکرد سیستم داده شود. در یک سیستم بلادرنگ لازم است کاربر بتواند اولویت های وظایف را تعیین کند.

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

نرمش با خطا: یک سیستم عامل بلادرنگ باید قادر باشد در صورت خرابی سیستم، تا حد ممکن قابلیت ها و داده هایش را حفظ نماید؛ همچنین در مواردی که ارضای تمام مهلت های زمانی غیر ممکن است، مهلت های زمانی وظیفه های بسیار حساس و با الویت بالاتر را برآورده نماید.

استاندارد POSIX 1003.1b، ظوابط پذیرفته شده ای برای سازگاری سرویس های RTOSها فراهم می آورد و به برنامه نویسان برنامه های کاربردی امکان نوشتن برنامه های قابل انتقال و اجرا روی انواع سیستم های عامل مبننی بر Unix را می دهد.

به منظور تطابق وسازگاری با استانداردPOSIX ، سیستم عامل باید دارای ویژگی هایی به این شرح باشد:

چند وظیفه ای و قابلیت قبضه کردن:

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

 

یک RTOS همچنین به منظور داشتن سطوح الویت متعدد، باید دارای سطوح متعدد وقفه ها باشد.

تشخیص مهلت زمانی بطور پویا:

به منظور دست یافتن به قابلیت قبضه کردن، RTOS باید بتواند به صورت پویا، وظیفه با زود ترین مهلت زمانی را تشخیص دهد.

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

همگام سازی قابل پیش بینی:

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

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

یکی از روش های حفظ یکپارچگی داده ها، قابلیت قفل کردن منابع می باشد.

سطوح الویت کافی:

در موقع استفاده از زمانبندی وظیفه الویت دار، RTOS باید برای پیاده سازی موثر دارای تعداد سطوح الویت کافی باشد.

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

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

تاخیر های از پیش تعریف شده:

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

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

Windows CE

نسخه ای از سیستم عامل Windows شرکت Microsoft، برای کامپیوتر های کوچک و سیستم های جاسازی شده 32 بیتی سیار می باشد.

واضح است که Windows CE دارای هسته ای متفاوت از Windowsهای رومیزی می باشد.

این سیستم عامل روی پردازنده های Intel x86 پشتیبانی می شود و سازگار با پردازنده های MIPS، ARM و Hitachi SuperH می باشد.

این سیستم عامل دارای 256 سطح الویت است.

هسته Windows CE قادر است در فضای حافظه کمتر از 1 مگابایت اجرا شود. بنابراین در دستگاه هایی که فاقد فضای ذخیره سازی هستند و همچنین به کاربر امکان هیچگونه توسعه ای را نمی دهد، در ROM دستگاه ذخیره می شود.

VxWorks

سیستم عامل بلادرنگی بر پایه Unix است که توسط شرکت Wind River Systems ایجاد و به فروش می رسد و همانند بسیاری از سیستم های عامل بلادرنگ دارای یک هسته چند وظیفه ای با قابلیت قبضه کردن و پاسخگویی سریع وقفه، امکانات ارتباطات بین فرایندی و همگام سازی، و یک سیستم پرونده می باشد.

VxWorks گسترده ترین استفاده به عنوان یک RTOS در صنعت سیستم های جاسازی شده را داشته و دارای یک محیط گرافیکی پیشرفته است.

این سیستم عامل دارای بیش از 1800 واسط برنامه سازی کاربردی است و روی سخت افزاری رایج قابل استفاده می باشد.

خصایص مشخص اصلی VxWorks شامل مدیریت حافظه منطبق با استاندارد POSIX، امکانات چند پردازنده ای، پوسته ای برای واسط کاربر، قابلیت اشکال زدائی در سطح نمادین و منبع، و نظارت بر عملکرد سیستمی باشد.

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

برخی سیستم های مخابراتی ساخت ایران از سیستم عامل‌ VxWorks استفاده می‌کنند.

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

LynxOS

سیستم عامل بلادرنگی بر پایه Unix که توسط شرکت LynuxWorks ارائه می شود.

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

این سیستم عامل اساساً در سیستم های جاسازی شده بلادرنگ، در کاربرد هایی مانند ارتباطات فضایى و فضانوردی، سیستم های نظامی، کنترل فرایند تولید و مخابرات استفاده می شود.

این سیستم عامل دارای 512 سطح الویت می باشد.

VRTX

سیستم عامل بلادرنگ و چندوظیفه ای است که در حال حاضر توسط شرکت Mentor Graphics پشتیبانی و ارائه می شود و برای سیستم های جاسازی شده معمولی و سیستم های با معماری یک سیستم کامل روی یک تراشه (SoC) مناسب است.

VRTX بر روی سخت افزاری ARM، MIPS، PowerPC و دیگر میکروپروسسورها با معماری RISC قابل اجرا می باشد.

این سیستم عامل در تلسکوپ فضایی هابل در حال استفاده است و رقیب سرسختی برای سیستم عامل VxWorks شناخته می شود.

QNX

سیستم عامل بلادرنگِ تجاری بر پایه Unix و منطبق با استاندارد POSIX می باشد که اصولاً در بازار سیستم های جاسازی شده مورد استفاده قرار می گیرد.

QNX به عنوان یک سیستم عامل مبنتی بر معماری ریز هسته، همانند اغلب سیستم عامل ها در شکل تعدادی وظایف کوچک (خدمتگذارها) به اجرا در می آید.

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

 

این سیستم عامل بسیار کوچک است بر روی یک دیسک جا می گیرد و به عنوان سیستمی بسیار سریع و کاملاً منصف مطرح شده است.

QNX (2001) تقریباً بر روی اکثر پردازنده های جدیدی که در بازار سیستم های جاسازی شده مورد استفاده قرار می گیرد، قابل اجرا است.

این سیستم عامل دارای نسخه غیر تجاری به نام QNX NC بوده است که از سال 2003 توسعه و پشتیبانی از آن متوقف شده است.

RTLinux

سیستم عامل بلادرنگ RTLinux به عنوان توسعه ای از Linux، در ابتدا توسط V. Yodaiken ایجاد شد.

این سیستم عامل در دو نسخه رایگان (RTLinux Free) و تجاری (RTLinux Pro) موجود است.

RTLinux از طریق کنترل وقفه بین سخت افزار و سیستم عامل از عملیات بلادرنگ سخت پشتیبانی می کند.

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

سیستم عامل (Linux) به عنوان یک نخ با الویت پایین از هسته RTLinux اجرا می شود.

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

eCos

سیستم عامل بلادرنگ eCos برای سیستم های جاسازی شده و کاربردهایی که تنها به یک فرایند با چند نخ نیاز دارند، استفاده می شود.

این سیستم عامل رایگان و کدهای آن قابل دسترسی است.

eCos به زبان برنامه نویسی C نوشته شده و لایه ها و واسط های برنامه سازی کاربردی آن مطابق با استاندارد های POSIX و µITRON می باشد.

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

این سیستم عامل برای استفاده در دستگاه هایی با فضای حافظه 10 تا 100 کیلوبایت طراحی شده است و بر روی طیف وسیعی از سخت افزاری شامل ARM، Motorola 68000، MIPS، PowerPC و غیره قابل اجرا می باشد.

برخی سیستم های مخابراتی ساخت ایران از این سیستم عامل‌ استفاده می‌کنند.

در حال حاضر این سیستم عامل توسط شرکت eCos Centric پشتیبانی می‌شود.

پایان

نظرات  (۲)

Jaleb boood
ممنون.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی