فصل دوم پایان نامه زمان بندی منابع در محاسبات ابری (docx) 63 صفحه
دسته بندی : تحقیق
نوع فایل : Word (.docx) ( قابل ویرایش و آماده پرینت )
تعداد صفحات: 63 صفحه
قسمتی از متن Word (.docx) :
موسسه آموزش عالی غیردولتی غیرانتفاعی میرداماد گرگان
پاياننامه جهت دريافت درجه كارشناسي ارشد(M.Sc)
رشته مهندسي كامپيوتر گرايش نرمافزار
زمان بندی و انتخاب منابع در محیط محاسبات ابری با استفاده از الگوریتم ژنتیک و شبکه عصبی
پژوهش و نگارش:
مهدی معنوی
استاد راهنما:
دکتر حسین مومنی
1393
تقديم به مهربان فرشتگانی كه؛
لحظات ناب باور بودن, لذت و غرور دانستن, جسارت خواستن, شکوه توانستن, عظمت رسيدن و تمام تجربههای يکتا و زيبای زندگيم, مديون حضور سبز آنهاست
چکیده
امروزه شبکه محاسبات ابری به عنوان یکی از مهم ترین ابزارهای توزیع شده برای انجام پردازش و ذخیره سازی داده ها در بستر اینترنت مطرح شده است تا جایی که سال 2010 را بعنوان سال محاسبات ابری نامیدند از جمله ویژگی های بارز این مدل توزیع شده می توان به کاهش چشمگیر هزینه ها و قابلیت اطمینان بالای آن و همچنین میزان پایین در آلودگی محیط زیست اشاره کرد.با رشد روز افزون این شبکه نیاز به زمان بندی کارها بمنظور استفاده ی بهینه از شبکه و پاسخگویی مناسب به کارها بشدت مورد توجه قرار گرفته است و در این زمینه تلاش های زیادی در حال انجام می باشد و به دلیل اینکه محیط محاسبات ابری محیطی بسیار بزرگ و دارای تعداد زیادی کارهای ورودی به شبکه می باشد الگوریتم های قطعی نتیجه ی مناسبی ندارند و بهترین گزینه برای این مدل از شبکه ، الگوریتم های اکتشافی می باشند ولی یکی از مشکلات اکثر روش های ارائه شده عدم جامعیت نسبی برای ارائه یک راهکار کلی در برقراری توازن در بین پارامترهای شبکه محاسبات ابری می باشد همچنین در اکثر کارهای ارائه شده بحث عدالت در اختصاص منابع به کارها نادیده گرفته شده است یعنی برای بسیاری از کارها امکان وقوع گرسنگی وجود دارد.ما برای بهینه سازی پارمترهای زمان اجرا و زمان پاسخگویی و هزینه و بهره وری سیستم الگوریتمی ترکیبی ارائه داده ایم که ما در راهکار ارائه شده برای بحث عدالت برای کارهای وارد شده به شبکه و جلوگیری از گرسنگی آنها چاره ای اندیشیده ایم.در N2TC(Neural Network Task Classification) که بر اساس شبکه عصبی می باشد کارهای جدید و کارهایی که در صف انتظار قرار دارند وارد شبکه شده و به آنها اولویت داده می شود کارهایی که دارای اولویت بالاتری می باشند به GaTa(Genetic Algorithm Task assignment) که مبتنی بر الگوریتم ژنتیک می باشد ارسال شده تا مجموعه ای بهینه از کارها به منابع موجود در شبکه اختصاص یابد. راهکار پیشنهادی بطور میانگین 10% بهبود در زمان اجرا و 25% در بخش بهره وری شبکه محاسبات ابری و 50% در بخش هزینه و 5% بهبود در زمینه زمان پاسخگویی را بیان می کند هم با توجه به سرعت بالا در همگرایی در GaTa باعث افزایش سرعت اجرای زمان بندی شده است.
کلمات کلیدی: انتخاب و زمان بندی منابع، شبکه محاسبات ابری ، الگوریتم ژنتیک، شبکه عصبی، الگوریتم اکتشافی
فهرست مطالب صفحه
فصل اول-مقدمه
1-1-مقدمه.............................................................................................................................................................................1
1-2-بیان مسئله......................................................................................................................................................................2
1-3-اهمیت و ضرورت انجام تحقیق......................................................................................................................................2
1-4-اهداف............................................................................................................................................................................2
1-5-فرضیه............................................................................................................................................................................3
1-6-جمع بندی......................................................................................................................................................................3
فصل دوم-ادبیات و پیشینه تحقیق.
2-1-مقدمه.............................................................................................................................................................................5
2-2-محیط محاسبات ابری.....................................................................................................................................................5
2-2-1-عناصر پایه ای.......................................................................................................................................................5
2-2-2-معماری.................................................................................................................................................................6
2-2-3-انواع ابر...............................................................................................................................................................11
2-2-4-کاربردها..............................................................................................................................................................11
2-2-5-چالش ها.............................................................................................................................................................12
2-3-انتخاب منابع و زمان بندی...........................................................................................................................................14
2-3-1-انتخاب منابع.......................................................................................................................................................14
2-3-2-زمان بندی...........................................................................................................................................................15
2-4-الگوریتم ژنتیک...........................................................................................................................................................15
2-4-1-کروموزم.............................................................................................................................................................16
2-4-2-جمعیت...............................................................................................................................................................16
2-4-3-تابع برازندگی......................................................................................................................................................16
2-4-4-عملگر انتخاب.....................................................................................................................................................17
2-4-5-عملگر آمیزش.....................................................................................................................................................17
2-4-6-عملگر تلفیق........................................................................................................................................................17
2-4-7-عملگر جهش.......................................................................................................................................................18
2-5-شبکه عصبی.................................................................................................................................................................19
2-6-پیشینه تحقیق................................................................................................................................................................20
2-6-1-کارهای مرتبط در محیط محاسبات ابری...............................................................................................................20
2-6-2-کارهای مرتبط در سایر محیط های توزیع شده.....................................................................................................27
فصل سوم- روش تحقیق
3-1-مقدمه...........................................................................................................................................................................34
3-2-مدل پیشنهادی..............................................................................................................................................................34
3-2-1-شبکه عصبی........................................................................................................................................................35
3-2-2-الگوریتم ژنتیک....................................................................................................................................................37
3-3-معماری مدل پیشنهادی.................................................................................................................................................38
3-4-الگوریتم پیشنهادی.......................................................................................................................................................39
فصل چهارم- نتایج تحقیق
4-1-مقدمه...........................................................................................................................................................................43
4-2-سناریو اجرا..................................................................................................................................................................43
4-3-ارزیابی راهکار پیشنهادی.............................................................................................................................................43
فصل پنجم-نتیجه گیری و کارهای آینده
5-1-مقدمه...........................................................................................................................................................................56
5-2-جمع بندی....................................................................................................................................................................56
5-3-نتیجه گیری..................................................................................................................................................................56
5-4-کارهای آینده...............................................................................................................................................................58
مراجع...................................................................................................................................................................60
پیوست ها.............................................................................................................................................................66
فصل 1 مقدمه
مقدمه
در سال 1961 مصادف با صدمین سال تاسیس MIT آقای جان مک کارتی در سخنرانی خود گفت که کامپیوتر می تواند ابزاری اساسی برای صنعتی مهم و جدید باشد این سخن بر مفهوم پایه ای ابرتاکید میکند.اولین معرفی از ابر توسط اریک اشمیت در کنفرانس استراتژی های موتورهای جستجو در سال 2006مطرح شد. [1]
تعریف موسسه جهانی استاندارد و تکنولوژی از محاسبات ابری به شرح زیر است:
شبکه محاسبات ابری مدلی است برای دسترسی به شبکه بر اساس تقاضا برای به اشتراک گذاری مجموعه ای از منابع پیکره بندی شده نظیر شبکه و سرور و محل ذخیره سازی وبرنامه ها و سرویس ها که با میزان سرعت قابل کنترل و با حداقل مدیریت و تعامل با ارائه دهنده سرویس منتشر می شود[2]. همانطور که در شکل 1 می بینید 51% از کاربران بدلیل کارایی بالای شبکه محاسبات ابری از آن استفاده می کنند و 41%به دلیل در دسترس بودن داده ها بدون وابستگی به مکان و محدودیت ناحیه ای می باشد[3]
شکل SEQ شکل \* ARABIC 1- دلایل استفاده از شبکه ابر
مزیت های استفاده از شبکه محاسباتی عبارتند از: 1-هزینه پایین 2- سطح خدمات مناسب 3- شفافیت در دسترسی 4-پشتیبانی از کاربران راه دور[4] 5- بر آورده شدن نیاز های کسب و کار 6- صرفه جویی در انرژی [1]
مطابق با تعریف NIST ویژگی های محاسبات ابری که باعث برتری این تکنولوژی بر تکنولوژی های مشابه می شود عبارتند از: 1-سلف سرویس بودن بر اساس تقاضا 2-دسترسی وسیع به اینترنت 3- مجموعه منابع 4-انعطاف پذیری سریع 5- قابل اندازه گیری بودن خدمات[5].
بیان مساله
یکی از مهم ترین چالش های شبکه محاسبات ابری بحث انتخاب منابع و زمان بندی کارها می باشد. حجم وسیع بار بر روی این شبکه و استقبال زیاد کاربران باعث شده است که کاربران زمان زیادی در انتظار بمانند تا بار شبکه کم شود و منابع مورد نیاز خود را در اختیار بگیرند حال ما قصد داریم با استفاده از الگوریتم های اکتشافی روشی نوین در این زمینه ارائه کنیم که زمانی که کارها به شبکه وارد می شوند منابع را به شیوه ای بهینه و مناسب به آنها اختصاص دهیم تا شبکه هم از نظر سرعت اجرای زمانبندی و هم از نظر دقت در انتخاب کارها به خوبی کار خود را انجام دهد.
اهمیت و ضرورت انجام تحقیق
از آنجایی که روش های فعلی زمانبندی از قبیل Round –Robin و FiFo و ... که در شبکه محاسبات ابری استفاده می شود اگر چه دارای پیاده سازی راحت تری نسبت به راهکار پیشنهادی ما می باشند ولی در زمینه بهبود پارامترهای مهم در شبکه کار چندانی انجام نمی دهند و همچنین بعضی این الگوریتم ها دارای سرعت اجرایی مناسبی نیستند همچنین کاربران شبکه محاسبات ابری همواره بدنبال این هستند که کارهایشان در زمان کوتاه و با هزینه مناسب انجام گیرد از طرفی ارائه دهندگان سرویس نیز به بدنبال افزایش حداکثری بهره وری منابع خود می باشند تا بتوانند سودی بیشتر کسب کنند این در حالی است که در بین الگوریتم های موجود روشی وجود ندارد که بتواند این تعادل را تا حد ممکن در بین نیازهای مشتری و ارائه دهنده سرویس فراهم کند.
اهداف
هدف از ارائه راهکار پیشنهادی که شامل الگوریتم های N2TC وGaTa می باشد بهینه سازی پارامترهایی است که در ادامه آنها را توضیح می دهیم.زمان اجرای کارها یکی از پارامترهای بسیار مهم در شبکه محاسبات ابری است.زمان پاسخگویی نیز پارامتری است که باید فاصله زمانی میان ارسال کار به شبکه و دریافت اولین پاسخ از شبکه به کاربر را کوتاه کنیم.هزینه یکی از مهمترین چالش ها در شبکه محاسبات ابری می باشد که باید تا حد ممکن کاهش یابد.بهره وری سیستم پارامتر بعدی می باشد که یکی از مسائل مهمی است که رائه دهندگان سرویس ها در شبکه محاسبات ابری با آن دست و پنجه نرم می کنند تا بتوانند بیشترین بهره وری را از منابع خود داشته و درآمد بیشتری کسب کنند.پارامتر آخر بحث عدالت برای کارهای ارائه شده است این پارامتر در اغلب -الگوریتم های پیشنهادی در نظر گرفته نشده است و به کارهایی که از نظر پارامتری در حد مطلوبی نمی باشند هیچگاه منابع اختصاص داده نمی شود همین امر باعث کاهش تعداد مشتریان شبکه می شود که در نهایت باعث کاهش درآمد ارائه دهندگان سرویس در شبکه محاسبات ابری می شود ولی با در نظر گرفتن عدالت امکان دریافت منابع توسط این کارها را فراهم می کنیم.
فرضیه ها
در راهکار ارائه شده برای پیاده سازی N2TC از نرم افزار Matlab 2014 استفاده شده است و برای GaTa از نرم افزار Visua studio 2013 و زبان برنامه نویسی C# بهره برده شده است.در این راهکار فرضیات زیر در نظر گرفته شده است:
تعداد منابع: تعداد منابع در دسترس در شبکه محاسبات ابری N می باشد.
تعداد کارهای ورودی: تعداد کارهای ورودی در زمان مشخص به شبکه محاسبات ابری Mمی باشد و M>N می باشد
کارهای وارد شده در این نوع شبکه بصورت قبضه ناپذیر می باشد این بدان معنا است که وقتی کاری وارد سرور می شود زمانی از آن خارج می شود که کار به اتمام رسیده باشد.
کارهای وارد شده به شبکه محاسبات ابری مورد نظر از یکدیگر مستقل می باشند و وابسته نیستند.
جمع بندی
در این فصل به تبیین مسئله اختصاص منابع در شبکه محاسبات ابری پرداختیم سپس اهمیت و ضرورت انجام این تحقیق را بیان کردیم در مرحله بعد اهداف این تحقیق را ارائه نمودیم و در انتها فرضیاتی که تحقیق خود را بر آن بنا نهاده ایم مطرح کردیم.
ادبیات و پیشینه تحقیق
مقدمه
در این بخش ابتدا شبکه محاسبات ابری را بصورت کامل توضیح می دهیم سپس زمانبندی و انتخاب منابع را تشریح می کنیم در انتها به بررسی کارهای مرتبط در این زمینه می پردازیم.
محیط محاسبات ابری
شبکه محاسبات ابری محیطی توزیع شده می باشد که هدف آن ارائه خدمات به کاربران بدون محدودیت های زمانی و مکانی است در ادامه به صورت اجمالی به ویژگی ها و عناصر موجود در این شبکه می پردازیم.
عناصر پایه ای
عناصر پایه ای در شبکه محاسبات ابری وجود دارد عبارتند از سیستم های محاسبات سودمند و گرید و مجازی سازی و وب 2 و معماری سرویس گرا و فوق ناظر [26] که در زیر به توضیح آنها می پردازیم
وب 2: با گسترش اینترنت و افزایش کاربران ، دیگر کاربران تنها به خواندن اطلاعات اکتفا نمی کردند بلکه به نوشتن و تبادل اطلاعات با کاربران مختلف نیز علاقمند بودند که وب 2 در بخش اینترنت و طراحی سایت مطرح شد در وب 2 دیگر محدودیت های سخت افزاری مطرح نیست و همه ابزار و لوازم الکترونیکی را به هم متصل می کند.
ماشین مجازی: به سیستمی گفته می شود که اجرای سیستم مجازی را بر عهده دارد ماشین مجازی کامپیوتری است که جدا از کامپیوتر والد خود عمل میکند و از قابلیت اجرای چندگانه نمونه های ماشین پشتیبانی می کند همچنین به علت فعالیت در محیط های چندگانه بروز مشکل یا خرابی یک ماشین مجازی تاثیری در عملکرد سایر ماشین ها ندارد.مجازی سازی در بخش ارایه دهندگان منابع زیر ساخت با ایجاد یک لایه انتزاعی بر روی کلیه منابع فیزیکی و سرور ها ، امکان مدیریت پویای منابع فیزیکی را فراهم می کند که در این حالت کاربران با سرور ها و منابع مجازی ارتباط برقرار می کنند.
شبکه گرید: فناوری گرید در واقع می تواند از منابع و سیستم های غیر متمرکز پشتیبانی کند و امکان ارتباط سیستم ها را با هم فراهم می کند اجزای تشکیل دهنده گرید عبارتند از 1- رابط کاربر 2- اجزای امنیت 3- مدیریت کنترل کار سیستم 4- زمانبند 5- مدیریت اطلاعات 6- مدیریت منابع فن آوری . محاسبات ابری در ادامه گسترش سیستم های گرید بوجود آمد لذا در بعضی از سیستم های محاسبات ابری از تکنولوژی گرید نیز استفاده شده است.
محاسبات سودمند: به معنای نوعی از ارائه خدمات پردازشی و ذخیره سازی است که در آن کاربر به میزان خدماتی که مورد استفاده قرار می دهد هزینه پرداخت می نماید و زیر ساخت مورد نیاز برای ارائه آن خدمات را در مالکیت خود ندارد .
معماری مبتنی بر سرویس: در واقع یک مجموعه از سرویس ها است که با یکدیگر ارتباط برقرار می کنند در هنگام این ارتباط ممکن است داده هایی را بین یکدیگر رد و بدل کنند و همچنین ترکیب دو یاچند سرویس با هم یک کار را انجام دهد
فوق ناظر: یک برنامه سطح پایین می باشد که برای فراهم کردن دسترسی منابع سیستم به ماشین های مجازی مورد استفاده قرار می گیرد و در واقع باعث می شود که ماشین های مجازی از یکدیگر پنهان بمانند به طوری که هر ماشین مجازی تصور می کند که منابع را به تنهایی در اختیار دارد.
معماری
مهم ترین برتری شبکه محاسبات ابری پایین بودن هزینه معماری آن است[3]
معماری لایه ای
معماری سیستم های محاسبات ابری به 2 بخش تقسیم می شوند 1- هسته 2- مدیریت
در بخش هسته 3 لایه وجود دارد که عبارتند از 1- منابع : لایه زیر ساخت که از منابع محاسباتی فیزیکی و مجازی تشکیل شده است مانند منابع ذخیره سازی و منابع شبکه 2- بستر ها: لایه بسیار پیچیده ای است که خود می تواند به زیر لایه های زیادی تقسیم شود به عنوان مثال چارچوبی محاسباتی برای اعزام تراکنش ها و مدیریت زمان بندی کارها می باشد 3- برنامه ها: پشتیبانی از تراکنش های توزیع شده و مدیریت مقدار زیادی از داده ها را انجام می دهد. در شکل 2 نحوه قرار گیری این لایه ها را می بینید.
شکل 2- معماری لایه ای [1]
دسته بندی شبکه محاسبات ابری بر اساس 2 معیار صورت می گیرد
1-حدود خدمات : همان انواع ابر ها هستند نظیر ابر عمومی ابر خصوصی و ابر هیبیریدی و ابر انجمنی
2-نوع خدمات [1]: که عبارتند از :
IAAS : دسترسی به منابع مجازی نظیر Cpu و پایگاه داده و ... را فراهم می کند و به مشتری امکان اجرای نرم افزار خود را بر روی منابع می دهد مانند EC2 وS3 و EBS و Windows Azure
PAAS : فراهم کننده خدمات میان افزاری و سیستم های زمان اجرا می باشد که در بالای IAAS قرار دارد
SAAS : برنامه های کامل را بر روی شبکه محاسبات ابری اجرا می کند که بیشتر توسط سازمان ها مورد استفاده قرار میگیرد نظیرGoogleApp [9]
خدمات دیگری که برای کاربر ارائه می شود به شرح زیر می باشد:
سرویس های متن باز : این ابزار امکان مدیریت و نظارت بر روی ابزار های مجازی موجود را به کاربر می دهد اکثر سرویس های متن باز در سطح IAAS و PAAS هستند و تعداد کمی در سطح SAAS قرار دارند[10] همچنین بیشتر بستر های متن باز بر اساس لینوکس هستند که باعث محدود شدن گروه های مشتری می شود[11] از جمله این ابزار می توان به Open Nebula اشاره کرد که مبتنی بر استاندارد می باشد که برای ساخت ابرهای خصوصی و عمومی و هیبریدی از آن استفاده می شود[12]
میزبانی بازی های کامپیوتری : این قابلیت حمل باعث می شود بازی از مکان های مختلف ادامه پیدا کند[13]
مدل SOA
راه حل هایی برای ساخت و سازمان دهی و استفاده مجدد از مولفه های محاسباتی را معرفی می کند SOA و شبکه محاسبات ابری در کنار یکدیگر قرار دارند و از هم حمایت می کنند و نیز تکمیل کننده یکدیگر می باشند. شکل 3 این نوع معماری را نشان می دهد .
شکل 3- معماری SOA [14[
SOAاز لایه های مختلف تشکیل می شود که عبارتند از:
لایه شخصی فراهم کنندگان سرویس : این لایه شبیه ابر پیاده سازی شده ی کنونی است که هر فراهم کننده سرویس دیتاسنترهای خود را در آن می سازد و هر ابر می تواند از تکنولوژی های مجازی سازی خود یا از تکنولوژی های منبع باز استفاده کند در داخل این لایه موارد زیر وجود دارد 1- اعزام کننده در خواست 2- نظارت بر ماشین های مجازی 3-حاکمیت سرویس که درخواست ها را به منابع در دسترس اختصاص می دهند
لایه نگاشت: فراهم کنندگان سرویس ممکن است به استاندارد های محکمی نرسند و آن ها پیاده سازی هایی را انجام دهند که با ویژگی های اضافی همراه باشد که در استاندارد ها وجود نداشته باشد.این لایه به این دلیل ایجاد شده است که تفاوت میان فراهم کنندگان سرویس را بپوشاند و به مهاجرت برنامه ها از یک ابر به ابر دیگر کمک کند در این لایه موارد زیر وجود دارد
ذخیره سازی : به منظور دستکاری داده ها در ابر نظیر بروز رسانی و وارد کردن و پاک کردن و انتخاب داده ها مورد استفاده قرار می گیرد.
محاسبات: درباره محاسبات توزیع شده در ابر استفاده می شود
ارتباط: به عنوان شمای ارتباطی بین ابر ها می باشد
لایه کارگزار: بین لایه SOA و فراهم کننده سرویس قرار گرفته است و هر سرویس بزرگ یک کارگزار مخصوص به همان سرویس دارد . این لایه دارای بخش های زیر می باشد:
ابر انتشار دهنده اطلاعات: مشخصات و اطلاعات هزینه ها را به کارگزار اطلاع می دهد
رتبه بندی: رتبه بندی منابع منتشر شده را در اختیار کارگزار قرار می دهد.خدمات می توانند در مدل های مختلفی دسته بندی شوند نظیر قیمت و قابلیت اطمینان و در دسترس بودن و امنیت
مذاکره پویا برای سطح خدمات : با توجه به پویا بودن درخواست ها در کسب و کار از آن استفاده می شود
مدل ارائه بر حسب تقاضا: لایه SOA [14]
معماری باز در پردازش ابری
معماری باز تمام بخش های ابر را شامل می شود این معماری روشی برای ایجاد بستر برای سرویس ها در قالبی مقیاس پذیر و قابل پیکره بندی می باشد و مجموعه ای از سرویس های اشتراکی و عمومی را برای ساخت بستر های ابری ارائه می دهد تا سرویس دهندگان بتوانند ابرهای خود را بر روی این سرویس ها قرار دهند .
7 قانون باید در معماری باز سیستم های محاسبات ابری مورد استفاده قرار می گیرد . 1-مدیریت پشتیبانی از اکوسیستم محاسبات ابری این اکوسیستم ها عبارتند از سرویس ها و کاربران نهایی و ... 2- مجازی سازی برای خدمات پایه ای ابر که مربوط به مجازی سازی سخت افزار و نرم افزار می شود 3- خدمات جهت سرویس های مشترک قابل استفاده مجدد 4- ارائه مجوز برای گسترش و اشتراک ابر 5- توانایی تنظیم ابرهای ارائه شده 6- نشان دادن اطلاعات بصورت یکپارچه 7- کیفیت ابرCCOA [15].
انواع معماری های پیاده سازی شده
نمونه ای از معماری های انجام شده در سطح های مختلف در زیر ارائه شده است
در [16]IBM یک فراهم کننده را برای محدود کردن منابع مورد استفاده قرار داده است و عدم همکاری میان فراهم کنندگان ابر مانع گسترش آن در میان ابر ها شده است به این معماری , معماری مخزن گفته می شود که هدف آن ایجاد مجموعه ای از فراهم کنندگان ابر چندگانه بصورت منبع یک پارچه است که سطح خدمات رسانی را تضمین کند می باشد.در معماری مخزن منابع محاسباتی در یک طرف قرار گرفته اند که بوسیله لایه مجازی داخل محیط اجرای مجازی قرار دارد جدا می شوند این معماری اجازه ی اجرای مولفه / سرویس را در محیط های مجازی نمی دهد.
در [17] بستر های نرم افزاری برای محیط های دات نت معرفی می کند که ANEKA نام دارد. ANEKAمحیطی سرویس گرا و قابل گسترش در زمان اجرا می باشد که به توسعه دهنده اجازه اجرای برنامه های دات نت را می دهد و همچنین اجازه چند نوع برنامه نویسی را به آنها می دهد.
در [18] یک معماری بازار گرا ارائه شده است که در جزییات از ANEKA استفاده کرده است که هدف آن تنظیم عرضه و تقاضای منابع ابر برای رسیدن به تعادل در بازارمی باشد و بخش QOS را برای اختصاص منابع ارتقا می دهد که اختصاص دهنده از بخش های آزمایش کننده درخواست سرویس و کنترل دسترسی و نظارت بر ماشین های مجازی و نظارت بر درخواست ها و اعزام درخواست تشکیل شده اند.
در [19] بستر سرویس گرایی را معرفی می کنند که تحویل سرویس را از طریق وب سرویس هایی که مبتنی بر برنامه ها هستند ارائه می کنند که توسط مجموعه ای از خدمات عملیاتی و کسب کار مشترک انجام می گیرد و این مدل از چند مستاجری نیز پشتیبانی می کند.
معماری های بخش ذخیره سازی
در حال حاضر معماری های زیادی برای بخش ذخیره سازی در شبکه محاسبات ابری وجود دارد که توسط بستر سرویس های مختلف ارائه شده است که اکثرا پیچیده و ناسازگار می باشند.
از جمله نیازهای لازم و گسترده برای بخش ذخیره سازی می توان به کم هزینه بودن اجزای آن و نگه داری آسان و قابلیت اطمینان و امنیت و قابل بازگشت بودن آن اشاره کرد.ساختار معمولی بخش ذخیره سازی در شبکه ابری شامل مجموعه ای از منابع ذخیره سازی و فایل های سیستمی توزیع شده و سطح توافق در خدمات و رابط خدمات و غیره می باشد.
تمامی اجزا را می توانیم به چند گروه تقسیم کنیم که عبارتند از بخش فیزیکی و منطقی و ارتباطات بین آن ها. با استفاده از ایده این گروه بندی ، مدل لایه ای مطابق شکل 4 معرفی می شود.
شکل 4- معماری لایه ای[ 27]
شبکه و زیر ساخت ذخیره سازی : شبکه های توزیع شده سیمی و بی سیم و وسایل ذخیره سازی شبکه در آن قرار دارد.
مدیریت ذخیره سازی: منابع ذخیره سازی توزیع شده جغرافیایی در آن است که به دامنه ها و موجودیت های منطقی دسته بندی می شوند که داده ها می توانند بصورت فایلی یا بلاکی در رسانه های ذخیره سازی ذخیره شود.
خوشه های مدیریت متا دیتا ها : در این بخش اطلاعات دامنه متا دیتا های ذخیره سازی داده ها قرار دارد و همکاری بین دامنه های مختلف را به منظور تعادل بار فراهم می کند.
پوشش ذخیره سازی: مجازی سازی و بازیابی خدمات و تغییر مسیر در این بخش صورت می گیرد
رابط سرویس: سیستم ذخیره سازی محاسبات ابری رابط یکنواخت برای مشتریان را فراهم می کند که بتواند توسط مشتریان دسترسی داشته باشند و از دسترسی مشتریان غیر قانونی جلوگیری کند. [27]
انواع ابر
ابر ها انواع مختلفی در شبکه محاسبات ابری وجود دارند که عبارتند از:
ابرکلاسیک : حمایت از داده ها بصورت کلاسیک که پیاده سازی آن آسان است اما امنیت جریان داده بین کاربر و ابر وجود ندارد.
ابر دوقلو: باعث بهینه سازی منابع گران می شود اما از حالت اول گران تر است.
ابرهای رمزدار: در این نوع ابر سیاست های حمایتی مناسبی برای داده ها در شبکه ابری عمومی وجود دارد اما بعضی از داده ها نباید رمزگذاری شود همچنین جنبه های امنیتی در سطح ماشین های مجازی در نظر گرفته نشده است.[5]
ابر عمومی: برای استفاده عمومی از منابعی نظیر وب و وب سرویس ها که بر روی اینترنت فراهم می شود.
ابر خصوصی: در سازمان ها بصورت داخلی مورد استفاده قرار می گیرد که اعضای یک سازمان می توانند از آن استفاده کنند و سایر کاربران خارجی اجازه دسترسی به این مدل از ابر را ندارند و مدیریت و نگه داری از آن بر عهده خود سازمان می باشد.
ابر هیبریدی: تلفیقی از ابرهای عمومی خصوصی و انجمنی می باشد نظیر IBM و juniper[8] و آمازون[1]
ابر انجمنی: تلفیقی از 3 نوع ابر هیبریدی و خصوصی و عمومی می باشد که توسط سازمان هایی برای یک هدف خاص (عمدتا امنیتی) ایجاد میشود.[8]
کاربردها
با رشد بی رویه استفاده از اینترنت و فشار زیاد بر منابع ذخیره سازی و امکانات محاسباتی , فراهم کنندگان سرویس ها را به فکر استفاده از کالاهای ارزان کامپیوتری به عنوان سخت افزار پایه و بستر ها انداخت که منجر به ایجاد 3 روش مبتنی برتکنولوژی اشتراکی شد که عبارتند از:
روش آمازون: شبکه محاسبات ابری آمازون مبتنی است بر مجازی سازی سرور ها که منجر به تولید EC2 و سرویس ذخیره سازی شی S3 و سرویس ذخیره سازی ساختار داده [6]Simple DB و [3]Simple queuening Service شده است.مبتنی بر درخواست بودن و ارزان بودن باعث شد آمازون به عنوان پیشرو در IAAS مطرح شود.[1[
روش گوگل: گوگل از روش SandBox استفاده می کند. در سال های 2003 تا 2006[7]مقاله های گوناگونی توسط گوگل منتشر شد که رئوس مطالب آن PAAS است در نهایت در سال 2008 ماشین کاربرد گوگل را با نام GAE به بازار ارائه کردند.
روش مایکروسافت: درسال 2008 microsoft Azure , را روانه بازار کرد که بخش WAH به عنوان زیرساخت اساسی برای ابر و بخش .net محلی برای کاربرها که از خدماتی نظیر SQL و ... استفاده کنند.
مجازی سازی سرورها با نرم افزار ها و برنامه های کنونی سازگار تر است و انعطاف پذیری بیشتری دارد اما SandBox محدودیت های برنامه نویسی دارد ولی دارای سربار کمتری می باشد [1[.
چالش ها
از جمله مشکلاتی که در شبکه های محاسبات ابری وجود دارد به شرح زیر می باشد:
1-شکست فروشنده 2- قطع سرویس [4] مثلا در نوامبر سال 2007 بمدت 3 ساعت سرویس های آمازون قطع شد یا در سال 2008 در سیستم ذخیره سازی GoogleAPP باگ هایی رخ داد که باعث قطع 6ساعتی آن شد یا در سال 2009 Microsoft Azure به مدت 22 ساعت بعلت بروز رسانی سیستم عامل قطع شد[1] 3- کارایی مانند تاخیر در شبکه 4- مجتمع سازی 5- فقدان استانداردهایی برای قابلیت حمل بودن در فروشندگان 6- امنیت 7-ارائه دهندگان بزرگ برای هکر ها مناسب تر است 8- مدیریت دسترسی ها 9- تفکیک داده ها 10-مالکیت داده ها 11- نگرانی های نظارتی [4]. 12- انتخاب و اختصاص منابع [3]. 13-ارتقا شبکه محاسبات ابری [9] .14- هزینه مدل شبکه ابری 15-مدل شارژ کردن 16-توافق در سطح سرویس 17- مهاجرت [20]. 18- مدیریت ابرهای ناهمگن 19- موقعیت داده ها 20-بازیابی داده ها 21- انتقال داده ها[21].22- تعادل بار 23- قابلیت همکاری 24 – تحمل پذیری خطا [22]
حال به دسته بندی این دغدغه ها می پردازیم که به 6 قسمت تقسیم می شوند که عبارتند از:
1-استاندارد های امن: بر سیاست هایی تاکید می کند که امنیت را تضمین می کنند
2-شبکه 3- دسترسی 4- زیر ساخت ها 5- داده ها 6- موارد دیگر
مطابق آماری که از 263 تن از مدیران IT توسط موسسه IDC گرفته شده است مشکلات امنیتی بیشترین دغدغه کاربران در استفاده از شبکه محاسبات ابری می باشد[23]
شکل 5- نرخ چالش ها ]23[
مشکلات امنیتی موجود در شبکه محاسبات ابری عبارتند از:
1-با توجه به مدل شبکه محاسبات ابری کنترل فیزیکی شبکه ابری قابل انجام نیست 2- شکستن قوانین توسط شرکت ها 3- خدمات ذخیره سازی که توسط یک فروشنده ابر ارائه می شود با فروشنده دیگر خدمات ناسازگار باشد 4- چه کسی رمزنگاری و رمزگشایی را کنترل می کند که منطقا این کار باید توسط مصرف کننده انجام گیرد 5- کاربران باید برنامه های خود را برای حفاظت بیشتر بروز رسانی کنند [23[ 6- حملات تروجان ها 7- حملات Flood که توسط داده های ساختگی اجرا می شود 8-امنیت مرور گر ها 9- امنیت سرویس دهنده ها 10- هویت و مدیریت دسترسی 11- امنیت در انتقال اطلاعات شامل رمز نگاری و پروتکل های SSL/TLS که در آنجا استفاده می شود[8] 12-امنیت در تقاضا که به مواردی از قبیل در دسترس بودن و محرمانگی و مجتمع سازی و کنترل و حسابرسی تقسیم می شود[24] [25]
در جدول های 1 و 2 مقایسه روش های مختلف پیاده سازی شبکه محاسبات ابری و پارامتر های مختلف آن بیان شده است[3]
جدول SEQ جدول \* ARABIC 1- جدول مقایسه بین ابرهای پیاده سازی
جدول SEQ جدول \* ARABIC 2- مخفف ها [3]
انتخاب منابع و زمانبندی
حال به بررسی یکی از چالش های مهم در شبکه محاسبات ابری می پردازیم
انتخاب منابع
تعریف پایه ای از انتخاب منابع عبارت است از تصمیم گیری درباره اینکه چه مقدار و در کجا و ودر چه زمان منابع مورد نیاز کاربر به آن اختصاص داده شود [28].اختصاص منابع بر 4 بخش تاکید دارد 1-مدل سازی منبع 2- ارائه رفتار منبع 3-نظارت بر منبع 4-انتخاب منبع [29]
متدهای موجود در اختصاص منابع عبارتند از:
چند عاملی: برای مدیریت پویای منابع مستقل استفاده می شود.میزان استفاده از دیتاسنتر ها به صورت پویا تنظیم می شود و میزان منابع برای کاربرد ها تعیین می شود این تنظیمات بصورت خودکار در دیتاسنتر ها و با کمترین دخالت انسان انجام می گیرد.
آگاه از توپولوژی: از موتورهای پیش بینی و شبیه ساز ها برای تخمین کارایی هنگام اختصاص دادن منابع استفاده می شود مثلا الگوریتم ژنتیک راه حل بهینه را در این زمینه انتخاب می کند[30]
مواردی که باید در هنگام اختصاص منابع به آنها توجه کرد
1-درگیری برای منابع: دوکاربر بخواهند در یک زمان مشخص به یک منبع دسترسی داشته باشند
2-کمبود منابع: منابع محدود و درخواست ها بالا باشد
3-تکه تکه شدن منابع 4-منابع بیش از نیاز 5-منابع کمتر از نیاز[31 ] 6-ویژگی های امنیتی 7-پارامترهای QOS در تخصیص منابع [32]
مشکلات موجود در اختصاص منابع به شرح زیر است :
1-ارائه خدمات خودکار: اینکه چگونه Qos را برای منابع سطح پایین نظیر CPU و حافظه باید تشخیص دهیم دشوار است 2-مهاجرت ماشین های مجازی در دیتا سنترهای مختلف 3-تثبیت سرورها که راهی برای افزایش بهره وری می باشد که با کمترین میزان انرژی مصرفی باشد 4-مدیریت انرژی که 53% از هزینه مصرفی دیتا سنتر ها مربوط به گرما و سرمای دیتا سنتر ها می باشد[28] 5-چون کاربر از سرور ها منابع را اجاره میکنند کاربر بر منابع هیچ کنترلی ندارد 6- هنگامی که کاربر بخواهد داده های بزرگ خود را از یک فراهم کننده سرویس به فراهم کننده دیگر انتقال دهد دچار مشکل می شود 7-از آنجا که سرور ها به یکدیگر متصل می باشند ممکن است دچار حملات هک و بد افزار ها شوند 8-بسیاری از ابزار های جانبی مانند پرینتر و اسکنر نیازمند نصب نرم افزار بصورت محلی می باشند[31].
زمان بندی
هدف از زمان بندی یافتن راهی برای اختصاص دادن مناسب کارها به منابع محدود است که در این میان باید یک یا چند هدف نیز بهینه شوند. [33]
پارامترهای که در این بخش باید در نظر گرفته شود به شرح زیر است:
عدالت: به این معنا می باشد که تمامی کارها بصورت مساوی از منابع سهم ببرند یا اینکه برا اساس وزنی که دارند منابع به آنها تعلق گیرد.
مصرف بهینه انرژی: خاموش کردن تعدادی از سرور ها و هاست ها به منظور کاهش انرژی هدر رفته در شبکه محاسبات ابری
طول بازه: هر چه طول بازه کوچکتر باشد کارها در زمان کمتری به پایان می رسند.
تعادل بار: بدین معنی است که کارها بر روی منابع تقسیم شود تا منابعی بیکار و منابعی پرکار نباشد
پارامتر های کیفیت خدمات : این پارامتر می تواند بخش های مختلفی را شامل شود نظیر هزینه های کاربر یا ایجاد ضرب الاجل برای کار یا زمان اجرا می تواند در نظر گرفته شود.
الگوریتم ژنتیک
محدوده کاري الگوريتم ژنتيک بسيار وسيع مي باشد و هر روز با پيشرفت روزافزون علوم و تکنولوژي استفاده از اين روش در بهينه سازي و حل مسائل بسيار گسترش يافته است. الگوريتم ژنتيک يکي از زير مجموعه هاي محاسبات تکامل يافته مي باشد که رابطه مستقيمي با مبحث هوش مصنوعي دارد در واقع الگوريتم ژنتيک يکي از زير مجموعه هاي هوش مصنوعي مي باشد. الگوريتم ژنتيک را مي توان يک روش جستجوي کلي ناميد که از قوانين تکامل بيولوژيک طبيعي تقليد مي کند .الگوريتم ژنتيک برروي يکسري از جواب هاي مساله به اميد بدست آوردن جوابهاي بهتر قانون بقاي بهترين را اعمال مي کند. درهر نسل به کمک فرآيند انتخابي متناسب با ارزش جواب ها و توليد مثل جواب هاي انتخاب شده به کمک عملگرهايي که از ژنتيک طبيعي تقليد شده اند ، تقريب هاي بهتري از جواب نهايي بدست مي آيد. اين فرايند باعث مي شود که نسلهاي جديد با شرايط مساله سازگارتر باشد. حساب تکاملي ,براي اولين بار در سال 1960 توسط آقاي ريچنبرگ ارائه شد که تحقيق وي در مورد استراتژي تکامل بود.بعدها نظريه او توسط محققان زيادي مورد بررسي قرار گرفت تا اينکه الگوريتم ژنتيک (GA ) توسط جان هولند(John Holland ) و در سال 1975 در دانشگاه ميشيگان ارائه شد.
در سال 1992 نيز جان کوزا (John Koza ) از الگوريتم ژنتيک (GA ) براي حل و بهينه سازي مسائل مهندسي پيشرفته استفاده کرد و توانست براي اولين بار روند الگوريتم ژنتيک (GA ) را به زبان کامپيوتر در آورد و براي آن يک زبان برنامه نويسي ابداع کندکه به اين روش برنامه نويسي ,برنامه نويسي ژنتيک (GP ) گويندو نرم افزاري که توسط وي ابداع گرديد به نرم افزار LISP مشهور است که هم اکنون نيز اين نرم افزار کاربرد زيادي در حل و بهينه سازي مسائل مهندسي پيدا کرده است .به طور كلي الگوريتمهاي ژنتيكي از اجزاء زير تشكيل ميشوند:
کروموزوم
در الگوريتمهاي ژنتيكي, هر كروموزوم نشان دهنده يك نقطه در فضاي جستجو و يك راهحل ممكن براي مسئله مورد نظر است. خود كروموزومها (راه حلها) از تعداد ثابتي ژن (متغير) تشكيل ميشوند. براي نمايش كروموزومها, معمولاً از كدگذاريهاي دودويي (رشتههاي بيتي) استفاده ميشود ولی اگر تعداد عناصر برای حضور در کرموزوم زیاد باشد برای جلوگیری از افزایش فضای اشغالی توسط هر کروموزوم عدد مورد نظر را در داخل کروموزوم قرار می دهیم.
جمعیت
مجموعهاي از كروموزومها يك جمعيت را تشكيل ميدهند. با تاثير عملگرهاي ژنتيكي بر روي هر جمعيت, جمعيت جديدي با همان تعداد كروموزوم تشكيل ميشود.
تابع برازندگی
به منظور حل هر مسئله با استفاده از الگوريتمهاي ژنتيكي ، ابتدا بايد يك تابع برازندگي براي آن مسئله ابداع شود. براي هر كروموزوم ، اين تابع عددي غير منفي را برميگرداند كه نشان دهنده شايستگي يا توانايي فردي آن كروموزوم است.
در الگوريتمهاي ژنتيكي ، در طي مرحله توليد مثل ازعملگرهاي ژنتيكي استفاده ميشود. با تاثير اين عملگرها بر روي يك جمعيت ، نسل بعدي آن جمعيت توليد ميشود. عملگرهاي انتخاب و آميزش و جهش معمولاً بيشترين كاربرد را در الگوريتمهاي ژنتيكي دارند.
عملگر انتخاب
این عملگر از بين كروموزومهاي موجود در يك جمعيت ، تعدادي كروموزوم را براي توليد مثل انتخاب ميكند. كروموزومهاي برازندهتر شانس بيشتري دارند تا براي توليد مثل انتخاب شوند.
انتخاب نخبگان : مناسبترین عضو هر اجتماع انتخاب میشود. با توجه به مقدار شایستگی که از تابع ارزیاب دریافت کرده است.
عملگر آمیزش
در جریان عمل تلفیق به صورت اتفاقی بخشهایی از کروموزوم ها با یکدیگر تعویض می شوند. این موضوع باعث می شود که فرزندان ترکیبی از خصوصیات والدین خود را به همراه داشته باشند و دقیقاً مشابه یکی از والدین نباشند.هدف ، تولید فرزند جدید می باشد به این امید که خصوصیات خوب دو موجود در فرزندشان جمع شده و یک موجود بهتری را تولید کند.روش کار به صورت زیر است:
بصورت تصادفی یک نقطه از کروموزوم را انتخاب می کنیم .ژن های مابعد آن نقطه از کروموزوم ها را جابجا می کنیم.اگر عملیات تلفیق را در یک نقطه انجام دهیم به آن تلفیق تک نقطه ای می گویند. تلفیق بدين صورت انجام مي گيرد که حاصل ترکيب کروموزومهاي پدر و مادر مي باشد.روش توليد مثل نيز بدين صورت است که ابتدا بصورت تصادفي ,نقطه اي که قرار است توليد مثل از آنجا آغاز گردد ، انتخاب مي گردد.سپس اعداد بعد از آن به ترتيب از بيت هاي کروموزومهاي پدر و مادر قرار مي گيرد که در شکل 6 نيز نشان داده شده است.
شکل 6 - عملگر تلفیق
همان طور که در شکل 6 می بینید یک نقطه از هر کدام از والدین انتخاب شده و جابجایی در بین والدین ایجاد شده و فرزند ساخته می شود.
روش ادغام دو نقطه ای((Two-point CrossOver : همانطور که در شکل 7 می بینید در این روش دو مکان را به صورت تصادفی انتخاب کرده و مقادیر بین این دو نقطه را جابجا می کنیم.
شکل 7- تلفیق دو نقطه ای
می توانیم این عملیات را در چند نقطه انجام دهیم ، که به آن بازترکیبی چند نقطه ای می گویند.
عملگر جهش
پس از اتمام عمل آميزش, عملگر جهش بر روي كروموزومها اثر داده ميشود. اين عملگر يك ژن از يك كروموزوم را به طور تصادفي انتخاب نموده و سپس محتواي آن ژن را تغيير ميدهد. اگر ژن از جنس اعداد دودويي باشد, آن را به وارونش تبديل ميكند و چنانچه متعلق به يك مجموعه باشد, مقدار يا عنصر ديگري از آن مجموعه را به جاي آن ژن قرار ميدهد. در شكل 8 چگونگي جهش يافتن سومین ژن يك كروموزوم نشان داده شده است.پس از اتمام عمل جهش ، كروموزومهاي توليد شده به عنوان نسل جديد شناخته شده و براي دور بعد اجراي الگوريتم ارسال ميشوند.
شکل 8- عملگر جهش
در شکل 9 گردش کار الگوریتم ژنتیک ارائه شده است ابتدا جمعیت اولیه از کرموزوم ها تولید می شود حال برای تک تک کروموزوم ها تابع شایستگی محاسبه و تعیین می شود در این مرحله اگر کروموزمی به میزان شایستگی مورد نظر ما رسیده باشد الگوریتم متوقف شده و جواب برگردانده میشود در غیر این صورت با استفاده از انتخاب به روش نخبه سالار کروموزوم هایی که دارای مقدار مناسب تری باشند انتخاب شده و فرزندان بوجود می آیند و جهش در آنها رخ می دهد حال دوباره مقدار شایستگی محاسبه می شود در صورت مناسب بودن به اتمام کار میرسم وگرنه به ساخت فرزندان جدید می پردازیم و در نهایت اگر شایستگی هیچ کروموزوم به مقدار مورد نظر ما نرسد با توجه به تعداد تکرارهایی که برای الگوریتم در نظر گرفته ایم به اتمام الگوریتم می رسیم.
جمعيت اوليهارزيابی جوابها آيا جواب مورد نظر حاصل شده؟پايانانتخابتلفیقبلهجهشT=T+1T=0خيرشروعجمعيت اوليهارزيابی جوابها آيا جواب مورد نظر حاصل شده؟پايانانتخابتلفیقبلهجهشT=T+1T=0خيرشروع
شکل 9-گردش کار الگوریتم ژنتیک
شبکه عصبی
شبکه های عصبی مصنوعی (Artificial Neural Network) الگویی برای پردازش اطلاعات می باشند که با تقلید از شبکه های عصبی بیولوژیکی مثل مغز انسان ساخته شده اند.عنصر کلیدی این الگو ساختار جدید سیستم پردازش اطلاعات آن می باشد و از تعداد زیادی عناصر (نرون) با ارتباطات قوی داخلی که هماهنگ با هم برای حل مسائل مخصوص کار می کنند ، تشکیل شده اند. شبکه های عصبی مصنوعی با پردازش روی داده های تجربی، دانش یا قانون نهفته در ورای داده ها را به ساختار شبکه منتقل می کند که به این عمل یادگیری می گویند. اصولاً توانایی یادگیری مهمترین ویژگی یک سیستم هوشمند است. سیستمی که بتواند یاد بگیرد منعطف تر است وساده تر برنامه ریزی میشود، بنابراین بهتر میتواند در مورد مسایل و معادلات جدید پاسخگو باشد. انسانها از زمانهای بسیار دور سعی بر آن داشتند که بیوفیزیولوژی مغز را دریابند چون همواره مسئله هوشمندی انسان و قابلیت یادگیری ،تعمیم،خلاقیت،انعطاف پذیری و پردازش موازی در مغز برای بشر جالب بوده و بکارگیری این قابلیتها در ماشینها بسیار مطلوب می نمود.روشهای الگوریتمیک برای پیاده سازی این خصایص در ماشینها مناسب نمی باشند در نتیجه می بایست روشها مبتنی بر همان مدلهای بیولوژیکی باشد.ANN درست مثل انسانها با استفاده از مثالها آموزش می بیند ; همانطور که یک بچه با دیدن انواع مختلف از یک حیوان قادر به تشخیص آن می باشد. از ویژگی های شبکه عصبی می توان به موارد زیر اشاره کرد:
قابلیت یادگیری و تطبیق پذیری : این ویژگی باعث آن شده است که از شبکه عصبی با یک بار آموزش بتوان بارها استفاده کرد.
قابلیت تعمیم پذیری: شبکه عصبی این قابلیت را دارد که گسترش دارد و این کار بدین شکل انجام میگیرد که باید شبکه را با مقیاس جدید آموزش بدهیم
پردازش موازی : قابلیت موازی سازی از ویژگی های کلیدی شبکه عصبی می باشد که باعث افزایش سرعت اجرای شبکه چه در بخش تمرین و چه در بخش آزمایش می شود.
مقاوم بودن: از این شبکه حتی با وجود داده های نویز دار میتوان انتظار نتیجه مطلوب را داشت و این ویژگی با توجه به داده ها در دنیای واقعی بسیار مورد استفاده قرار میگیرد.
پیشینه تحقیق
در این بخش به بررسی کارهای مرتبط در زمینه زمانبندی و اختصاص منابع در محیط های محاسبات ابری می پردازیم.
کارهای مرتبط در محیط محاسبات ابری
آقای ژواو سیلوا و همکارانش [35] الگوریتمی را ارائه دادند که در این الگوریتم ابتدا زمان میانگین لازم برای یک کار تا انتهای آن را محاسبه می کند این مقدار در آینده برای یافتن تعداد میزبان ها ,مورد استفاده قرار می گیرد سپس پیش بینی میکند که میزبان ها توانایی انجام چه تعداد کار را دارند.سپس تعداد کارهایی که موجود است از تعداد کارهایی که میزبان ها می توانند انجام دهند کسر شده و با ضرب شدن در فاکتور ساخت تصحیح می شود.اگر کارها بصورت منظم وارد شوند این الگوریتم پاسخ خوبی نمی دهد میانگین زمان پاسخگویی بالا می رود و مقدار متوسط پاسخگویی نزدیک به کارهای پایانی است و در اواخر کارها میزبان های جدید باید اختصاص داده شود. برای حل این مشکل از انتخاب تصادفی کارها استفاده می کنند ولی باز هم مشکل وجود دارد آن اینکه اگر کارهای ابتدایی بزرگ باشد تعداد زیادی از میزبان ها در ابتدا مورد استفاده قرار می گیرد برای همین از فاکتور ساخت استفاده می کنند.
آقای لی فنگ آی و همکارانش [36] الگوریتمی اکتشافی ارائه دادند که برای ترکیب وب سرویس ها در شبکه محاسبات ابری استفاده می شود. ورودی مجموعه ای از ترکیب وب سرویس ها است. محدودیت هایی را که در ورودی ها اعمال کردند عبارتند از : 1-تقدم و تاخر مورد نیاز در اجرای وب سرویس ها رعایت شود 2- محدودیت های منابع در نظر گرفته شود 3- محدودیت در موعدها برای وب سرویس ها رعایت شود
رابطه2-1 به عنوان تابع شایستگی در این مقاله بیان شده است
Fitness =FMaxCostFobjX if VX≤11V(X) Otherwise (1-2 )
i=1nVX (2-2)
ViX=Fi,n1di if Fi,n>di1 Otherwise (3-2)
اگر V(X)≤1 باشد یعنی محدودیت ها نقض نشده است ولی اگر V(X)>1 باشد یعنی تعدادی از محدودیت ها نقض شده است. FMaxCostبدترین حالت Fobj می باشد که حداکثر هزینه کل در تمام افراد موجود در نسل فعلی است مقدار شایستگی در بازه 1 تا بی نهایت قرار دارد. Fi,n1زمان به پایان رسیدن وب سرویس است و di مهلت تعیین شده برای آن وب سرویس می باشد.معادلات 1 تا 3 تضمین می کند که تمامی راه حل های امکان پذیر در یک نسل بهتر از تمامی راه حل های غیر ممکن در نسل است.راه حل های غیر ممکن محدودیت های بیشتری را نقض میکنند. در این الگوریتم عملگر تقاطع0.15 و عملگر جهش 0.85 در نظر گرفته شده است یکی از مشکلات آن این است که بحثی درباره اینکه کارها بصورت همزمان وارد شوند ارائه نداده است
3-آقای جین تیسانگ تیسای و همکارانش[37] الگوریتمی ارائه دادند که هر فرد در آن به صورت Xi=[(2,R1),(1,R3),(3,R2),(2,R4),(1,R3),(1,R2),(3,R4),(2,R1),(3,R2)] نشان داده می شود که 1و2و3 نشان دهنده کار و R هم نشان دهنده منبع می باشد و هر یک از کارها دارای چند زیر کار می باشند مثلا کار 1 دارای 3 زیر کار می باشد.برای عملگر جهش ابتدا بهترین فرد از نسل را انتخاب نموده سپس با استفاده از فاکتور تتا , عمل جهش به مقادیر مربوط به فرد برگزیده توسط سایر افراد نسل انجام می گیرد فاکتور تتا بدین گونه است که مجموعه ای از p عضو ساخته می شود که p شماره کارها می باشد سپس این مجموعه با استفاده از متد تاگوچی به 2 گروه مجزا تقسیم می شوند اگر کارهای هر فرد در گروه اول قرار می گرفتند آنگاه همان زوج مرتب در فرزندان تولید می شوند وگرنه کار فرد برتر در نسل بعدی قرار می گیرد.عملگر تقاطع آنها بدین شکل است که برای هر زوج مرتب فرزند یک عدد تصادفی بین 0 و 1 ایجاد می شود اگر مقدار تولید شده کوچکتر از مقدار مورد نظر بود که در اینجا 0.8 است از والد جهش یافته استفاده می شود وگرنه از والد دیگر انتخاب می شود.
آقای جیانهواگوو وهمکارانش [38] الگوریتم ژنتیکی را برای زمانبندی منابع مطرح کردند.مرحله اول که مقدار دهی اولیه می باشد آنها از متد درخت پوشا استفاده می کنند که این درخت پوشا توسط مجموعه ای از ماشین های فیزیکی و ماشین های مجازی ساخته می شود که ماشین های مجازی نود های برگ هستند .از قوانین درخت می توان به این نکته اشاره کرد که نود ها با توجه به شرایط تعادل بار ملاقات می شوند.تابع شایستگی در این مقاله بصورت رابطه 2-4 محاسبه می شود
fS,T= 1 A+b× fh (4-2)
fh=φσiS,T-σ0 , φX=1 X≤0r X>0 (5-2)
A و B ضرایب وزنی هستند و در رابطه 2-5 σ0 محدودیت های مجاز برای تغییر دما در سیستم تعادل بار است که می تواند از پیش تعریف شده باشد. φX تابع جریمه است که وقتی که فرد محدودیت ها را رعایت کند برابر 1 وقتی رعایت نکند برابر 0 قرار می گیرد. هدف انتخاب افرادی با میزان شایستگی بالا است.احتمال انتخاب هر کدام از افراد با رابطه 2-6 بدست می آید
pis=fi(S,T)i=0Dfi(S,T) (6-2 )
fi(S,T) شایستگی عنصر i در جمعیت می باشد و D اندازه جمعیت می باشد.این رابطه نشان می دهد که افرادی با شایستگی بالاتر به احتمال بیشتری انتخاب می شود.استراتژی انتخاب آن روش چرخشی می باشد بدین صورت که فردی که شایستگی بالاتر قطعه بزرگتری را در اختیار می گیرد عملگر تقاطع به صورت زیر عمل می کند 1- دو تا از افراد بر اساس انتخاب چرخشی انتخاب می شود 2- این دو درخت والد با هم ترکیب می شود و تمام نود های برگ دو والد در آن قرار می گیرند 3-برای نود های برگ متفاوت ابتدا احتمال انتخاب آن ها محاسبه می شود که مطابق است بر باری که برای هر ماشین مجازی وجود دارد بعد Pگره دارای کمترین بار به عنوان برگ توزیع می شوند تا زمانی که توزیع کامل شود4-این مراحل تا زمانی که تعداد افراد مورد نیاز ساخته شود تکرار می شود.عملگر جهش به شکل رابطه 2-7 بیان شده است
Pm=exp-1.5×0.5 tD×M (7-2 )
tتعداد تولید نسل و D اندازه جمعیت و Mتعداد ماشین های مجازی می باشد.
آقای ژوونگ نیژنگ و همکارانش [39] الگوریتم ژنتیک موازی را ارائه نمودند.نمایش کروموزوم به صورت (8 و 5 و2) نمایش داده می شود که IR اول به نود شماره 2 نسبت داده می شود و IR دوم به نود شماره 5 و IR سوم به نود شماره 8 اختصاص داده می شود.IR ها دارای برچسب شماره و ویژگی های سیستم مورد نیاز(cpu و حافظه و هارد دیسک) می باشند . مرحله بعد برای هر نود محاسباتی اندازه منابع بیکار آن محاسبه می شود . پارامترهایی که برای مهاجرت افراد از یک بخش به بخش دیگر چک می شوند عبارتند از: 1- توپولوژی 2- نرخ مهاجرت 3- طرح مهاجرت که نشان می دهد کدام افراد باید مهاجرت کنند 4-فاصله بین مهاجرت که نشان دهنده فرکانس مهاجرت است.محدودیت هایی که در نظر گرفته شده یک کار در هر لحظه زمانبندی می شود و همه نود ها در زمان بندی ظاهر می شود بجز نود هایی که منابع بیکار نداشته باشد.تابع شایستگی بصورت رابطه 2-8 در نظر گرفته شده است
Fitness=j=1mi=1nk=13(pk+1000)Xij (8-2)
i=1,2,…,n , j=1,2,…,m
Xij=0 if ith IR is not Assigned to the jth node 1 if ith IR is Assigned to the jth node
Pk= a if vmknodek=1b if vmknodek<1c if vmknodek>1
Kبرچسبی است که اگر برابر با 1 باشد نشان دهنده CPU است اگر 2 باشد نشان دهنده ظرفیت حافظه و اگر 3 باشد نشان دهنده میزان ظرفیت هارد می باشد.مقدار Pk بر اساس vmknodek در رابطه 2-8 بدست می آید که اگر برابر 1 باشد قرار دادن مناسب است که بیشترین استفاده از منابع را می توان انتظار داشت اگر کمتر از 1 باشد این راه حل تنها بخشی از یک راه حل بهینه می باشد که نمی تواند بیشترین بهره وری از منابع را داشته باشد در هر حالت ذکر شده عددی مثبت به Pk تعلق می گیرد و اگر این مقدار بزرگتر از 1 بود راه حل مطلقا غیر متناسب است. بر اساس رابطه 2-8 Pk, با 1000 جمع می شود تا مقدار شایستگی آن مثبت است.
خانم شامیندر کااوور و همکارانش [40] الگوریتم ژنتیکی ارائه دادند. نمایش کرموزوم به صورت شکل 10 است که برای هر پردازنده سلسله ای از کارها به آن اختصاص داده می شود.
شکل 10- نمایش کروموزوم ]40[
از تقاطع 2 نقطه ای در آن استفاده شده است و عملگر جهش این الگوریتم از روش جایگزینی ساده استفاده کرده است تابع شایستگی آن بدین صورت است که افرادی برای نسل بعد انتخاب می شود که طول بازه کمتر از استاندارد اعمال شده برای الگوریتم ژنتیک باشد و شرایط انتهایی برای آن تعداد مشخصی از تولید می باشد که در اینجا 30 نسل تعیین شده است.
آقای چنگ هونگژاو و همکارانش [41] با ارائه الگوریتم ژنتیکی برای زمانبندی کارهای مستقل در محیط محاسبات ابری به دنبال راهکاری بهینه می باشند در این الگوریستم تابعی برای جریمه نیز در نظر گرفته شده است.کروموزوم آن به شکل 11 نمایش داده شده است
شکل 11- نمایش کروموزوم[41]
TA نشان دهنده کار و P نشان دهنده واحد پردازش است تابع شایستگی آن بصورت رابطه 2-9 نشان داده شده است .
F=minmaxck+ i=1nf1(di-Ti) ,k∈1,2,…,m (9-2)
ck نشان دهنده زمان پایان کار برای k واحد پردازش می باشد و تابع f برای جریمه در نظر گرفته شده که به شکل رابطه 2-10 است:
f1x= -wLx , x <0wex , x> 0 (10-2)
di نشان دهنده موعد مقرر وTi نشان دهنده زمان واقعی پایان کار می باشد وwL هزینه تاخیر و weهزینه ذخیره سازی برای کارها می باشد.عملگر تقاطع بصورت رابطه 2-11 انجام میگیرد:
C=f×C1 , f ≤ -f C1-(C1-C2)×(f- -f)fmax- -f f > -f (11-2)
فرض شده است که نرخ تقاطع برای افراد بد C1 و برای افراد خوب C2 می باشد.عملگر جهش نیز بر اساس رابطه 2-12 بدست می آید.
M=f×M1 f ≤ -f M1-M1-M2×f- -f fmax- -f f > -f (12-2)
که در این حالت عددی تصادفی انتخاب می شود که ژن مورد نظر برای جهش را تعیین می کند برای انتخاب محل ژن عددی تصادفی تعیین می شود و سپس تابع شایستگی برای آن کروموزوم بدست می آید که در صورت داشتن شایستگی بالاتر نسبت به کروموزوم قبلی کروموزوم جدید ذخیره سازی می شود.شرط پایان آن نیز تولید 20 نسل متوالی بدون تغییر می باشد.معمولا کارهایی که دارای توابع جریمه می باشند باعث سربار اضافی در اجرای الگوریتم می باشد که این برای ما مطلوب نیست.
آقای گان گواوو نینگ همکارانش [42] الگوریتم گرمادهی ژنتیکی ارائه دادند . کروموزم در این الگوریتم به شکل 12 در نظر گرفته شده است:
شکل 12- نمایش کروموزوم [42]
که VMi تعداد منابعی است که برای اجرای کار Ti مورد استفاده قرار گرفته است. تابع شایستگی در آن بصورت رابطه 2-13 تعیین شده است
Tj= i=1mwij×Qij (13-2)
wij نشان دهنده وزن پارامتر های کنترل کیفیت می باشد و Qij نشان دهنده مقدار مورد انتظار پارامترهای کنترل کیفیت می باشد Tj تابع جامع ارزیابی است که وظیفه آن ارزیابی در زمان اجرای کار j بااستفاده منابع موجود است m تعداد پارامترها را مشخص می کند و n انواع منابع را نشان می دهد. از روش انتخاب متناسب در این الگوریتم استفاده شده است بدین صورت که با توجه به اندازه شایستگی افراد در یک نسل به آنها اولویتی داده می شود .عملگر تقاطع آن بصورت تک نقطه ای تعیین شده است. عملگر جهش به این شکل است که مجموعه ای تصادفی از یک یا چند مقدار کوچک در ژن انتخاب شده و با احتمال pm جهش در آن صورت میگیرد.مرحله گرمادهی در این الگوریتم پس از انتخاب و تقاطع و جهش انجام میگیرد که توانایی جستجوی محلی را بهبود می بخشد که در 3 مرحله انجام میگیرد 1- مقدار اولیه ای برای x0 بعد از انتخاب و تقاطع و جهش تعیین می شود 2- یک راه حل امکان پذیر X1 تحت دمای TK ساخته می شود x1 راه حل همسایه x0 می باشد و اختلاف بین آنها از طریق رابطه 2-14 محاسبه می شود.
∆f=fx1-fx0 (14-2)
f(x0) و fx1 توابع شایستگی آنها می باشند.با احتمال min1,exp-∆fTk>random [0,1] راه حل جدید وارد می شود.اگر راه حل به وضعیت متعادل در دما برسد می تواند به حالت 2 یا 3 برگردد 3-دما می تواند با این روش کاهش پیدا کند رابطه 2-15 تابع کاهش دما در این الگوریتم می باشد:
Tk+1=aTk a=0.95 (15-2)
شرط پایانی نیز بدین شکل تعریف می شود که شایستگی یک نسل به مقدار بیشینه خود برسد.استفاده از تلفیق تک نقطه ای نسبت به تلفیق دو نقطه ای ضعیف تر عمل می کند و روند همگرایی به جواب بهینه را کاهش می دهد.
آقای مزماز و همکارانش ]43[ الگوریتم موازی ارائه دادند و از الگوریتم ژنتیک هیبریدی برای یافتن مجموعه بهینه استفاده نمودند آنها ازمدل موازی جزیره ای به منظور مهاجرت کارها استفاده می کنند.طول کروموزوم در این روش 20 در نظر گرفته شده است و نرخ جهش آن 35/0 تعیین شده است
تابع شایستگی این روش در رابطه 2-16 نشان داده شده است:
E=i=0nACV2f.wi* (16-2)
A تعداد سوییچ کردن در یک سیکل زمان است C ظرفیت مجموع بار است و V ولتاژ تغدیه می باشد f تعداد تکرار می باشد و wi* میزان هزینه محاسباتی برای کار i می باشد.
آقای موکانو و همکارانش ]44[ الگوریتمی ژنتیکی ارائه دادند که در آن تابع شایسگی بصورت رابطه2-17 در نظر گرفته شده است:
AQU=Queue_utilization(Qi)N 17-2
Queue_utilization(Qi)= input_size(Qi)max_span
input_size(Qi)=input_sizej
هدف در این الگوریتم نزدیک شدن AQU به سمت عدد 1 می باشد.برای انتخاب کروموزم ها از روش جرخه رولت استفاده شده است و همچنین از نخبه سالاری در انتخاب کروموزوم ها بهره برده شده است.عملگر تقاطع 0.6 تعیین شده است و عملگر جهش 0.05 در نظر گرفته شده است بیشینه تعداد تولید کروموزوم 20 و طول کروموزوم نیز 20 درنظر گرفته شده است.
کارهای مرتبط در سایر محیط های توزیع شده
آقای نیجونگ لی همکارانش[45] الگوریتمی را ارائه داده اند که باعث بهبود عملکرد جستجو در مشکل اختصاص منابع می باشد. 2 فرض در آن در نظر گرفته شده است 1- R منبع وجود دارد که همه منابع باید به فعالیت ها اختصاص داده شود 2- احتمال اختصاص منبع j به فعالیت i بصورتpij نشان داده شود.تابع هدف که باید مینیمم شود بصورت رابطه 2-18 نمایش داده می شود:
Z=i=1Acostij=1R(1-pij)xij (18-2)
xij مقداری بولین است که وقتی برابر با 1 است یعنی فعالیت j ام به منبع i ام اختصاص داده شده است و costi تابع جریمه می باشد.الگوریتم ارائه شده ادغامی از الگوریتم ژنتیک و الگوریتم مورچگان است برای جلوگیری از همگرایی زودرس و بدست آوردن راه حل های مناسب از الگوریتم ژنتیک و برای انجام تنظیمات در فضای جستجو برای نتیجه بهتر از الگوریتم مورچگان استفاده می کند.کروموزوم ها بصورت آرایه ای از فعالیت ها نشان داده شده است که مقدار i ام از ژن j نشان می دهد که منبع j به فعالیت i اختصاص داده شده است.2 رویکرد برای بالا بردن توانایی جستجو ارائه شده است 1- استفاده از عملگر تقاطع برای حفظ نخبگان به این صورت که فرزندان با ژن های احتمالا خوب والدین آنها ساخته شوند ژن خوب یعنی منبع j به فعالیت i با بهترین مقدار cost(i*)pij در تمام فعالیت ها اختصاص داده شود 2 - قرار دادن اکتشاف بعد از حلقه اصلی الگوریتم ژنتیک است به این صورت که کروموزوم ها بر اساس cost(i*)pij بصورت نزولی مرتب شده و منبع j به بهترین مقدار اختصاص داده می شود.منابعی که هنوز در کروموزوم ها قرار نگرفته اند بصورت حریصانه با بهترین مقدار cost(i*)pijانتخاب شده و در xij مقداری بولین است که وقتی برابر با 1 است یعنی فعالیت j ام به منبع i ام اختصاص داده شده است و costi تابع جریمه می باشد..بعد از الگوریتم ژنتیک نوبت استفاده از الگوریتم مورچگان است. 3 مرحله اصلی در آن وجود دارد 1- تولید عامل ها 2- فعایت عامل ها 3-واپاشی فرمون. بهترین راه حل از دنباله فرمون بروز رسانی شده استفاده می کند
آقای آندرو جی پیج و همکارانش [46] الگوریتم ژنیتک در محیط توزیع شده ارائه دادند. هرکرموزوم در این مدل بصورت شکل 13 نمایش داده می شود:
شکل 13- نمایش کروموزوم [44]
هر عدد نشان دهنده یک شناسه واحد برای یک کار است و با عدد 1- صف هر پردازنده محدود می شود تابع شایستگی بصورت رابطه2-19 تعیین می شود
Fx=1 Lx=01Lx otherwise (19-2)
Lx=maxi=1mi=1nyAij+Bij-mini=1mi=1nyAij+Bij
ny: تعداد کار های موجود , A :زمان پردازش هر کار , B: سربار ارتباطی کارها , x: یک زمانبندی برای جمعیت است و مقدار شایستگی برای کرموزوم x را با Fx نشان می دهند که مقدار آن بین 0 و 1 است هر چه مقدار بزرگتر باشد زمانبندی مناسب تر می باشد.عملگر جهش بدین صورت پیاده سازی شده است که اگر طول بازه بعد از 10 نسل بهبود نیافت نرخ جهش افزایش می یابد و در زمانی که طول بازه رو به بهبود است نرخ جهش کاهش می یابد.تابع انتخاب بر مبنای چرخه رولت می باشد شرایط توقف آن نیز به این شرح است 1- تعداد تولید نسل بیش از تعداد تعیین شده باشد 2- مقدار بهترین جواب پس از تعداد مشخصی از نسل ها تغییر نکند.
آقای یوان شودای و همکارش [47] الگوریتم ژنتیکی برای سرویس ها در شبکه گرید ارائه دادند.کروموزوم به صورت مجموعه ای از مقادیر دودویی تشکیل شده است که Yij=1بدین معنا است که منبعRj به نود Gi اختصاص داده شده است.تابع شایستگی در آن بصورت رابطه 2-20 تعریف می شود:
Fitness=-Aln(Rsσ) (20-2)
Aمقدار ثابت مثبتی می باشد Rsσ قابلیت اطمینان سرویس در شبکه گرید می باشد که Rsσ بین 0 تا 1 قرار دارد و از تابع انتخاب چرخ رولت برای انتخاب کروموزوم ها استفاده شده است.عملگر جهش بین 0.5% تا 5% در نظر گرفته شده است .جمعیت در نظر گرفته شده بین 20تا30 کروموزوم است و تعداد تولید نسل نیز در آن بین 100تا 200 در نظر گرفته شده است.
آقای یانگ گاوو وهمکارانش [48] برای زمان بندی در محیط گرید الگوریتمی را ارائه دادند.کروموزوم بصورت مقابل نمایش داده می شود p1 = (n1, n2, . . , nm-1) که n تعداد کارهای موجود در شبکه و m تعداد نود ها می باشد که m < n می باشد. تابع شایستگی آن نیز بصورت رابطه 2-21 در نظر گرفته شده است.
ّFitnesspj=1F(ni) (21-2)
Fni=i=1Mnifi(ni)N , 0≤ni≤Nimax , i=1Mni=N (22-2)
j : از 1 تا p که p برابر اندازه جمعیت می باشد دررابطه 2-22 fi(ni) نتایج عملی بدست آمده از اجرای تعداد مختلفی از کارها در هر نود را بیان می کند Nimax بیشترین تعداد کاری است که نود i می تواند انجام دهد ni تعداد کارهای در حال اجرای نود i را نشان می دهد.برای انتخاب کرموزوم ها از روش چرخ رولت استفاده کرده است و برای بخش تقاطع آن از رابطه 2-23 استفاده می کند که P1 و P2 کروموزوم های والد انتخاب شده هستند.
O1=P1+ γ(P1-P2) , γϵ-0.5 , 0.5O2=P1+ γ(P1-P2) , γϵ-0.5 , 0.5 (23-2)
و تابع جهش آن بصورت رابطه 2-24 تعریف شده است :
O=P+ δNM , δϵ-0.2,0.2 (24-2)
خانم قارونی فرد و همکارانشان [49] الگوریتم ژنتیک با استفاده از تولید هرج و مرجی را ارائه دادند.در ابتدای الگوریتم از ویژگی متغیر های هرج و مرج برای تعیین زیر نسل ها استفاده می کنند تا از همگرایی زودرس افراد در زیر نسل ها جلوگیری شود و سپس با استفاده از الگوریتم ژنتیک به سمت جواب نهایی حرکت می کند.در اولین مرحله از این الگوریتم ابتدا با استفاده از متغیرهایی که باعث ایجاد هرج و مرج در تولید نسل اولیه می شود جمعیت اولیه ای با مقادیر متفاوت و از بازه های مختلف انتخاب می شود. در این مرحله تابع شایستگی برای 20 نفر ارزیابی می شود تابع شایستگی بصورت رابطه 2-25 تعیین می شود:
FI=FcostI+ FtimeI , if FcostI>1 or FtimeI>1 c(I)maxCost×t(I)maxTime otherwise (25-2)
FcostI=cIB
FtimeI=t(I) D
c(I) مجموع هزینه اجرای کار و هزینه تبادل داده های i است و B بودجه جریان کار است t(I) زمان اتمام I است و D مهلت برای جریان کاری می باشد.برای عملگر تقاطع نیز از روش 2 نقطه ای استفاده شده است .عملگر جهش نیز با احتمال 0.05 در نظر گرفته شده است .
آقای جیه ژوو و همکارانش [50] الگوریتمی ارائه داده اند که در آن محدودیت الگوریتم وجود منابع قبضه پذیر می باشد. در این الگوریتم کروموزوم ها بر اساس زنجیر قطعه ها از منابع تشکیل شده اند میانگین استفاده از منبع توسط یک قطعه بصورت رابطه 2-26 تعریف می شود :
U=1≤k≤K(Rk-ak)RkK (26-2)
که Rk تعداد کل منابع k وak تعداد منابع در دسترس k و k هم تعداد انواع منابع تعریف می شود توالی فعالیتها به عنوانkey در نظر گرفته می شود و میانگین استفاده ی منابع از قطعه به عنوان value ژن در نظر گرفته می شود.بخشی از ژن ها بصورت G =
نشان داده می شود.
تابع شایستگی که در این الگوریتم در نظر گرفته شده است بصورت رابطه 2-27 است:
disf=k=1K(1-akRk)212 (27-2)
Cfitness=f=1Ndisf×Fi.l (28 -2)
در رابطه 2-28 ، Fi.l اندازه قطعه Fi را نشان می دهد و هرچه مقدار بالاتر باشد کروموزوم پتاسیل بهبود بیشتری دارد.بعضی از بهترین افراد به صورت مستقیم در نسل های بعدی کپی می شود این مجموعه از بهترین افراد با stop نمایش داده می شود برای ایجاد نسل بعد 2 کروموزوم بصورت تصادفی انتخاب می شود که یکی از آنها از مجموعه stop باشد و دیگری از کل کروموزوم ها انتخاب می شود.
آقای مینارولی و همکارش]52[ الگوریتمی را ارائه کردند که هدف آنها برقراری تعادلی بین بهره وری سیستم و میزان هزینه مصرفی می باشد این الگوریتم در اختصاص منابع به ماشین های مجازی در نظر گرفته شده است.تابع سود در این الگوریتم که بعنوان تابع شایسگی در الگوریتم ژنتیک مورد استفاده قرار می گیرد بصورت رابطه 2-29 ارائه شده است
U=δ*αΣi=1nViper fin-βUppower (29-2)
U نشان دهنده سود کلی بر روی تمام ماشین های مجازی می باشد.سود متوسط , توسط فراهم کننده شبکه ابر از هر ماشین مجازی در طی یک مدت زمان مشخص گرفته می شود.n تعداد ماشین های مجازی می باشد . Vi کارایی سودمند می باشد که نشان دهنده سودی است که فراهم کننده شبکه ابر از مصرف کننده برای تضمین میزانی مشخص از کارایی Vmi در یک مدت زمان دریافت می کند و Up تابع میزان سود انرژی می باشد که میزان هزینه انرژی مصرفی ماشین های فیزیکی در یک مدت مشخص می باشد ضریب الفا و بتا برای کنترل اولویت هر دو هدف می باشد. گاما مقدار ثابتی می باشد تا میزان سود را برای نمایش بهتر به بزرگتر از 1 برساند. تابع سود کارایی Vi در آن بمنظور نرمالیزه کردن کارایی برنامه کاربردی مورد استفاده قرار میگیرد و بصورت رابطه 2-30 نشان داده میشود
Viperfi=per fi if per fi<1 1 if per fi≥1 (30-2)
نرمالیزه کردن کارایی باعث عدم وابستگی به معیار های خاص در کارایی برنامه کاربردی می شود.
Up(power) تابع انرژی مصرفی توسط ماشین در یک مدت زمان مشخص می باشد و با توجه به اینکه میزان انرژی مصرفی ماشین های فیزیکی , وابسته به بهره وری منابع می باشد آنها از یک مدل خطی برای بهره وری سی پی یو و ورودی خروجی بهره برده اند که در رابطه 2-31 آن را می بینید
Power=Pidle+PcpuUcpuCcpu+PdiskUdiskCdisk (31 -2)
Pcpu بیشترین میزان انرژی مصرفی سی پی یو در بهره وری کامل می باشد. Ucpu بهره وری سی پی یو به صورت درصدی از ظرفیت کلی سی پی یو. Ccpuظرفیت کلی سی پی یو می باشد. Pdisk بیشترین میزان انرژی مصرفی از دیسک در بیشترین بهره وری از پهنای باند را نشان می دهد. Udisk بهره وری دیسک به صورت درصدی از کل ظرفیت بهنای باند دیسک می باشد. Cdisk ظرفیت کلی پهنای باند دیسک . Pidle میزان انرژی مصرفی توسط ماشین فیزیکی در زمانی که آنها کاری برای انجام نداشته باشند را نشان می دهد.
تابع انرژی مصرفی را در رابطه 2-32 نشان داده شده است.
Uppower=power- PidlePcpu+Pdisk (32-2)
کار تخمین میزان انرژی مصرفی کارها در ماشین های مجازی و ماشین های فیزیکی در مواجهه با کارهای وارد شده در این الگوریتم توسط شبکه عصبی صورت می گیرد .
مراجع
[1] Ling Qian, Zhiguo Luo, Yujian Du, and Leitao Guo," Cloud Computing: An Overview", CloudCom 2009, Beijing, China, December 1-4, 2009
[2]P. Mell and T. Grance, “The NIST definition of cloud computing (v15),”
National Institute of Standards and Technology, Tech. Rep., 2009.
[3]Saira Begum , Muhammad Khalid Khan , "Potential of Cloud Computing Architecture",Information and Communication Technologies (ICICT), 2011
[4]M.Malathi , " Cloud Computing Concepts", 3rd International Conference, 2011
[5]Abdeladim ALFATH, Karim BAI A, Salah BArNA , "Cloud Computing Security: Fine-grained analysis and Security approaches" , (IEEE)Security Days (JNS3), 2013
[6]Schmidt, " Conversation with Eric Schmidt hosted by Danny Sullivan" , Search
Engine Strategies Conference , 2006
[7] Dean, J., Ghemawat, " Simplifed Data Processing on Large Clusters" , OSDI ,2004
[8]Gurudatt Kulkarni1, Nikita Chavan2, Ruchira Chandorkar3,Rani Waghmare4, Rajnikant Palwe5," Cloud Security Challenges",7th International Conference on Telecommunication Systems, Services, and Applications (TSSA),2012
[9]Iulian Neamtiu , Tudor Dumitras ," Cloud Software Upgrades: Challenges and Opportunities",IEEE , 2011
[10]C.N. Hoefer and G. Karagiannis ," Taxonomy of cloud computing services",IEEE Globecom Workshop on Enabling the Future Service-Oriented Internet , 2010
[11] T. Xia, Z. Li, and N. Yu, “Research on cloud computing based on deep
analysis to typical platforms,” in CloudCom ’09: Proceedings of the 1st
International Conference on Cloud Computing. Berlin, Heidelberg: Springer-Verlag, 2009
[12] OpenNebula Project. [Online]. Available: http://www.opennebula.org
[13] C. Edwards, “The Tech Beat: Games in the Cloud?” ,Feb2009
[14]Wei-Tek Tsai*, Xin Sun, Janaka Balasooriya," Service-Oriented Cloud Computing Architecture",Seventh International Conference on Information Technology,2010
[15]Liang-Jie Zhang and Qun Zhou , "CCOA: Cloud Computing Open Architecture",IEEE International Conference on Web Services , 2009
[16] Rochwerger B et al., "The RESERVOIR Model and Architecture for,"
IBM Systems Journal, 2009.
[17]Christian Vecchiola, Xingchen Chu, and Rajkumar Buyya, "Aneka: A
Software Platform for.NET-based Cloud Computing," in High Speed and
Large Scale Scientific Computing, 2010
[18]Rajkumar Buyya and Chee Shin Yeo, "Cloud Computing and Emerging
IT Platforms: Vision, Hype, and Reality for Delivering Computing as the
5th Utility," Future Generation Computer Systems, pp. 599-616, 2009.
[19]Ying Huang et al., "A Framework for Building a Low Cost, Scalable and Secured Platform for Web-Delivered Business Services," , 2009.
[20]Tharam Dillon, Chen Wu and Elizabeth Chang, " Cloud Computing: Issues and Challenges " , 24th IEEE International Conference on Advanced Information Networking and Applications,2010
[21] Issa M. Khalil, Abdallah Khreishah," Security Concerns in Cloud Computing ", 10th International Conference on Information Technology: New Generations, 2013
[22] Bhaskar Prasad Rimal , Eunmi Choi , Ian Lumb , "A Taxonomy and Survey of Cloud Computing", Fifth International Joint Conference on INC, IMS and IDC, 2009
[23] Krešimir Popović, Željko Hocenski, "Cloud computing security issues and challenges",MIPRO, Proceedings of the 33rd International Convention ,2010
[24]Minqi Zhou, Rong Zhang, Wei Xie†, Weining Qian, Aoying Zhou," Security and Privacy in Cloud Computing: A Survey",Sixth International Conference on Semantics, Knowledge and Grids,2010
[25]Huaglory Tianfield , "Security Issues In Cloud Computing" , IEEE International Conference on Systems, Man, and Cybernetics,2012
[26]Peter Mell, Tim Grance , " Perspectives on Cloud Computing and Standards", NIST, Information Technology Laboratory
[27]Wenying Zeng , Yuelong Zhao, Kairi Ou, Wei Song," Research on Cloud Storage Architecture and Key Technologies",ICIS , 2009
[28]Sanjeev Dhiman1, Harwant Singh2," A METHODOLOGY ON SCHEDULING IN CLOUD COMPUTING AND ITS TECHNIQUES ", INTERNATIONAL JOURNAL OF DATA & NETWORK SECURITY Vol 3, No.1, JUNE 2013
[29]Patricia Takako Endo, André Vitor de Almeida Palhares, Nadilma Nunes Pereira, Glauco Estácio Gonçalves, Djamel Sadok, Judith Kelner," Resource Allocation for Distributed Cloud: Concepts and Research Challenges",IEEE Network , July/August 2011
[30]Eman Elghoneimy,Othmane Bouhali , Hussein Alnuweiri," Resource Allocation and Scheduling in Cloud Computing",IEEE , 2012
[31] Ronak Patel, Sanjay Patel*," Survey on Resource Allocation Strategies in Cloud Computing", International Journal of Engineering Research & Technology (IJERT)Vol. 2 Issue 2, February- 2013
[32]Vijindra,Sudhir Shenai," Survey on Scheduling Issues in Cloud Computing",International Conference On Modeling Optimazation And Computing,2012
[33] Chun-Wei Tsai , Joel J. P. C. Rodrigues ," Metaheuristic Scheduling for Cloud: A Survey", IEEE SYSTEMS JOURNAL IEEE,2013
[34]Djamila Ouelhadj,Sanja Petrovic," SURVEY OF DYNAMIC SCHEDULING
IN MANUFACTURING SYSTEMS", Journal of Scheduling Springer,2009
[35] Joao Nuno Silva,Luis Veiga,Paulo Ferreira," Heuristic for resources allocation on utility computing infrastructures",ACM,2008
[36]Lifeng Ai, Maolin Tang1 and Colin Fidge," Resource Allocation and Scheduling of Multiple Composite Web Services in Cloud Computing Using Cooperative coevolution",Springer,2011
[37]Jinn-TsongTsai a,n, Jia-CenFang a, Jyh-HorngChou," Optimized task scheduling and resource allocation on cloud computing environment using improved differential evolution algorithm ",Elsevier,2013
[38]Jianhua Gu, Jinhua Hu, Tianhai Zhao, Guofei Sun," A New Resource Scheduling Strategy Based on Genetic Algorithm in Cloud Computing Environment",JOURNAL OF COMPUTERS, VOL. 7, NO. 1,2012
[39] Zhongni Zheng ,Rui Wang, Hai Zhong, Xuejie Zhang," An Approach for Cloud Resource Scheduling Based on Parallel Genetic Algorithm",IEEE,2011
[40]Shaminder Kaur, Amandeep Verma," An Efficient Approach to Genetic Algorithm for Task Scheduling in Cloud Computing Environment", I.J. Information Technology and Computer Science,2012
[41]Chenhong Zhao, Shanshan Zhang, Qingfeng Liu ,"Independent Tasks Scheduling Based on Genetic Algorithm in Cloud Computing", ,2009
[42] GAN Guo-ning, HUANG Ting-Iei, GAO Shuai," Genetic Simulated Annealing Algorithm for Task Scheduling based on Cloud Computing Environment ", IEEE,2010
[43] Eleonora Maria Mocanu, Mihai Florea, Mugurel Ionuţ Andreica, Nicolae Ţăpuş," Cloud Computing Task Scheduling based on Genetic Algorithms ",-1-4673-0750-5/12/$31.00 © IEEE, 2012
[44] M. Mezmaza,∗, N. Melabb, Y. Kessaci b, Y.C. Lee c, E.-G. Talbi b,d, A.Y. Zomayac, D. Tuyttens," A parallel bi-objective hybrid metaheuristic for energy-aware scheduling for cloud computing systems",J. Parallel Distrib. Comput. 71 1497–1508,2011
[45]Zne-Jung Lee a, Chou-Yuan Lee," A hybrid search algorithm with heuristics for resource allocation problem ", Information Sciences 173,2005
[46] Andrew J. Page a, Thomas M. Keanea, Thomas J. Naughtonb," Multi-heuristic dynamic task allocation using genetic algorithms in a heterogeneous distributed system ", J. Parallel Distrib. Comput Elsevier,2010
[47]Yuan-Shun Dai_, Xiao-Long Wang," Optimal resource allocation on grid systems for maximizing service reliability using a genetic algorithm ", Reliability Engineering and System Safety 91 ,2006
[48]Yang Gao , Hongqiang Rongb, Joshua Zhexue Huangc," Adaptive grid job scheduling with genetic algorithms ", Future Generation Computer Systems 21,2005
[49]Golnar Gharooni-fard, Fahime Moein-darbari, Hossein Deldari, Anahita Morvaridi," Scheduling of scientific workflows using a chaos-genetic algorithm ", International Conference on Computational Science, ICCS,2010
[50]Jie Zhu , Xiaoping Li ,Weiming Shen," Effective genetic algorithm for resource-constrained project scheduling with limited preemptions ", Int. J. Mach. Learn. & Cyber.,2011
[51]Wei Wang,Guosun Zeng, Daizhong Tang, Jing Yao," Cloud-DLS: Dynamic trusted scheduling for Cloud computing",Expert system with applications,2011
[52] Dorian Minarolli, Bernd Freisleben," Distributed Resource Allocation to Virtual Machines via Artificial Neural Networks",22nd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing IEEE,2014
Mirdamad institue of
higher education
Resource allocation in cloud computing using Genetic algorthim and Neural Network
A Thesis Submitted in Partial Fulfillment of the Requirements
for the Degree of Master of Science in Computer Engineering
By:
Mahdi Manavi
Supervisor:
Dr. Hossein Momeni
January 2015
Abstract
Today, cloud computing networks as an important tool for distributed processing and storage of data on the Internet as far as 2010 has been named as the year of cloud computing The distinguishing feature of this model can be distributed to a significant reduction in cost and high reliability as well as low levels of environmental pollution on. With the growth of the network needs to schedule tasks for efficient use of the network and the appropriate response is to work seriously considered: And ongoing efforts in this area and because the cloud computing environment is very large and has a lot of work input to the network: Deterministic algorithms have a good result and the best option for this type of network, heuristic algorithms are But one of the problems presented by a lack of relative recall to provide an overall approach to cloud computing is a balance between network parameters The majority of the works presented in the discussion of justice in the allocation of resources to the tasks that have been ignored for so many things, there is the possibility of hunger We runtime parameters to optimize response time and system cost and efficiency we provide an algorithm combination We presented the solution for the issue of justice for entering the network and prevent hunger things they think are choice In N2TC (Neural Network Task Classification) neural network is based on new tasks and jobs that are waiting in line to enter the network and they are given priority Things that are a higher priority to GaTa (Genetic Algorithm Task assignment) is based on a genetic algorithm to optimize the collection of works devoted to resources on the network. The proposed solutions on average 10% improvement in execution time and 25% in network efficiency of cloud computing and 50% in costs and a 5% improvement in response time tells Due to the high speed of convergence in GaTa speeding execution is scheduled.
Keywords:Resource Allocation and scheduling , Cloud Computing , Genetic Algorithm.Neural Network , Heuristic Algorithm