
ی تعبیهشده در سیستمهای سیار و قابلحمل مانند تلفنهای همراه باعث شدهاست مصرف انرژی به عنوان یکی از مهمترین محدودیتهای طراحی سیستمهای تعبیهشده مطرح شود. بسیاری از این سیستمها انرژی موردنیاز خود را از طریق باطری تامین میکنند. بهعلاوه در بسیاری از موارد تعویض و یا شارژ باطری در محیط عملیاتی سیستمهای تعبیهشده با دشواری همراه است. در این گونه سیستمها استفاده از روشهای کاهش مصرف انرژی برای بالا بردن طول عمر باطری ضروری است ]4[ . یک حقیقت مهم در اینجا این است که پیشرفت در تکنولوژی باطریها بسیار آهستهتر از پیشرفت در سرعت انجام محاسبات و پردازش و در نتیجه آن، مصرف انرژی بیشتر در پردازندهها بودهاست .با توجه به این دلایل و برای بهبود کارایی سیستمهای تعبیهشده مدرن، سیستم احتیاج دارد تا توان محاسباتی بیشتری را فراهم کند و در عین حال که کارایی حفظ شده، توان مصرفی را هم کاهش بدهد. یکی از راههای ممکن برای کاهش مصرف انرژی و در عین حال افزایش بهروری، اختصاص دادن موثر وظایف بین هستههای پردازنده میباشد، که در این پژوهش، یکی از مهمترین دغدغههای ما میباشد.
2-2 سيستم های تعبيهشده بیدرنگ
امروزه بیشتر سیستمهای تعبیهشده دارای ویژگی بیدرنگ بودن هستند.در این گونه سیستمها وظیفههای مربوط به درخواستها باید در کمتر از زمان مشخصشده اجرا شوند. یک سیستم بیدرنگ را میتوان به این صورت تعریف کرد : ” به سیستمی بیدرنگ گفته میشود که صحت درستی یک فرایند تنها وابسته به صحت منطقی آن نباشد، بلکه به زمانی که در آن اجرا میشود نیز وابسته باشد.”
از جمله کاربردهای این نوع سیستمها میتوان به سیستمهای حساس پزشکی، سیستمهای نظامی، کنترل سیستمهای نیروگاه هستهای،سیستم فرمان و کنترل، پردازش سیگنال، سیستم ارتباطات راه دور، سیستمهای کنترل دیجیتال، پردازش پروتکلهای شبکه و … اشاره کرد. سیستم ضدقفل28 در ترمز ماشین یکی دیگر از نمونه های سادهای از سیستمهای بیدرنگ است که محدودیت زمانی در این سیستم زمان کوتاهی است که باید ترمز گرفتهشود تا از قفلشدن چرخها جلوگیری شود. محاسبات بیدرنگ اگر قبل از محدودیت زمانی، جایی که این محدودیت مربوط به یک رویداد است، کامل نشدهباشد، با شکست مواجه میشود. در این گونه سیستمها باید پاسخ درخواستها حتما در زمان مشخصی ارسال گردد و در غیراین صورت سیستم دچار اختلال شده و حتی در کاربردهای حساس میتواند منجر به یک فاجعه گردد. از اینرو نوع پیادهسازی، کنترل زمان پاسخگویی، سربار و نحوه الگوریتمهای پیادهسازی شده و همچنین بستر سیستمعامل و سختافزار حائز اهمیت فراوانی است. به طور کلی سیستمهای بیدرنگ و سیستمهای توزیع زمانی29 دو پیادهسازی کاملا متفاوت داشته و در نوع عملکرد کاملا متفاوت عمل میکنند، زیرا به علت ماهیت پاسخدهی بیدرنگ، حافظه اشتراکی و اشتراک زمانی عملا کاربرد نخواهد داشت. به همین دلیل است که در سیستمهای بیدرنگ معمولا اثری از سیستمعاملهای نسل جدید و مدرن به چشم نمیخورد و در اکثر آنها از رسانههای ذخیرهسازی مانند دیسک سخت نیز خبری نیست. در واقع سیستمهای بیدرنگ پاسخی برای یک سری از ورودیهای خارجی هستند که بهصورت غیرقابل پیشبینی وارد سیستم میشوند، سپس این ورودیها بهوسیله سیستم بیدرنگ پردازش شده و تصمیمات مناسب در زمان مناسب اتخاذ میشوند. همچنین خروجی لازم برای کنترل دستگاههای جانبی متصل به آنها نیز تولید میشود و در صورتی که سرویسها و منابع خواسته شده توسط وظیفه، قبل از اتمام آن، در اختیارش قرارنگیرد و وظیفه نتواند در زمان مناسب و تعیینشده خاتمه یابد، وظیفه موردنظر از اعتبار ساقط میشود. در پردازشهای بیدرنگ، هر وظیفه یک سررسید دارد که این بدین معنی است که برای اینکه سیستم به درستی کار کند میبایست اجرای هر وظیفه تا قبل از فرارسیدن سررسید مربوطهاش به اتمام برسد. بر همین اساس تقسیمبندی سیستمهای بیدرنگ انجام میشود. در جدول 2-1 خلاصهای از مشخصههای مختلف یک سیستم تعبیهشده بیدرنگ و زیرمشخصههای آن را مشاهده میکنید.
جدول 1جدول 2-1 خلاصهای از مشخصههای یک سیستم تعبیهشده بیدرنگ
جدول 2-1 خلاصهای از مشخصههای یک سیستم تعبیهشده بیدرنگ
مشخصهها
زیرمشخصهها
خواص بیدرنگ بودن
زمان پاسخ یا تاخیر
زمان اجرای وظیفه
بدترین حالت زمان اجرا30
سررسید
قابلیت اعتماد
قابلیت اطمینان
در دسترسبودن
بیعیبی
محرمانگی
ایمنی
منابع مصرفی
توان مصرفی
توان محاسباتی
حافظه مصرفی
زمان اجرای پردازنده
مشخصه طول عمر
نگهداشتپذیری
2-2-1 انواع سيستم های بیدرنگ از نظر محدوديت زمانی
سیستمهای بیدرنگ از نظر محدودیت زمانی به سه دسته تقسیم میشوند:
سیستمهای بیدرنگ سخت31
سیستمهای بیدرنگ نرم32
سیستم های بیدرنگ ثابت33
در سیستمهای بیدرنگ سخت، کار انجام شده توسط سیستم، بایستی دقیقا به موقع انجام شود و هیچ گونه تاخیری قابل قبول نیست در غیر این صورت سبب ناتوانی سیستم میشود. در سیستمهای تعبیهشده، سیستم بیدرنگ سخت در سطح پایینی از سخت افزار فیزیکی عمل می کند. برای مثال سیستم کنترل موتور ماشین یک سیستم بیدرنگ سخت است چون ممکن است سیگنال های تاخیر به موتور آسیب برسانند. مثال دیگر از سیستم بیدرنگ سخت، سیستمهای تعبیهشده در دستگاههای پزشکی مثل دستگاه تنظیم کننده ضربان قلب وپردازشگر های کنترل صنعتی میباشد. سیستم بیدرنگ سخت برای رویدادهایی که به محدودیت زمانی واکنش نشان می دهند، ضروری اند، به عبارتی، تعریف مهلت زمانی سخت لزوماَ این نیست که این زمان غیر قابل از دست دادن باشد، بلکه مهلت زمانی سخت به سادگی تعیین میکند که یک عمل اگر مهلت زمانیاش از دست برود بیفایده است. معمولاً ضمانتهای معتبر مهلتهای زمانی، برای سیستمهایی موردنیاز هستند که در فاصلههای زمانی از خود واکنش نشان نمیدهند و باعث خسارتهای بزرگی میشوند]5[ .
در سیستمهای بیدرنگ نرم، ضرورتی در بررسی تمامی محدودیتهای زمانی سیستم نیست و در صورت تاخیر در اجرای وظیفه، سیستم دچار بحران و یا وقوع فاجعه نمیشود. یعنی هرچند این سیستمها میبایست پاسخی سریع داشته باشند ولی مسئله پاسخدهی، به حادی سیستمهای بیدرنگ سخت نیست. سیستمهای بیدرنگ نرم در دستیابیهای همزمان استفاده میشوند و قابلیت پاسخگویی به چند واقعه را دارا بوده و همچنین قابلیت تقسیمبندی پدیدهها به بحرانی و غیربحرانی را دارا میباشند. در اینگونه سیستمها، اولویت اجرا همیشه با پدیدههای بحرانی میباشد. یکی از معایب این سیستمها این است که وظایف غیربحرانی تا زمانی که وظایف بحرانی پاسخ دادهنشوند، بیپاسخ میمانند و این موضوع ممکن است سیستم را دچار تاخیر در پاسخگویی نماید. در سیستمهای بیدرنگ نرم، خطاهای ناشی از عدم اهمیت جدی به محدودیت زمانی، کیفیت را کاهش میدهد اما سیستم همچنان به کار خود ادامه میدهد. به عنوان نمونههایی از سیستمهای بیدرنگ نرم میتوان به سیستمهای پخش صوتی و تصویری (چندرسانهای34)، واقعیت مجازی35، رزرواسیون شرکت های هواپیمایی و… اشاره کرد]6[ .
در سومین نوع از سیستمهای بیدرنگ، به سیستمهای بیدرنگ ثابت میرسیم که در این نوع سیستمهای بیدرنگ که معمولا در تقسیمبندیها بهعنوان یک نوع مجزا، محسوب نمیشوند، سررسیدها هم به صورت سخت و هم به صورت نرم هستند، یعنی اجرا نشدن وظیفه تا سررسید خود، آن را بی فایده میکند(همانند سیستمهای بیدرنگ سخت)، در عین حال گاهی میتواند اجرا نشود(همانند سیستمهای بیدرنگ نرم). در واقع این سیستمها سررسیدهای سختی دارند اما در جاییکه یک احتمال کم و مشخص از خطا و نقض سررسید وجود دارد، سیستم میتواند این خطا را تحمل کند]5[ .
2-2-2 تابع بهرهوری در سيستمهای بیدرنگ
مسئله بههنگامبودن36، یکی از کلیدیترین اصل در طراحی سیستمهای بیدرنگ میباشد. مسئله بههنگامبودن، دو جنبه کمی دارد؛ یکی اینکه سیستم باید در زمان مشخص و تعیینشده، وظیفه موردنظر را اجرا کند و دیگری اینکه باید علاوه بر بهموقع بودن، درستی و مفید بودن اجرا را نیز درنظر بگیرد. یعنی باید رابطه بین زمانی که نتایج تولید میشوند و مفید بودن این نتایج تولیدشده را نیز درنظر گرفت. این رابطه میتواند بوسیله توابع ریاضی نشان دادهشود.
بهرهوری یک وظیفه معمولی ( غیربیدرنگ37 ) کاملا مستقل از زمان است. نمودار تابع بهرهوری نسبت به زمان در یک سیستم با وظیفه غیربیدرنگ را در شکل 2-1- الف مشاهده میکنید. بهرهوری یک وظیفه بیدرنگ نرم تابعی است که بعد از فرارسیدن سررسید مربوطه، به تدریج کاهش یافته تا به صفر میرسد.(شکل 2-1- ب) نمونههایی از وظایف بیدرنگ نرم میتوان به VOIP 38 ، تلویزیون دیجیتال، کنفرانس ویدئویی و بسیاری از سیستمهای چندرسانهای دیگر اشاره کرد. اما در مورد یک وظیفه بیدرنگ سخت، دو مورد باید قابل تشخیص باشد؛ اولین مورد که معمولتر است، این است که با فرارسیدن سررسید مربوطه، تابع بهرهوری بلافاصله مستقیم به صفر سقوط کند. (شکل 2-1- ج) و مورد دوم که بسیار بدتر از حالت اول است این است که تابع بهرهوری بعداز فرارسیدن سررسید، به منفی بینهایت (∞-) سقوط کند (شکل 2-1- د ). از نمونههای این حالت میتوان به سیستمهای نظامی اشاره کرد که در آن عواقب یک عملی که درست و بموقع انجام نشود، میتواند حتی بدتر از انجام ندادن آن عمل باشد]5[ .
2-3 وظيفه
کنترل نرمافزاری سختافزار یک سیستم بیدرنگ، نقش مهمی در بهبود عملکرد سیستم دارد. به عنوان مثال در یک ماشینلباسشویی، کنترل قسمتهای مکانیکی و نمایش زمان باقیمانده برنامه شستشو و… نمونه کار39هایی هستند که توسط یک سیستم تعبیهشده موجود در لباسشویی اجرا میشوند. به منظور فشرده سازی40 کارهای مختلف و بهبود قابلیت استفاده مجدد و نگهداشتپذیری، کارها از زیربخشهایی تشکیل شدهاند که به هر کدام از این زیربخشها، وظیفه گفتهمیشود.
به عبارت دیگر “یک وظیفه ، یک موجودیت41 نرمافزاری یا یک برنامه از قبل تعیینشده برای پردازش برخی ورودیهای خاص یا برای پاسخ به رفتاری خاص است که توسط رخدادی به آن منتقل میشود” ]7[ .
معمولا یک وظیفه دنبالهای از دستورات است که شامل اجراها و تعاملات منابع میشود. یک دستور اجرایی شامل یک دنباله دلخواهی از دستورالعملهاست که هر دستور باید بخشی از مجموعه دستورالعمل پردازنده باشد که میتواند انحصاری42 یا غیرانحصاری43 باشد. وظایف یا به صورت تناوبی و یا به صورت پراکنده و غیرتناوبی اتفاق میافتند. وظایف تناوبی در یک دوره ثابت زمانی تکرار میشوند مانند تقسیم عددی بر مضرب وقفه ساعت. این درحالی است که وظایف غیرتناوبی در زمانهای تصادفی رخ میدهند. مانند یک وقفه از یک حسگر خارجی44. وظایفی که به صورت پراکنده اتفاق میافتند، وظایف غیرتناوبی نامیده میشوند، به شرطی که این وظایف به جای داشتن یک سررسید سخت، یک سررسید نرم داشته یا بدون سررسید باشند.
یک وظیفه میتواند دریکی از شش وضعیت غیرموجود45، ایجادشده46 ، آماده47 ، در حال اجرا48، مسدود49 و یا خاتمهیافته50 قرار داشتهباشد. نحوه گذار از یک حالت به حالت دیگر با استفاده از نمودار انتقال حالت در شکل2-2 نشان داده شدهاست. در این نمودار یک گذار معتبر و معمول با فلش ممتد مشخص شده است و یک فلش غیرممتد نشاندهنده یک گذار در صورت هرگونه استثناء است]8[ .
2-3-1 مدل وظيفه بیدرنگ
یک سیستم بیدرنگ میتواند شامل n وظیفه τi باشد و مجموعه وظایف آن را S مینامیم که عبارتاند از مجموعه همه وظایف موجود در سیستم که S={ τ1 ,τ2 ,τ3 ,…, τn } . هر وظیفه تعدادی مشخصه قراردادی دارد که توسط این مشخصهها به سیستمعامل و برنامهنویس معرفی میشود.
چهار مشخصه مهم و اصلی یک وظیفه عبارتاند از:
Ci : بدترین حالت زمان اجرای وظیفه
Di :
