فهرست مطالبچکیده ۱فصل یک کلیات تحقیق ۲۱-۱ مقدمه ۳۱-۲ بیان مسئله ۴۱-۳ اهمیت ضرورت تحقیق ۵۱-۳-۱ انواع سیستمعاملها ۵۱-۳-۲ زمانبندی کار در سیستمعاملها ۸۱-۴ مبانی نظری و بیشینه تحقیق ۲۳فصل دو مروری بر ادبیات تحقیق ۲۷۲-۱ مقدمه ۲۸۲-۲ تاریخچه ۳۱۲-۳ مدل معماری ۳۳۲-۴ گونههای رایانش ابری ۴۰۲-۵ چالشها ۴۳۲-۶ سرویسهای رایج بر روی ابرها ۴۸۲-۷ الگوریتمهای زمانبندی موجود در ابرها ۵۰فصل سه کلیات تحقیق ۵۶۳-۱ خلاصه ۵۷۳-۲ مقدمه ۵۷۳-۳ زمانبندی کار ۵۹۳-۴ مدل معماری ۶۰۳-۵ مسئله فرمولبندی ۶۱۳-۶ تابع هدف MO_GA ۶۲۳-۷ زمانبندی الگوریتم ۶۳فصل چهار یافتههای تحقیق ۶۹۴-۱ شرح اولیه ۷۰۴-۲ شرح بهینهسازی ۷۱فصل پنج نتیجهگیری و مقایسه ۷۳۵-۱ شرح اولیه ۷۴۵-۲ روند اجرا و مقایسه ۷۴۵-۳ پیشنهادها و نگاهی به آینده 84منابع 85 فهرست اشکالشکل ۲-۱ ساختار معماری ۳۴شکل ۲-۲ نمایی از لایهها ۳۵شکل ۳- ۱ عملکرد مدل معماری ۶۲شکل ۳-۲ ماتریس دو ستونه ابرها و برنامهها ۶۴شکل ۳-۳ متقاطع کردن ۶۶شکل ۳-۴ کارهای ما را ایجاد میکند که شبیهسازی کارهای ورودی توسط کاربر ۶۷شکل ۳-۵ نمایشدهنده خروجی الگوریتم ۶۷شکل ۴-۱ نمایی از اجرای برنامه بهبودیافته ۷۲شکل ۵-۱ الگوریتم پروژه بهینه یافته ۷۵شکل ۵-۲ الگوریتم پروژه الگوریتم ژنتیک ۷۵شکل ۵-۳ نمودار مقایسه زمانی دو الگوریتم ۷۶شکل ۵-۴ نمودار مقایسه تکمیلنشدهها ۷۶شکل ۵-۵ نمودار مقایسه هزینه ۷۷شکل ۵-۶ شکل الگوریتم ژنتیک ۷۸شکل ۵-۷ شکل الگوریتم بهینهشده ۷۸شکل ۵-۸ نمودار مقایسه زمانی دو الگوریتم ۷۹شکل ۵-۹ مقایسه تعداد تکمیلنشدههای دو الگوریتم ۷۹شکل ۵-۱۰ مقایسه هزینهای دو الگوریتم ۸۰چکیده :با پیشرفت سختافزارهای و سپس سیستمعاملها و در دنباله آن نرمافزارهای ، درخواست سرویسهای بیشتر و سرعت و قدرت بالاتر هم افزایش یافت و این وضعیت بهجایی رسیده که کاربران بدون سختافزار مناسب نمیتوانند نرمافزار دلخواه خود را اجرا نمایند . با تولید و ایجاد نسخههای بالاتر و نرمافزارهای مختلف به صورتی تولید و ایجاد میشود که توانایی اینکه سختافزار مربوطه هم به همان سرعت تغییر یابد برای کاربران به دلیل هزینه بیشازاندازه امکانپذیر نخواهد بود ازاینرو ابرها ایجاد گردید تا نرمافزار و سرویسها و ... بر روی آنها فعال گردید و کاربران با پرداخت هزینه اندک و بدون نگرانی در مورد از دست دادن اطلاعات و خرابیهای سختافزاری بتوانند از سرویس خود استفاده نمایند . ازاینرو ابرها نیازمند نرمافزارهایی برای کنترل منابع و سرویسها و سختافزارهای گوناگون دیگر درخواستهای کاربران هستند که این مقوله به قسمتهای مختلفی تقسیمشده است که یکی از موارد زمانبندی کار در ابرها میباشد در این پایان نامه سعی بر این داشتهایم تا بتوانیم طرحی را ایجاد و بهینه نماییم تا با کمترین هزینه بیشترین بازدهی در زمان تقسیم کارهای مختلف به ابرهای مختلف را داشته باشد . فصل یککلیات تحقیق۱-۱ مقدمهبحث زمانبندی کار در سیستمهای عامل یکی از بحثهای مهم بوده و خواهد بود زیرا راهکاری که بتواند با کمترین زمان بهینهترین روش را پیادهسازی نماید همیشه مورد توجه بوده و هست . این مبحث در ابرها هم بسیار پررنگ تر ظاهر شده است ، چرا که در اینجا کارها از چندین کاربرو حتی در موقعیتهای جغرافیایی متفاوت با درخواستهای متفاوت ارسال میگردد و این درخواستها را بابد به گونه ای مدیریت نمود که ، هر یک دارای سرویسهای مختلفی هستند را بررسی و در بهینهترین زمان پاسخ دهد . ازاینرو ما مبحث زمانبندی کارها را در محاسبات ابری مورد بحث و بررسی قرار دادیم و سعی خود را بر این داشته ایم که بتوانیم الگوریتمی را ارائه دهیم که با توجه به محدودیت زمانی و تفاوت سخت افزارها راهکار بهینه تری را ارائه دهد.۱-۲ بیان مسلهپردازش ابری ، رؤیایی دور و دراز در انجام محاسبات است که اکنون به عنوان دیاگرامی جدید در عرصه پردازش با مقیاسهای وسیع است که میتواند میزان زیادی از منابع پردازشی قابل سنجش و حتی نامتناجس و به صورت مجازی بررسی کرده و با کمترین پردازش و زمان دادهها را منتشر کرده و درخواست کاربر را جواب بدهد .یکی از اصلیترین کاربرد پردازش ابری از نظر اقتصادی میباشد که کاربر تنهای چیزی را که نیاز دارد استفاده میکند و تنها هزینه آنچه را که واقعاً استفاده کرده میپردازد و منابع در هر زمانی و هر موقعیتی در دسترس از طریق ابر (اینترنت) میباشد . در اینجادیتاسنترها به میزان چشمگیر و فزاینده ای از انرژی استفاده میکند که به صورت متوسط به دیتاسنتر معمولی به اندازه ۲۵۰۰۰ سیستم خانگی انرژی مصرف میکند و مسله مهم دو زمان پاسخگویی به درخواست کاربران است که باید حداقل زمانی که برای کاربران اهمیت دارد سیستم پاسخگو باشد و حالتی از بلادرنگ را رعایت کند به طور مثال کاربری که از طریق سرورهای ابری مشغول بازی کردن است هنگامی که شلیک میکند باید برخورد گلوله آن در مدت زمانی خاص برای او به نمایش در آید تا بتواند حرکت بعدی خود را برنامه ریزی و اجرا کند . در کل در سیستمهای پردازش ابری چندین معقوله برای اجرای درخواست کاربر اهمیت فراوانی دارد که در آنها منابع ، قابلیت اطمینان ، کاهش مصرف انرژی و زمان پاسخ در کل سیستم بسیار مهم میباشد و با استفاده از الگوریتمهای زمانبندی های مختلف سعی بر این هست تا بهترین و بهینهترین الگوریتمی ایجاد شود تا بتوان بهرین بالانسی بین موارد مورد نظر ایجاد شود .۱-۳ اهمیت و ضرورت تحقیق۱-۳-۱ سیستم عاملسیستمعامل یا سامانه عامل : نرمافزاری است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم میسازد که نرمافزار کاربردی اجرا شده و از خدمات آن استفاده کنند. سیستمعامل جزء ضروریترین نرمافزارهای یک سیستم کامپیوتری است. سیستمعامل خدماتی به برنامههای کاربردی و کاربر ارائه میدهد. برنامههای کاربردی یا از طریق واسطهای برنامه نویسی کاربردی[1] و یا از طرق فراخوانیهای سیستم به این خدمات دسترسی دارند. با فراخوانی این واسطها، برنامههای کاربردی میتوانند سرویسی را از سیستمعامل درخواست کنند، پارامترها را انتقال دهند، و پاسخ عملیات را دریافت کنند. ممکن است کاربران با بعضی انواع واسط کاربری نرمافزار مثل واسط خط فرمان یا یک واسط گرافیکی کاربر با سیستمعامل تعامل کنند. برای کامپیوترهای دستی و رومیزی، عموماً واسط کاربری به عنوان بخشی از سیستمعامل در نظر گرفته میشود. در سیستمهای بزرگ و چند کاربره مثل یونیکس و سیستمهای شبیه یونیکس، واسط کاربری معمولاً به عنوان یک برنامه کاربردی که خارج از سیستمعامل اجرا میشود پیادهسازی میشود. نمونههایی از محبوبترین سیستمعاملهای نوین شامل اندروید ، بیاسدی، آیاواس، لینوکس، اواس ده، کیواناکس، مایکروسافت ویندوز، ویندوز فون و زدواس میباشند.
زمانبندی کار در محاسبات ابری WORD
فهرست مطالبچکیده ۱فصل یک کلیات تحقیق ۲۱-۱ مقدمه ۳۱-۲ بیان مسئله ۴۱-۳ اهمیت ضرورت تحقیق ۵۱-۳-۱ انواع سیستمعاملها ۵۱-۳-۲ زمانبندی کار در سیستمعاملها ۸۱-۴ مبانی نظری و بیشینه تحقیق ۲۳فصل دو مروری بر ادبیات تحقیق ۲۷۲-۱ مقدمه ۲۸۲-۲ تاریخچه ۳۱۲-۳ مدل معماری ۳۳۲-۴ گونههای رایانش ابری ۴۰۲-۵ چالشها ۴۳۲-۶ سرویسهای رایج بر روی ابرها ۴۸۲-۷ الگوریتمهای زمانبندی موجود در ابرها ۵۰فصل سه کلیات تحقیق ۵۶۳-۱ خلاصه ۵۷۳-۲ مقدمه ۵۷۳-۳ زمانبندی کار ۵۹۳-۴ مدل معماری ۶۰۳-۵ مسئله فرمولبندی ۶۱۳-۶ تابع هدف MO_GA ۶۲۳-۷ زمانبندی الگوریتم ۶۳فصل چهار یافتههای تحقیق ۶۹۴-۱ شرح اولیه ۷۰۴-۲ شرح بهینهسازی ۷۱فصل پنج نتیجهگیری و مقایسه ۷۳۵-۱ شرح اولیه ۷۴۵-۲ روند اجرا و مقایسه ۷۴۵-۳ پیشنهادها و نگاهی به آینده 84منابع 85 فهرست اشکالشکل ۲-۱ ساختار معماری ۳۴شکل ۲-۲ نمایی از لایهها ۳۵شکل ۳- ۱ عملکرد مدل معماری ۶۲شکل ۳-۲ ماتریس دو ستونه ابرها و برنامهها ۶۴شکل ۳-۳ متقاطع کردن ۶۶شکل ۳-۴ کارهای ما را ایجاد میکند که شبیهسازی کارهای ورودی توسط کاربر ۶۷شکل ۳-۵ نمایشدهنده خروجی الگوریتم ۶۷شکل ۴-۱ نمایی از اجرای برنامه بهبودیافته ۷۲شکل ۵-۱ الگوریتم پروژه بهینه یافته ۷۵شکل ۵-۲ الگوریتم پروژه الگوریتم ژنتیک ۷۵شکل ۵-۳ نمودار مقایسه زمانی دو الگوریتم ۷۶شکل ۵-۴ نمودار مقایسه تکمیلنشدهها ۷۶شکل ۵-۵ نمودار مقایسه هزینه ۷۷شکل ۵-۶ شکل الگوریتم ژنتیک ۷۸شکل ۵-۷ شکل الگوریتم بهینهشده ۷۸شکل ۵-۸ نمودار مقایسه زمانی دو الگوریتم ۷۹شکل ۵-۹ مقایسه تعداد تکمیلنشدههای دو الگوریتم ۷۹شکل ۵-۱۰ مقایسه هزینهای دو الگوریتم ۸۰چکیده :با پیشرفت سختافزارهای و سپس سیستمعاملها و در دنباله آن نرمافزارهای ، درخواست سرویسهای بیشتر و سرعت و قدرت بالاتر هم افزایش یافت و این وضعیت بهجایی رسیده که کاربران بدون سختافزار مناسب نمیتوانند نرمافزار دلخواه خود را اجرا نمایند . با تولید و ایجاد نسخههای بالاتر و نرمافزارهای مختلف به صورتی تولید و ایجاد میشود که توانایی اینکه سختافزار مربوطه هم به همان سرعت تغییر یابد برای کاربران به دلیل هزینه بیشازاندازه امکانپذیر نخواهد بود ازاینرو ابرها ایجاد گردید تا نرمافزار و سرویسها و ... بر روی آنها فعال گردید و کاربران با پرداخت هزینه اندک و بدون نگرانی در مورد از دست دادن اطلاعات و خرابیهای سختافزاری بتوانند از سرویس خود استفاده نمایند . ازاینرو ابرها نیازمند نرمافزارهایی برای کنترل منابع و سرویسها و سختافزارهای گوناگون دیگر درخواستهای کاربران هستند که این مقوله به قسمتهای مختلفی تقسیمشده است که یکی از موارد زمانبندی کار در ابرها میباشد در این پایان نامه سعی بر این داشتهایم تا بتوانیم طرحی را ایجاد و بهینه نماییم تا با کمترین هزینه بیشترین بازدهی در زمان تقسیم کارهای مختلف به ابرهای مختلف را داشته باشد . فصل یککلیات تحقیق۱-۱ مقدمهبحث زمانبندی کار در سیستمهای عامل یکی از بحثهای مهم بوده و خواهد بود زیرا راهکاری که بتواند با کمترین زمان بهینهترین روش را پیادهسازی نماید همیشه مورد توجه بوده و هست . این مبحث در ابرها هم بسیار پررنگ تر ظاهر شده است ، چرا که در اینجا کارها از چندین کاربرو حتی در موقعیتهای جغرافیایی متفاوت با درخواستهای متفاوت ارسال میگردد و این درخواستها را بابد به گونه ای مدیریت نمود که ، هر یک دارای سرویسهای مختلفی هستند را بررسی و در بهینهترین زمان پاسخ دهد . ازاینرو ما مبحث زمانبندی کارها را در محاسبات ابری مورد بحث و بررسی قرار دادیم و سعی خود را بر این داشته ایم که بتوانیم الگوریتمی را ارائه دهیم که با توجه به محدودیت زمانی و تفاوت سخت افزارها راهکار بهینه تری را ارائه دهد.۱-۲ بیان مسلهپردازش ابری ، رؤیایی دور و دراز در انجام محاسبات است که اکنون به عنوان دیاگرامی جدید در عرصه پردازش با مقیاسهای وسیع است که میتواند میزان زیادی از منابع پردازشی قابل سنجش و حتی نامتناجس و به صورت مجازی بررسی کرده و با کمترین پردازش و زمان دادهها را منتشر کرده و درخواست کاربر را جواب بدهد .یکی از اصلیترین کاربرد پردازش ابری از نظر اقتصادی میباشد که کاربر تنهای چیزی را که نیاز دارد استفاده میکند و تنها هزینه آنچه را که واقعاً استفاده کرده میپردازد و منابع در هر زمانی و هر موقعیتی در دسترس از طریق ابر (اینترنت) میباشد . در اینجادیتاسنترها به میزان چشمگیر و فزاینده ای از انرژی استفاده میکند که به صورت متوسط به دیتاسنتر معمولی به اندازه ۲۵۰۰۰ سیستم خانگی انرژی مصرف میکند و مسله مهم دو زمان پاسخگویی به درخواست کاربران است که باید حداقل زمانی که برای کاربران اهمیت دارد سیستم پاسخگو باشد و حالتی از بلادرنگ را رعایت کند به طور مثال کاربری که از طریق سرورهای ابری مشغول بازی کردن است هنگامی که شلیک میکند باید برخورد گلوله آن در مدت زمانی خاص برای او به نمایش در آید تا بتواند حرکت بعدی خود را برنامه ریزی و اجرا کند . در کل در سیستمهای پردازش ابری چندین معقوله برای اجرای درخواست کاربر اهمیت فراوانی دارد که در آنها منابع ، قابلیت اطمینان ، کاهش مصرف انرژی و زمان پاسخ در کل سیستم بسیار مهم میباشد و با استفاده از الگوریتمهای زمانبندی های مختلف سعی بر این هست تا بهترین و بهینهترین الگوریتمی ایجاد شود تا بتوان بهرین بالانسی بین موارد مورد نظر ایجاد شود .۱-۳ اهمیت و ضرورت تحقیق۱-۳-۱ سیستم عاملسیستمعامل یا سامانه عامل : نرمافزاری است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم میسازد که نرمافزار کاربردی اجرا شده و از خدمات آن استفاده کنند. سیستمعامل جزء ضروریترین نرمافزارهای یک سیستم کامپیوتری است. سیستمعامل خدماتی به برنامههای کاربردی و کاربر ارائه میدهد. برنامههای کاربردی یا از طریق واسطهای برنامه نویسی کاربردی[1] و یا از طرق فراخوانیهای سیستم به این خدمات دسترسی دارند. با فراخوانی این واسطها، برنامههای کاربردی میتوانند سرویسی را از سیستمعامل درخواست کنند، پارامترها را انتقال دهند، و پاسخ عملیات را دریافت کنند. ممکن است کاربران با بعضی انواع واسط کاربری نرمافزار مثل واسط خط فرمان یا یک واسط گرافیکی کاربر با سیستمعامل تعامل کنند. برای کامپیوترهای دستی و رومیزی، عموماً واسط کاربری به عنوان بخشی از سیستمعامل در نظر گرفته میشود. در سیستمهای بزرگ و چند کاربره مثل یونیکس و سیستمهای شبیه یونیکس، واسط کاربری معمولاً به عنوان یک برنامه کاربردی که خارج از سیستمعامل اجرا میشود پیادهسازی میشود. نمونههایی از محبوبترین سیستمعاملهای نوین شامل اندروید ، بیاسدی، آیاواس، لینوکس، اواس ده، کیواناکس، مایکروسافت ویندوز، ویندوز فون و زدواس میباشند.