نام فیلد
توضیحات
Id
شماره سرور
Calc
میزان محاسبه سرور در هر زمان
Pwr
میزان مصرف انرژی
amount
هزینه استفاده هر سرور
جدول ۳-۲ جدول srvr برای ذخیره سازی اطلاعات سرور
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
فصل چهار
یافتههای تحقیق
۴-۱ شرح اولیه
الگوریتم مورد نظر بهینه شده الگوریتم فصل سه خواهد بود
در این فصل به شرح مختصری در مورد این الگوریتم شرح میدهیم و سپس به حالت بهینه شده آن میپردازیم
مشخصات الگوریتم
در الگوریتم فصل قبل ما با بهره گرفتن از الگوریتم ژنتیک و روش حریصانه ابتدا هر برنامه بر اساس اندازه وظایف و زمان اجرای هر وظیفه مرتب سازی نمودهایم . این مرتب سازی به این گونه خواهد بود که هر برنامه یا سرویس درخواست دهنده میتواند چندین وظیفه و یا سرویس را داشته باشد که این وظایف برای انجام کارهای خود به یک زمانی نیاز دارد و ما برای راحتی کار وظایف هر برنامه یا سرویس دهنده را برابر هم از لحاظ مدت زمان اجرا در نظر گرفتهایم و سپس مقدار این برنامه درخواست دهنده برابر میشود با تعداد وظایف ضرب در زمان اجرای هر وظیفه ، سپس یک مقداری را برای ما باز میگرداند . برای تمامی وظایف موجود در سیستم همین عملیات را تکرار میکنیم . سپس این نتایج به دست آمده را از بزرگ به کوچک مرتب سازی مینماییم .
در ادامه ما با بهره گرفتن از روش حریصانه بزرگترینهای اجرا نشده را از لیست دریافت مینماییم و این بستگی به میزان ورودی ما دارد که چند برنامه را میتوان در آن واحد اجرا نمود .سپس به هر برنامه یک سرور اختصاص میدهیم .این سرور بخشی از برنامه و یا همه آن را اجرا می کند . و این بار با بهره گرفتن از متقاطع کردن و سپس جهش در بین برنامههای موجود پیاده سازی میکنیم . در ادامه ما با بهره گرفتن از الگوریتم حریصانه باقی ماندههای بزرگتر نسل بعد را انتخاب کرده و دوباره آن ها را برای انجام عملیات انتخاب مینماییم . این تکرار را بهاندازه دلخواه خود انجام میدهیم . مثلاً ۱۰۰ دور . پس از این مدت میتوان برنامههای اجرا شده کامل و برنامههای کامل نشده را تفکیک کرد و نمایش داد .
تابع تناسب ما برای اجرای کارها و انتخاب نسل بعد ما را میتوان به این صورت بیان نمود که کارهای انجام شده کنار گذاشته میشود و دوباره کارهای بزرگتر باقی مانده از نسل بعد ورودی توابع ما خواهد بود . عمل تقاطع و جهش به برنامههای در حال اجرا اجازه میدهد تا در برنامه نسل بعد ما قرار گیرند . زیرا تعدادی از برنامههای سرویس گیرنده ما با بهره گرفتن از تقاطع و جهش برای نسل بعد انتخاب شده و تعدادی دیگر را از بزرگترینهای نسل بعد انتخاب مینماییم.
۴-۲ شرح بهینه سازی
ما در این الگوریتم دو تغییر عمده را ایجاد نمودهایم . یک اینکه ما برای ورودی دادههای خود از روش حریصانه استفاده نکردهایم . بهنوعی این روش را شکستهایم و ترتیب اولویت ورود و سرویس گیری را بهصورت مشخص نمودهایم که ابتدا به برنامههای سرویس گیرندهای سرویس خواهیم داد که بیشترین وظیفه را داشته باشند . حال ممکن است از لحاظ زمان کلی زیاد نباشند ولی تعداد وظایف آن ها زیادتر از مابقی برنامهها است . ازاینرو همیشه بزرگترین در صدر قرار نخواهد گرفت و به ترتیب صعودی به نزولی نخواهد بود .
دو اینکه برای این الگوریتم همانند روش چرخشی (راند رابین) یک کوانتوم در نظر گرفته شده است که با توجه به میزان این کوانتوم هرچقدر از وظیفه مورد نظر انجام شود را پردازنده انجام خواهد داد و بعد از اتمام زمان دیگر پردازنده و یا سرویس دهنده از آن گرفته میشود و به برنامه دیگری داده میشود .البته لازم به ذکر خواهد بود که ما الگوریتم چرخشی را هم باکمی تغییرات استفاده نمودهایم و تغییر آن به این صورت خواهد بود که هر ۱۰ برنامهای که محاسبه میشود یک عدد به کوانتوم مورد نظر اضافه میشود .
البته ناگفته نماند که باید این زمان کمتر از میزان زمان کل انجام یک سرویس در یک سرور باشد .
همانطور که در شکل زیر میبینید چندین بهینگی را میتوانید مشاهده نمایید .
یک آنکه تعداد برنامههای تکمیل نشده کمتر خواهد شد و به حداقل نسبی خواهد رسید.
دو آنکه میزان هزینه آن نیز کاهش خواهد یافت
شکل ۴-۱ نمایی از اجرای برنامه بهبود یافته
فصل پنج
نتیجهگیری و مقایسه
۵-۱ شرح اولیه
با توجه به موارد ذکر شده و توضیحاتی که در مورد الگوریتم مورد نظر داده شده ما میتوانیم بگوییم در حالت کلی به یک بهینگی خواصی رسیدهایم که البته ، نمیتوان گفت این حالت بهصورت ۱۰۰% و در تمامی شرایط به همین صورت خواهد بود و بستگی به شرایط سرورها و سیستمهای سرویس دهنده و گیرنده خواهد داشت .
۵-۲ روند اجرا و مقایسه
ابتدا با تغییری که در مرتب سازی دادههای ورودی خود داشتهایم ، این قانون را که بیشترین و یا بزرگترین در ابتدا قرار بگیرد را شکسته و باعث شدهایم تا برنامههایی با مدت زمان اجرای پایینتر هم شانس این را داشته باشند که بتوانند اجرا شوند و به سرویس خود برسند .
دو اینکه مقصود ما از دادن نوبت اجرا بر این بود که دیگر تمامی یک سیستم یا سیستمها را به تعدادی خاص از برنامهها که دارای عملیات زیادی هستند درگیر ننماییم و دیگر برنامهها هم بتوانند اجرا شوند و به مقصود خود برسند .
از آنجا که این الگوریتم چرخشی دوره زمانی خود را افزایش میدهد ، میتوان به این مورد همه در آینده دست یافت که میزان گرفتن و دادن پردازنده به یک برنامه به نسبت کمتر میشود و مدت بیشتری را میتواند برای انجام کارهای خود اختصاص یابد .
در انتها به مشاهده و مقایسه دو الگوریتم از لحاظ نموداری خواهیم پرداخت
شکل ۵-۱ الگوریتم پروژه بهینه یافته