۱
ولتاژ (V)
۷۵۰
۶۰۰
۷۲
۱۹
توان مصرفی (mW)
سیستمی که ما برای آن الگوریتم زمانبندی وظایف را پیشنهاد دادهایم، یک سیستم بیدرنگ نرم میباشد، بنابراین مجموعه وظایفی که از آنها برای پیادهسازی سیستم استفاده کردهایم نیز وظایفی هستند که همگی دارای مشخصه بیدرنگی نرم میباشند. همچنین از آنجایی که در یک سیستم تعبیهشده، مشخصه های وظایف سیستم و تعداد آنها و بدترین حالت زمان اجرای هر وظیفه در بالاترین فرکانس ممکن، در مرحله پیکربندی اولیه سیستم مشخص شده و براساس آن سیستم زمانبندی میشود، در سیستم ما نیز مشخصه های مانند تعداد کل وظایف سیستم، تعداد وظایف تناوبی و تعداد وظایف غیرتناوبی، زمان ورود هر وظیفه، سررسید متناظر هر وظیفه و… مشخص هستند. مشخصه های ورودی مجموعه وظایف تناوبی در سیستم ما عبارتاند از : زمان ورود، سررسید متناظر، دوره تناوب و بدترین حالت زمان اجرا. اما مشخصه های وظایف غیرتناوبی عبارتانداز: زمان ورود، سررسید متناظر، اولویت اجرا و بدترین حالت زمان اجرا. خروجی سیستم ما پس از توزیع وظایف بین هستهها و زمانبندی آنها روی هر هسته مشخص میشود که شامل زمان پایان اجرای هر وظیفه، میزان نرخ از دست دادن سررسید وظایف، زمان اجرای نهایی یک وظیفه، زمان پاسخ وظایف غیرتناوبی، متوسط زمان انتظار وظایف غیرتناوبی و در نهایت میزان انرژی مصرفی هر وظیفه در طول اجرای آنها روی هسته پردازنده میباشد.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت nefo.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
از آنجاییکه مقادیر مشخصه های وظایف سیستم بصورت تصادفی انتخاب میشوند نیازمند اجرای تعداد وظایف زیادی هستیم تا به مقادیر واقعی و صحیح نزدیک باشیم. ما در شبیهسازی از شش مجموعه وظیفه متفاوت که در مجموع دارای تعداد ۱۸۷۰ وظیفه است استفاده کردهایم که مجموعه وظیفه اول دارای تعداد ۲۰ وظیفه، مجموعه وظیفه دوم دارای تعداد ۵۰ وظیفه، مجموعه وظیفه سوم دارای تعداد ۱۰۰ وظیفه، مجموعه وظیفه چهارم دارای تعداد ۲۰۰ وظیفه، مجموعه وظیفه پنجم دارای تعداد ۵۰۰ وظیفه و مجموعه وظیفه ششم دارای تعداد ۱۰۰۰ وظیفه میباشد. همچنین نسبت تعداد وظایف تناوبی و غیرتنابی نیز در هر مجموعه وظیفه در چندین حالت مختلف در نظر گرفته شده است. در سه مجموعه اول سه حالت و در سه مجموعه بعدی، پنج حالت مختلف برای نسبت وظایف تناوبی و غیرتناوبی در هر مجموعه وظیفه در نظر گرفته شدهاست. بنابراین بر اساس این حالتهای مختلف نسبت وظایف تناوبی به غیرتناوبی، تعداد کل وظایفی که ما در شبیهسازی مورد آزمایش قرار میدهیم ۹۰۱۰ وظیفه میباشد.
ما در این شبیهسازی، هر کدام از حالتهای مجموعه وظایف را برای پردازنده دوهستهای، چهارهستهای و هشتهستهای آزمایش میکنیم. برای رسیدن به جواب دقیقتر و واقعیتر، ما هر حالت ممکن از مجموعه وظایف را به تعداد ۵۰۰ بار اجرا کرده و میانگین خروجیهای این ۵۰۰ بار را به عنوان جواب نهایی سیستم در نظر گرفتهایم. در کنار توضیحات ذکرشده، برخی فرضیات نیز برای شبیهسازی سیستم درنظر گرفتهشده است که عبارتند از :
- ظرفیت صف آماده تمام هستههای پردازنده، بینهایت درنظر گرفته شده است.
- تمامی وظایف ، مستقل هستند و هیچ ارتباط و اشتراکگذاری و محدودیت منابع وجود ندارد.
- مقدار دوره تناوب هر وظیفه تناوبی با مقدار سررسید متناظر آن برابر است.
- مشخصه اولویت برای وظایف غیرتناوبی، یک عدد ثابت تصادفی غیرتکراری از یک تا تعداد وظایف غیرتناوبی یک مجموعه وظیفه میباشد.
- تمامی وظایف به محض ورود میتوانند اجرا شوند.
- سربار هسته سیستمعامل، صفر فرض می شود.
۵-۲ محیط شبیهسازی
برای شبیهسازی سیستم موردنظر، میبایست به طور کامل یک سیستم بیدرنگ چندهستهای شبیه سازی شود. ما برای این کار از زبان برنامهنویسی python استفاده کردیم که دلیل انتخاب این زبان سادگی در استفاده و سرعت زیاد برنامه نویسی به این زبان بوده است.
لازمه شبیهسازی یک سیستم بیدرنگ چندهستهای این است که به طور کامل واحد پردازش دادهها که در اینجا، پردازنده چندهستهای PowerPC 405PL میباشد، همراه با هسته سیستمعامل بیدرنگ چندپردازنده، شبیهسازی شود. برای اینکار ما هستههای پردازنده موردنظر، سیستمعامل تعبیهشده بیدرنگ، کلاک پردازنده و مشخصه های وظایف موجود در سیستم را با زبان برنامهنویسی python و در محیط برنامهنویسی Pycharm شبیهسازی کرده ایم. در ادامه به شرح هرکدام از این قسمتها خواهیم پرداخت.
شبیهسازی هستهها:
برای شبیهسازی هستههای پردازنده، از کلاس Core در کد برنامه استفاده شده است. پس از انتساب وظیفهها به هستهها، هر هسته در صورتی که در کلاک زمانی خود روشن باشد و وظیفه ای برای اجرا کردن داشته باشد آن وظیفه را اجرا میکند. الگوریتم انتخاب وظیفه از صف وظیفه ها و انتخاب فرکانس در فصل قبل توضیح داده شده است. سپس با توجه به فرکانس و زمان اجرای وظیفه، انرژی مصرف شده توسط آن هسته محاسبه می شود. در صورتی که وظیفهای برای اجرا کردن وجود نداشت این هسته به حالت خاموش میرود.
شبیهسازی کلاک:
در این آزمایش از پردازنده چندهستهای PowerPC 405PL استفاده کرده ایم که هستههای آن در چهار فرکانس اجرایی مختلف کار میکنند و در هر لحظه فرکانس هر هسته مستقل از هسته دیگر است. فرکانسهای این پردازنده ۳۳ ،۱۰۰ ،۲۶۶ و ۳۳۳ مگاهرتز است که برای ایجاد این فرکانسها (رعایت نسبت ها)، ابتدا کوچکترین مضرب مشترک آنها را محاسبه میکنیم، سپس کلاکی به اندازه این مقدار ایجاد میکنیم، سپس با توجه به نسبت فرکانس به کوچکترین مضرب مشترک، محاسبات را انجام میدهیم. در روند اصلی برنامه کلاک شبیهسازیشده، به میزان کوچکترین مضرب مشترک زده می شوند و در هر کلاک پردازنده وظایف مورد نظر را اجرا می کند. برای پیاده سازی صف های هر هسته، از صف اولویت دار با ساختمان داده heap استفاده شده است که زمان اضافه کردن عنصر و حذف کردن از آن و در نتیجه سربار الگوریتم را کاهش میدهد.
شبیهسازی سیستمعامل:
برای شبیهسازی سیستمعامل بیدرنگ، از کلاس OS در کد برنامه استفاده شده است. این کلاس وظیفه انتساب دادن وظایف به هستهها را دارد. این کلاس صفی از وظیفههای تازه ساخته شده دارد که در هر بار اجرای این کلاس ابتدا این صف چک می شود و در صورتی که وظیفهای در این صف بود آن را با الگوریتم پیشنهادی، به یکی از هستههای پردازنده انتساب می دهد.
شبیهسازی وظیفه:
برای شبیهسازی یک وظیفه، از کلاسی با نام Task در کد برنامه استفاده کردهایم که این کلاس اطلاعات مربوط به هر وظیفه را در خود ذخیره می کند. ما تمامی وظیفه ها را در کلاس OS ذخیره می کنیم و پس از پایان ، با بررسی آنها از صحت اجرا و کارایی سیستم اطلاعات مورد نظر را بدست می آوریم.
۵-۳ ارزیابی انرژی مصرفی
مصرف انرژی یکی از مهمترین مشخصه ها برای یک سیستم تعبیهشده قابل حمل است. بدلیل محدودیت در منابع نگهدارنده انرژی، مخصوصا در سیستمهایی مانند تلفن همراه، مسئله کاهش مصرف انرژی از اهمیت زیادی برخوردار میباشد. الگوریتم پیشنهادی ما همواره سعی در این موضوع دارد که در عین اینکه کاهش نرخ نقض سررسید وظایف و زمان پاسخ وظایف غیرتناوبی را مد نظر دارد، باعث کاهش مصرف انرژی نیز شود. سطح اول الگوریتم پیشنهادی با تفکیک وظایف تناوبی و غیر تناوبی و تخصیص بخشی از هستهها به آنها سعی در رسیدن به اهداف ذکر شده را دارد. این اختصاص نسبت هسته باید با توجه به بهترین نتیجه حاصل از شبیهسازی باشد که به تعداد، نوع و مشخصه های وظایف یک سیستم بیدرنگ نرم تعبیه شده وابسته است.
ما در الگوریتم خود، برای هر مجموعه وظیفه، مشخص میکنیم که بهترین حالت نسبت هستهها برای اختصاص به وظایف تناوبی و غیرتناوبی کدام است. شکل ۵-۱ انرژی مصرفی حاصل شبیهسازی ۵۰۰ وظیفه را نشان میدهد که برای انتخاب بهترین حالت نسبت تفکیک هستهها در پردازندههای چهارهستهای و هشتهستهای، با توجه به مصرف انرژی هر حالت، بکار میرود. ما آزمایشهای خود را برای هر حالت از هر مجموعه وظایف، پانصد مرتبه تکرار کرده و میانگین جوابهای بدست آمده را در نمودار میآوریم.
شکل ۵-۱ مقایسه انرژی مصرفی حالتهای مختلف نسبت تفکیک هستهها برای وظایف تناوبی و غیرتناوبی
شکل ۳۲شکل ۵-۱ مقایسه انرژی مصرفی حالتهای مختلف نسبت تفکیک هستهها برای وظایف تناوبی و غیرتناوبی
این نمودار نشان میدهد که برای این مجموعه وظایف، در حالت چهار هستهای، نسبت ۳ به ۱ ، کمترین میزان مصرف انرژی سیستم را به دنبال دارد، این بدین معنی است که در تفکیک هستهها از بین سه حالت ممکن، یعنی نسبت ۳ به ۱، نسبت ۲ به ۲ و نسبت ۱ به ۳، اگر وظایف تناوبی را به سه هسته و وظایف غیرتناوبی را به یک هسته توزیع کنیم( با الگوریتم توزیع پیشنهادی که در فصل قبل بیان شد)، آنگاه کمترین میزان انرژی مصرف خواهد شد. همچنین در حالت پردازنده هشت هستهای نیز مشاهده میکنیم که برای این مجموعه وظایف آزمایش شده، تفکیک ۲ به ۶ توانسته کمترین میزان مصرف انرژی را داشته باشد.
ما در آزمایشات شبیه سازی الگوریتم خود، برای هر حالت، تمامی نسبتهای هستهها را آزمایش کرده و بهترین جواب را استخراج نمودیم، بنابراین در نمودارهای بعدی هر حالت نشان داده شده از پردازنده چهارهستهای و هشتهستهای، بهترین جواب ممکن بوده است.
نتایج مصرف انرژی الگوریتم پیشنهادی، حاصل از شبیهسازی ۱۸۷۰ وظیفه در ۶ مجموعه مختلف از وظیفهها با میانگینگیری پانصد تکرار، در حالتهای دو هستهای، چهارهستهای و هشتهستهای در شکل ۵-۲ نشان داده شده است.
شکل ۵-۲ انرژی مصرفی الگوریتم پیشنهادی در شش مجموعه وظیفه مختلف
شکل ۳۳شکل ۵-۲ انرژی مصرفی الگوریتم پیشنهادی در شش مجموعه وظیفه مختلف