X بستن تبلیغات
X بستن تبلیغات
header
متن مورد نظر

سیستم عامل های بلادرنگ یا بی درنگ real time system

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

مقدمه

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

چکیده

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

مقدمه

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

سیستمهای بلادرنگ

“به سیستمی بلادرنگ گفته می شود که صحت درستی یک فرایند تنها وابسته به صحت منطقی نباشد، بلکه به زمانی که در آن اجرا می شود نیز وابسته باشد.”

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

نیاز نرم افزارهای بلادرنگ معمولاَ آدرس دهی در فضای سیستم است و زبان های برنامه نویسی، هم زمانی را که چارچوب نرم افزارهای بلادرنگ را می سازد، فراهم می کند.

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

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

از مثال های ساده ای از این نوع سیستم می توان به موارد زیر اشاره کرد:

·  سیستم کنترل دیجیتال

·  سیستم فرمان و کنترل

·  پردازش سیگنال

·  سیستم ارتباطات راه دور

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

شبکه بلادرنگ

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

پروتکل انتقال بلادرنگ  (RTP) پروتکلی بر مبنای  UDP است ودر کاربردهای صوتی و تصویری استفاده می شود که در این حالت بسته های گم شده تلرانس بالا و تاخیرهای متغیر تلرانس پایین دارند. RTP همراه با  RTCP هم دستورات چند پخشی ، کنترل پیام ها را که خود کیفیت فیدبک داده ها را حمل می کند، انتقال می دهد.

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

این سیستم ها هر روزه سرویس های متعدد و مفیدی را در اختیار ما قرار میدهند.به عنوان مثال:

·  در هنگام رانندگی ،این سیستم ها کنترل موتور و ترمز و همچنین کنترل چراغ های راهنمایی رانندگی منظم را بعهده دارند

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

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

·  در هنگام سلامت کامل، این سیستم ها ما را به وسیله بازی های الکتریکی و سواری های مفرح سرگرم میکنند.

سیستم های بلادرنگ سخت ونرم

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

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

درک قیود زمانی مخصوصاَ توابع زمان/استفاده و دو فاکتوربه موقع بودن باعث شده است که بتوان تعریف دقیق تر و در عین حال عمومی تری از سیستم های بلادرنگ سخت و نرم ارائه داد.

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

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

سیستم های زمان بندی جدید مانند زمان بند قسمت بندی سازگار به مدیریت سیستم های بزرگ با ترکیبی از سیستم های بلادرنگ و غیربلادرنگ کمک می کند.

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

·  بهینگی یک حالت باینری است که به تمام hard deadline ها در حالت بهینه و در غیر این صورت زیر بهینه برسد.

·  احتمال حالت بهینه قابل محاسبه باشد.

این ها تنها فاکتورهای زمان ترتیبی در بلادرنگ های سخت هستند و سیستم بلادرنگ سخت تنها همین فاکتورهای به موقع بودن را در معیارهای ترتیبی خود دارد. در فاکتورهای زمان ترتیبی فضای دو بعدی بهینگی و امکان پیشگویی بهینگی، بلادرنگ سخت در گوشه ی “ماکزیمم بهینگی / ماکزیمم امکان پیشگویی” قرار دارد. ؛ دو فاکتور در تقابل با یکدیگر نیستند. این تعریف مطابق است با تعریف متداول پژوهشگران از سیستمهای بلادرنگ سخت که یک بلادرنگ سخت سیستمی است که در آن تمام مهلت زمانی های سخت آن رسیده می شود.لکن افراد عملگرا ( کاربران،فروشندگان ) از سیستم های بلادرنگ بلادرنگ سخت و یا بلادرنگ نرم تعریفی عامیانه دارند و این اصطلاحات را به طور ناقص و غیر علمی بکار می برند.

بلادرنگ سختها عموما مانند آنچه در ادامه میآید ناشی میشوند :

–     تمام موجودیت های اجرا که مهلت زمانی های سخت دارند برای تشکیل دادن سیستم بلادرنگ سخت معمولاَ یک زیرسیستم جهت تعامل با دستگاه ها با یک بلادرنگ سخت کمکی یا معمولا سیستم های غیر بلادرنگ کمکی جهت تعامل با انسانها و پایگاه داده ها دور هم جمع می شوند.

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

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

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

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

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

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

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

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

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

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

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

مدل های وظیفه در سیستمهای بلادرنگ

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

·  وظیفه های بلادرنگ دورهای

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

برای ساده سازی فرض کنید که یک وظیفه بلادرنگ دوره ای درخواست ثابتی دارد( به عنوان مثال باید در هر میلی ثانیه در نشان دهندهی T که (C , T) پردازشگر اجرا را شروع کند). این وظیفه ها را می توانیم به عنوان وظیفه های چند ارزشی توصیف کنیم بیانگر زمان سرویس که بیانگر مقدار زمان که کدام C دوره ی مورد نظر که مطابق با اختلاف زمانی بین دو درخواست موقتی است و وظیفه باید قبل از مهلت زمانی اجرا شود و کدام یک مفروض است که در شروع دوره ی درخواست بعدی اتفاق بیفتد.

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

. ((C=2ms, T=5ms

·  وظیفه های بلادرنگ نامنظم

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

نمونه های وظیفه های غیر تناوبی در سیستم های بلادرنگ با رویداد هدایت شده مانند بیرون پرتاب شدن صندلی خلبان هنگامی که فرمان به سیستم ناوبری جت داده می شود است. بسیاری از درخواست های عدم حساسیت زمانی همچنین در سیستم های توزیع شده نمایان می شوند که مستلزم رسانه ی پیوسته است.(مانندend-host routing over a logical overlay)

زمانبندی در سیستمهای بلادرنگ

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

لازم به ذکر در اکثر مواقع هیچ ارتباط واضحی بین مسئله ی زمان بندی تئوری و طراحی عملی سیستم های بلادرنگ وجود ندارد.

قبل از بررسی ۲ مدل زمان بندی مرسومRM  و EDF بهتر دیدیم تا نیازهای مرسوم این نوع از سیستم ها و تعریف های اولیه زمان بندی را به تفصیل توضیح دهیم.

شناسایی نیازها

در حالت کلی می توان نیازهای سیستم های بلادرنگ را به سه دسته کلی دسته بندی کرد :

  1. نیازهای رفتاری

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

  1. نیازهای زمانی موقتی

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

  1. نیاز های هزینه ای

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

استنتاج قیود

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

  1. مدل وظیفه

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

·  نماینده ی وظیفه

·  Si زمان شروع فعالیت

·  Ei زمان اجرای بدترین حالت

·  Ri زمان واگذاری

·   Diمهلت زمانی

·   Piدوره

·   Biزمان بلاک کردن

·   Niگره های اجرایی

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

  1. انحصاری کردن

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

  1. قیود زمان بندی مطلق

این گونه محدودیت های زمانی به طور مستقیم وابسته به رفتار زمانی هستند .

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

Ei = Ei;N : fN = Nig

مهلت زمانی مطابق با حساسیت های مورد نیاز توسط سیستم بیان می شود. معمولاَ مهلت زمانی ها به طور انحصاری برای هر وظیفه نیستند و به صورت زنجیرهای هستند. یک روش مرسوم تقسیم کردن مهلت زمانی های متناوب به چند مهلت زمانی کوچکتر است که برای هر وظیفه تعیین می شوند . این عمل ممکن است باعث اعمال فشاری غیر ضروری به مجموعه وظیفه ها شود. برای جلوگیری از این امر، مهلت زمانی های پیوسته را یک مهلت زمانی برای همه ی وظیفه ها در نظر می گیریم D را به عنوان مهلت زمانی های متناوب در نظر می گیریم و TD به عنوان تمام ,وظیفه هایی که توسط D منحصر می شوند. در نتیجه محدودیت زمانی به این صورت تعریف می شود۸i 2 TDjDi = D :

برای اطمینان یافتن از این که هیچ محدوده زمانی ای جا نمانده است ، قیدی که در ادامه میآید نیز لازم است :

Di _ Si + Bi + Ei

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

Si _ Ri .

 Periodsبیان می کند که چند بار یک وظیفه باید اجرا شود. این مربوط می شود به این که هر سیستم برای انجام فعل و انفعال با محیط چقدر باید دقیق باشد Periods ممکن است مهلت زمانی هایی را در انحصار قرار دهد. از آن جا که مهلت زمانی های یک وظیفه اغلب کمتر از periods آن است .(Di _ Pi) حتی اگر آن درست نباشد k (Di > Pi)  امین فراخوانی وظیفه باید قبل ازفراخوانی k+1 ام کامل شود. یک راه بکارگیری زمان بندی دورهای برای وظیفه ، پیدا کردن کوچکترین مضرب ]مشترک[ تمام پریودهاست و پس از آن زمان بندی کردن هر فراخوانی به عنوان یک وظیفه واحد(انحصاری)سناریوهای مختلف این قید ها را تحمیل می کند:

Ri;k = (k − ۱) _ Pi : fk > 0;Di _ Pig

Ri;k = (k − ۱) _ Di : fk > 0;Di > Pig

جدایی قیدها فاصله ی مقادیر را بیان می کنند که پریود یک وظیفه باید به آن تعلق داشته باشد. در تقابل با deadline ها پریودها ممکن است توسط ماکزیمم یا/و مینیمم ارزش دوره محدود شوند که که ازحاصل شدن بهره برداری مورد نیاز اطمینان حاصل شود ۱ و u  را به ترتیب مقادیر مینیمم و ماکزیمم -ها قرار می دهیم. در نتیجه این قید به این صورت تعریف می شود:

l _ Pi_ u

  1. قیود زمان بندی وابسته

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

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

Si + Bi + Ei + c _ Sj

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

Si + Bi + Ei + c _ Sj

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

Si + Bi + Ei _ Sj _ Si + Bi + Ei + c

ارتباط ) همبستگی ) قیود ارتباط به قیدهای تازگی وابست هاند که بیا نگر بیشترین اختلاف بین زما ن های پایان دو وظیفه همسو i  وj  هستند. و هنگامی ظاهر می شوند که یک وظیفه سوم از نتایج حاصل از دو وظیفه دیگراستفاده می کند و انحراف زمانی بیش از اندازه بزرگ بین پارامترها باعث ایجاد خطا در محاسبات وظیفه می شود. اگر ارتباط را با  c نمایش دهیم ، قید به صورت زیر تعریف می شود.

j(Si + Bi + Ei) − (Sj + Bj + Ej)j _ c

هم آهنگی  قیود هماهنگی وابسته به پریودهای دو وظیفه مرتبط است. مطلوب است که دوره مربوط به وظیفه مصرف کننده i  دقیقاَ بر دوره مربوط به وظیفه تولید کننده j بخش پذیر باشد. اگر این شرایط برقرار باشد، برای مصرف کننده بسیارساده تر است که دنباله پیغام های دریافتی را حفظ کند چون همیشه با فاصله مشابهی می رسند. این قید به صورت زیر بیان می گردد:

Pi = c _ Pj: fc > 0g

  1. منابع

برای رسیدن به توانایی عملیات، وظیفه ها ممکن است نیازمند استفاده از اجزای سخت افزاری خاصی باشند. کارایی یا بهره وری اجزای موجود، به اینکه سخت افزار چقدر می تواند گران باشد، محدود می شود. قیود موقعیتی روی تخصیص وظیفه ها به نودهای مختلف تمرکز می کنند. یک وظیفه ممکن است نیازمند یک واحد خاص برای اجرا شدن خود باشد که در تمام نودها موجود نباشد. ما این را به سادگی با حذف نودهای غیر ممکن از مجموعه نودهای وظیفه بیان می کنیم. این یک قید سخت کد است اگر N را نودغیرممکن در نظر بگیریم به این صورت بیان می شود: .Ni 6= N

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

 Ni = Nj

قیود موقعـیـتی اغـلب توصــیه های اجرایی هستند که توسط طراح مطرح می شوند و کمتر به طور متناوب، داده و تصریح می شوند.

ارتباط میان وظیفه ها نیازمند رسانه ارتباطی است. زمان فرستادن پیغام بستگی به کارایی پیشنهادی توسط کانال ارتباطی دارد. پیغام ها بین وظیفه ها فرستاده می شوند که باید در شبکـه ی ارتباطی ای که بر زمان بـندی وظیفه ها اثـر می گذارد تنظیم زمانی شوند. زمان بندی پیغام ها non preemptive است. ساختارهای قیدی از پیش تعریف شده ای برای این نوع زمان بندی ها وجود دارد مانند قیدهای پشت سر هم.

  1. ORing

قیود o ring آنچنان مرسوم نیستند اما می توانند برای بیان عملیات متناوب مورد استفاده قرار گیرند. به عنوان مثال، وظیفه i توسط وظیفه دیگرj حتما نباید قبضه شود (رابطه پیشگیری)، به این معنی است که وظیفه i باید قبل یا بعد از وظیفه j اجرا شود. هرگونه قید می تواند ored  باشد. برای c قید به راحتی تعریف می شود:

 constraint1 _ constraint2 _::: _ constraintc

تخصیص حافظه و زمان بندی

بسیاری از الگوریتم های زمان بندی منتشر شده بلادرنگ نوع hard-coded است و به نسبت محدودبت ها، ویژگی های وظیفه ومنابع، می توانند به کار روند. هرچند در یک متد خاص در اغلب شرایط، تجاوز به عمل کردهای عمومی ساختار را برای داشتن خصوصیات جدید پیچیده می کند. به همین علت است که روند برنامه نویسی قیود را انتخاب کردیم. ابزاری که برای آزمایش ها انتخاب می کنیم SICStus Prolog است و حل کننده ی قید همراه آن برای دامن ههای محدود نیازمندی های یک سیستم بلادرنگ شناخته شده می تواند با استفاده از قیود اولیه که با قیود پیچیده ترکیب می شوند بیان شود. مزیت این عمومیت این است که معرفی قیود پیچیده جدید تا زمانی که از ترکیب قیود ساده ایجاد شوند بسیار ساده خواهد بود. ترجمه این قیدها به کد بسیار صریح و راحت است. یک خصوصیت جالب امکان راهنمایی جستوجو برای زمان بندی عملی توسط تغییر دادن پارامترهای جستوجو است. با استفاده از پارامترهای صحیح زمان جستوجو می تواند به اندازه قابل توجهی کاهش باید. امیدواریم که امکان پذیر باشد که به صورت خودکارمشخص شود که کدام کشف کننده (heuristic) مناسب ترین برای یک نمونه مثال خاص است.

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

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

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

نمونه های اولیه و بزرگ این نوع سیستم عامل ها که اصطلاحاَ “برنامه های آنترلی ” نامیده می شوند،برای سیستم خطوط هوایی Sabre توسط IBM و خطوط هوایی آمریکا طراحی و توسعه یافت.

فلسفه طراحی این نوع سیستم عامل

دو نوع طراحی پایهای در این زمینه وجود دارد:

  • طراحی بر اساس اولویت – در این طراحی تنها زمانی وظیفه ای تعویض می شود که وظیفه ای با اولویت بالاتردرخواست دهد،به این نوع طراحی را اولویت اولیه نیز می نامند.
  • طراحی اشتراک زمانی – در این طراحی وظیفه بر اساس وقفه ساعت تعویض میشود که در رویدادهاRound Robin نامیده می شود.

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

در طراحی CPU های پیشین cycleهای زیادی برای تعویض )تغییر) بین وظایف مختلف نیاز بود که در این cycleها CPU قادر به انجام کار خاصی نبود. لذا سیستم عامل های پیشین با کاهش تعداد تعویض های وظایف سعی در کم کردن زمان تلف شده درCPUها داشتند.

CPUهای جدیدتر زمان بسیار کمتری را برای تعویض بین وظایف صرف می کنند. در بهترین حالت می توان به پردازنده های پرسرعت اشاره داشت که برای تعویض بین وظایف CYCLEای را صرف نمی کند. سیستم عامل های بلادرنگ تقربیاً همگی سیستم اشتراک زمانی را با سیستم الویت زمانی پیاده سازی کرده اند.

مشخصات سیستم عامل های بلادرنگ

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

  1. قطعی بودن
  2. پاسخدهی
  3. کنترل کاربر
  4. قابلیت اطمینان
  5. نرمش با خطا

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

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

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

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

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

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

نتیجه گیری

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

یک نظر

  1. solmaz گفته است :
    مهر ۱۱ام, ۱۳۹۲

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

ارسال نظر