خصه بی‌درنگی نرم می‌باشند. همچنین از آنجایی که در یک سیستم تعبیه‌شده، مشخصه‌های وظایف سیستم و تعداد آنها و بدترین حالت زمان اجرای هر وظیفه در بالاترین فرکانس ممکن، در مرحله پیکربندی اولیه سیستم مشخص شده و براساس آن سیستم زمانبندی می‌شود، در سیستم ما نیز مشخصه‌های مانند تعداد کل وظایف سیستم، تعداد وظایف تناوبی و تعداد وظایف غیرتناوبی، زمان ورود هر وظیفه، سررسید متناظر هر وظیفه و… مشخص هستند. مشخصه‌های ورودی مجموعه وظایف تناوبی در سیستم ما عبارت‌اند از : زمان ورود، سررسید متناظر، دوره تناوب و بدترین حالت زمان اجرا. اما مشخصه‌های وظایف غیرتناوبی عبارت‌انداز: زمان ورود، سررسید متناظر، اولویت اجرا و بدترین حالت زمان اجرا. خروجی سیستم ما پس از توزیع وظایف بین هسته‌ها و زمانبندی آنها روی هر هسته مشخص می‌شود که شامل زمان پایان اجرای هر وظیفه، میزان نرخ از دست دادن سررسید وظایف، زمان اجرای نهایی یک وظیفه، زمان پاسخ وظایف غیرتناوبی، متوسط زمان انتظار وظایف غیرتناوبی و در نهایت میزان انرژی مصرفی هر وظیفه در طول اجرای آن‌ها روی هسته پردازنده می‌باشد.
از آنجاییکه مقادیر مشخصه‌های وظایف سیستم بصورت تصادفی انتخاب میشوند نیازمند اجرای تعداد وظایف زیادی هستیم تا به مقادیر واقعی و صحیح نزدیک باشیم. ما در شبیه‌سازی از شش مجموعه وظیفه متفاوت که در مجموع دارای تعداد 1870 وظیفه است استفاده کرده‌ایم که مجموعه وظیفه اول دارای تعداد 20 وظیفه، مجموعه وظیفه دوم دارای تعداد 50 وظیفه، مجموعه وظیفه سوم دارای تعداد 100 وظیفه، مجموعه وظیفه چهارم دارای تعداد 200 وظیفه، مجموعه وظیفه پنجم دارای تعداد 500 وظیفه و مجموعه وظیفه ششم دارای تعداد 1000 وظیفه می‌باشد. همچنین نسبت تعداد وظایف تناوبی و غیرتنابی نیز در هر مجموعه وظیفه در چندین حالت‌ مختلف در نظر گرفته شده است. در سه مجموعه اول سه حالت و در سه مجموعه بعدی، پنج حالت مختلف برای نسبت وظایف تناوبی و غیرتناوبی در هر مجموعه وظیفه در نظر گرفته شده‌است. بنابراین بر اساس این حالت‌های مختلف نسبت وظایف تناوبی به غیرتناوبی، تعداد کل وظایفی که ما در شبیه‌سازی مورد آزمایش قرار می‌دهیم 9010 وظیفه می‌باشد.
ما در این شبیه‌سازی، هر کدام از حالت‌های مجموعه وظایف را برای پردازنده دوهسته‌ای، چهارهسته‌ای و هشت‌هسته‌ای آزمایش می‌کنیم. برای رسیدن به جواب دقیق‌تر و واقعی‌تر، ما هر حالت ممکن از مجموعه وظایف را به تعداد 500 بار اجرا کرده و میانگین خروجی‌های این 500 بار را به عنوان جواب نهایی سیستم در نظر گرفته‌ایم. در کنار توضیحات ذکرشده، برخی فرضیات نیز برای شبیهسازی سیستم درنظر گرفته‌شده است که عبارتند از :
ظرفیت صف آماده تمام هسته‌های پردازنده، بی‌نهایت درنظر گرفته شده است.
تمامی وظایف ، مستقل هستند و هیچ ارتباط و اشتراکگذاری و محدودیت منابع وجود ندارد.
مقدار دوره تناوب هر وظیفه تناوبی با مقدار سررسید متناظر آن برابر است.
مشخصه اولویت برای وظایف غیرتناوبی، یک عدد ثابت تصادفی غیرتکراری از یک تا تعداد وظایف غیرتناوبی یک مجموعه وظیفه می‌باشد.
تمامی وظایف به محض ورود میتوانند اجرا شوند.
سربار هسته سیستمعامل، صفر فرض میشود.
5-2 محیط شبیه‌سازی
برای شبیه‌سازی سیستم موردنظر، می‌بایست به طور کامل یک سیستم بی‌درنگ چندهسته‌ای شبیه سازی شود. ما برای این کار از زبان برنامه‌نویسی python استفاده کردیم که دلیل انتخاب این زبان سادگی در استفاده و سرعت زیاد برنامه نویسی به این زبان بوده است.
لازمه شبیه‌سازی یک سیستم بی‌درنگ چندهسته‌ای این است که به طور کامل واحد پردازش داده‌ها که در اینجا، پردازنده چندهسته‌ای PowerPC 405PL می‌باشد، همراه با هسته سیستم‌عامل بی‌درنگ چندپردازنده، شبیه‌سازی شود. برای اینکار ما هسته‌های پردازنده موردنظر، سیستم‌عامل تعبیه‌شده بی‌درنگ، کلاک پردازنده و مشخصه‌های وظایف موجود در سیستم را با زبان برنامه‌نویسی python و در محیط برنامه‌نویسی Pycharm شبیه‌سازی کرده ایم. در ادامه به شرح هرکدام از این قسمت‌ها خواهیم پرداخت.
شبیه‌سازی هسته‌ها:
برای شبیه‌سازی هسته‌های پردازنده، از کلاس Core در کد برنامه استفاده شده است. پس از انتساب وظیفه‌ها به هسته‌ها، هر هسته در صورتی که در کلاک زمانی خود روشن باشد و وظیفه ای برای اجرا کردن داشته باشد آن وظیفه را اجرا می‌کند. الگوریتم انتخاب وظیفه از صف وظیفه ها و انتخاب فرکانس در فصل قبل توضیح داده شده است. سپس با توجه به فرکانس و زمان اجرای وظیفه، انرژی مصرف شده توسط آن هسته محاسبه می شود. در صورتی که وظیفه‌ای برای اجرا کردن وجود نداشت این هسته به حالت خاموش می‌رود.
شبیه‌سازی کلاک:
در این آزمایش از پردازنده چندهسته‌ای PowerPC 405PL استفاده کرده ایم که هسته‌های آن در چهار فرکانس اجرایی مختلف کار می‌کنند و در هر لحظه فرکانس هر هسته مستقل از هسته دیگر است. فرکانس‌های این پردازنده 33 ،1?? ،266 و 333 مگاهرتز است که برای ایجاد این فرکانس‌ها (رعایت نسبت ها)‌، ابتدا کوچک‌ترین مضرب مشترک آنها را محاسبه می‌کنیم، سپس کلاکی به اندازه این مقدار ایجاد می‌کنیم، سپس با توجه به نسبت فرکانس به کوچک‌ترین مضرب مشترک، محاسبات را انجام می‌دهیم. در روند اصلی برنامه کلاک شبیه‌سازی‌شده، به میزان کوچک‌ترین مضرب مشترک زده می شوند و در هر کلاک پردازنده وظایف مورد نظر را اجرا می کند. برای پیاده سازی صف های هر هسته، از صف اولویت دار با ساختمان داده heap استفاده شده است که زمان اضافه کردن عنصر و حذف کردن از آن و در نتیجه سربار الگوریتم را کاهش می‌دهد.
شبیه‌سازی سیستم‌عامل:
برای شبیه‌سازی سیستم‌عامل بی‌درنگ، از کلاس OS در کد برنامه استفاده شده‌ است. این کلاس وظیفه انتساب دادن وظایف به هسته‌ها را دارد. این کلاس صفی از وظیفه‌های تازه ساخته شده دارد که در هر بار اجرای این کلاس ابتدا این صف چک می شود و در صورتی که وظیفه‌ای در این صف بود آن را با الگوریتم پیشنهادی، به یکی از هسته‌های پردازنده انتساب می دهد.
شبیه‌سازی وظیفه:
برای شبیه‌سازی یک وظیفه، از کلاسی با نام Task در کد برنامه استفاده کرده‌ایم که این کلاس اطلاعات مربوط به هر وظیفه را در خود ذخیره می کند. ما تمامی وظیفه ها را در کلاس OS ذخیره می کنیم و پس از پایان ، با بررسی آنها از صحت اجرا و کارایی سیستم اطلاعات مورد نظر را بدست می آوریم.
5-3 ارزیابی انرژی مصرفی
مصرف انرژی یکی از مهم‌ترین مشخصه‌ها برای یک سیستم تعبیه‌شده قابل حمل است. بدلیل محدودیت در منابع نگهدارنده انرژی، مخصوصا در سیستم‌هایی مانند تلفن همراه، مسئله کاهش مصرف انرژی از اهمیت زیادی برخوردار می‌باشد. الگوریتم پیشنهادی ما همواره سعی در این موضوع دارد که در عین اینکه کاهش نرخ نقض سررسید وظایف و زمان پاسخ وظایف غیرتناوبی را مد نظر دارد، باعث کاهش مصرف انرژی نیز شود. سطح اول الگوریتم پیشنهادی با تفکیک وظایف تناوبی و غیر تناوبی و تخصیص بخشی از هسته‌ها به آن‌ها سعی در رسیدن به اهداف ذکر شده را دارد. این اختصاص نسبت هسته باید با توجه به بهترین نتیجه حاصل از شبیه‌سازی باشد که به تعداد، نوع و مشخصه‌های وظایف یک سیستم بی‌درنگ نرم تعبیه شده وابسته است.
ما در الگوریتم خود، برای هر مجموعه وظیفه، مشخص می‌کنیم که بهترین حالت نسبت هسته‌ها برای اختصاص به وظایف تناوبی و غیرتناوبی کدام است. شکل 5-1 انرژی مصرفی حاصل شبیه‌سازی 500 وظیفه را نشان می‌دهد که برای انتخاب بهترین حالت نسبت تفکیک هسته‌ها در پردازنده‌های چهارهسته‌ای و هشت‌هسته‌ای، با توجه به مصرف انرژی هر حالت، بکار می‌رود. ما آزمایش‌های خود را برای هر حالت از هر مجموعه وظایف، پانصد مرتبه تکرار کرده و میانگین جواب‌های بدست آمده را در نمودار می‌آوریم.
شکل 5-1 مقایسه انرژی مصرفی حالت‌های مختلف نسبت تفکیک هسته‌ها برای وظایف تناوبی و غیرتناوبی
شکل 32شکل 5-1 مقایسه انرژی مصرفی حالت‌های مختلف نسبت تفکیک هسته‌ها برای وظایف تناوبی و غیرتناوبی
این نمودار نشان می‌دهد که برای این مجموعه وظایف، در حالت چهار هسته‌ای، نسبت 3 به 1 ، کمترین میزان مصرف انرژی سیستم را به دنبال دارد، این بدین معنی است که در تفکیک هسته‌ها از بین سه حالت ممکن، یعنی نسبت 3 به 1، نسبت 2 به 2 و نسبت 1 به 3، اگر وظایف تناوبی را به سه هسته و وظایف غیرتناوبی را به یک هسته توزیع کنیم( با الگوریتم توزیع پیشنهادی که در فصل قبل بیان شد)، آنگاه کمترین میزان انرژی مصرف خواهد شد. همچنین در حالت پردازنده هشت هسته‌ای نیز مشاهده می‌کنیم که برای این مجموعه وظایف آزمایش شده، تفکیک 2 به 6 توانسته کمترین میزان مصرف انرژی را داشته باشد.
ما در آزمایشات شبیه سازی الگوریتم خود، برای هر حالت، تمامی نسبت‌های هسته‌ها را آزمایش کرده و بهترین جواب را استخراج نمودیم، بنابراین در نمودارهای بعدی هر حالت نشان داده شده از پردازنده چهارهسته‌ای و هشت‌هسته‌ای، بهترین جواب ممکن بوده است.
نتایج مصرف انرژی الگوریتم پیشنهادی، حاصل از شبیه‌سازی 1870 وظیفه در 6 مجموعه مختلف از وظیفه‌ها با میانگین‌گیری پانصد تکرار، در حالت‌های دو هسته‌ای، چهارهسته‌ای و هشت‌هسته‌ای در شکل 5-2 نشان داده شده است.
شکل 5-2 انرژی مصرفی الگوریتم پیشنهادی در شش مجموعه وظیفه مختلف
شکل 33شکل 5-2 انرژی مصرفی الگوریتم پیشنهادی در شش مجموعه وظیفه مختلف
همان‌طور که در نمودار بالا مشاهده می‌کنید، شیب مصرف انرژی با افزایش تعداد هسته‌ها ملایم‌تر شده و همچنین این کاهش شیب در مجموعه وظایف بیشتر از 200 تا، بهتر می‌شود. این موضوع نشان می دهد که الگوریتم پیشنهادی در بار کاری زیاد و در تعداد هسته‌های بیشتر میزان افزایش مصرف انرژی کمتری نسبت حالت دو هسته‌ای و چهارهسته‌ای را از خود نشان می‌دهد.
ما در این آزمایش، همچنین با شبیه‌سازی الگوریتم‌های LU-McEP ]34[ و PDAMS ]36[ که شرح کامل آن‌ها در فصل سوم بیان شد، نتایج حاصل از شبیه‌سازی الگوریتم خود را با نتایج شبیه‌سازی این دو الگوریتم قدرتمند مقایسه کرده و به تحلیل و ارزیابی این مقایسه می‌پردازیم. شبیهسازی این دو الگوریتم در شرایط کاملا یکسانی با آزمایش ما انجام شده است، به این صورت که شبهکد موجود در مقالههای آنان و الگوریتم توزیع وظایف آنها را تحت شرایط آزمایش خود شبیهسازی کردهایم.
در شکل 5-3 نمودار مقایسه میزان مصرف انرژی حاصل از شبیه سازی الگوریتم‌های LU-McEP و PDAMS با الگوریتم پیشنهادی خود در حالتی که یک مجموعه با 500 وظیفه در پردازنده‌های دوهسته‌ای، چهار هسته‌ای و هشت‌هسته‌ای شبیه‌سازی و اجرا شده را نشان می‌دهیم.
شکل 5-3 مقایسه انرژی مصرفی الگوریتم پیشنهادی با الگوریتم‌های LU-McEP و PDAMS
شکل 34شکل 5-3 مقایسه انرژی مصرفی الگوریتم پیشنهادی با الگوریتم‌های LU-McEP و PDAMS
همانطور که در شکل 5-3 مشاهده می‌کنید، الگوریتم پیشنهادی ما توانسته در هر سه حالت 2 هسته‌ای، چهار هسته ای و هشت‌هسته‌ای، در یک مجموعه 500تایی وظایف، انرژی مصرفی کمتری را نسبت به الگوریتم‌های LU-McEP و PDAMS برای اجرای وظایف صرف ‌کند. الگوریتم پیشنهادی ما توانسته تا 34 درصد انرژی کمتری نسبت به الگوریتم PDAMS و همچنین نزدیک به 10 درصد انرژی کمتری نسبت به الگوریتم LU-McEP مصرف کند.
شکل 5-4 مقایسه انرژی مصرفی الگوریتم پیشنهادی با الگوریتم‌های LU-McEP و PDAMS را در 6 مجموعه وظیفه مختلف به تعداد 1870 وظیفه در پردازنده چهارهسته‌ای نشان می‌دهد.
شکل 5-4

این مطلب رو هم توصیه می کنم بخونین:   دانلود پایان نامه ارشد با موضوعبرنامه ریزی، الگوریتم ژنتیک، بهینه سازی
دسته‌ها: No category

دیدگاهتان را بنویسید