پروپوزال زمانبندی در رایانش ابری (docx) 37 صفحه
دسته بندی : تحقیق
نوع فایل : Word (.docx) ( قابل ویرایش و آماده پرینت )
تعداد صفحات: 37 صفحه
قسمتی از متن Word (.docx) :
left0دانشگاه آزاد اسلامی
واحد علوم و تحقیقات
دانشکده فنی و مهندسی ، گروه کامپیوتر
پایاننامه برای دریافت درجه کارشناسی ارشد در رشته مهندسی کامپیوتر
گرایش نرمافزار
عنوان
زمانبندی کار در محاسبات ابری
استاد راهنما
دکتر محمد کریم سهرابی
نگارنده
مصطفی ساسانی
شهریور ۹۳
8001005715
قدردان و سپاسگزار
زحمات و راهنماییهای استاد گرانقدر جناب آقای دکتر سهرابی که در تمامی مراحل راهنماییها و مشاورههای ایشان همراه اینجانب بوده است و قدردان زحمات اساتید بزرگوار آقایان دکتر یغمایی و دکتر فدایی اسلام که داوری اینجانب را عهدهدار شدند هستم .
فهرست مطالب
چکیده ۱
فصل یک کلیات تحقیق ۲
۱-۱ مقدمه ۳
۱-۲ بیان مسئله ۴
۱-۳ اهمیت ضرورت تحقیق ۵
۱-۳-۱ انواع سیستمعاملها ۵
۱-۳-۲ زمانبندی کار در سیستمعاملها ۸
۱-۴ مبانی نظری و بیشینه تحقیق ۲۳
فصل دو مروری بر ادبیات تحقیق ۲۷
۲-۱ مقدمه ۲۸
۲-۲ تاریخچه ۳۱
۲-۳ مدل معماری ۳۳
۲-۴ گونههای رایانش ابری ۴۰
۲-۵ چالشها ۴۳
۲-۶ سرویسهای رایج بر روی ابرها ۴۸
۲-۷ الگوریتمهای زمانبندی موجود در ابرها ۵۰
فصل سه کلیات تحقیق ۵۶
۳-۱ خلاصه ۵۷
۳-۲ مقدمه ۵۷
۳-۳ زمانبندی کار ۵۹
۳-۴ مدل معماری ۶۰
۳-۵ مسئله فرمولبندی ۶۱
۳-۶ تابع هدف MO_GA ۶۲
۳-۷ زمانبندی الگوریتم ۶۳
فصل چهار یافتههای تحقیق ۶۹
۴-۱ شرح اولیه ۷۰
۴-۲ شرح بهینهسازی ۷۱
فصل پنج نتیجهگیری و مقایسه ۷۳
۵-۱ شرح اولیه ۷۴
۵-۲ روند اجرا و مقایسه ۷۴
۵-۳ پیشنهادها و نگاهی به آینده 84
منابع 85
فهرست اشکال
شکل ۲-۱ ساختار معماری ۳۴
شکل ۲-۲ نمایی از لایهها ۳۵
شکل ۳- ۱ عملکرد مدل معماری ۶۲
شکل ۳-۲ ماتریس دو ستونه ابرها و برنامهها ۶۴
شکل ۳-۳ متقاطع کردن ۶۶
شکل ۳-۴ کارهای ما را ایجاد میکند که شبیهسازی کارهای ورودی توسط کاربر ۶۷
شکل ۳-۵ نمایشدهنده خروجی الگوریتم ۶۷
شکل ۴-۱ نمایی از اجرای برنامه بهبودیافته ۷۲
شکل ۵-۱ الگوریتم پروژه بهینه یافته ۷۵
شکل ۵-۲ الگوریتم پروژه الگوریتم ژنتیک ۷۵
شکل ۵-۳ نمودار مقایسه زمانی دو الگوریتم ۷۶
شکل ۵-۴ نمودار مقایسه تکمیلنشدهها ۷۶
شکل ۵-۵ نمودار مقایسه هزینه ۷۷
شکل ۵-۶ شکل الگوریتم ژنتیک ۷۸
شکل ۵-۷ شکل الگوریتم بهینهشده ۷۸
شکل ۵-۸ نمودار مقایسه زمانی دو الگوریتم ۷۹
شکل ۵-۹ مقایسه تعداد تکمیلنشدههای دو الگوریتم ۷۹
شکل ۵-۱۰ مقایسه هزینهای دو الگوریتم ۸۰
چکیده :
با پیشرفت سختافزارهای و سپس سیستمعاملها و در دنباله آن نرمافزارهای ، درخواست سرویسهای بیشتر و سرعت و قدرت بالاتر هم افزایش یافت و این وضعیت بهجایی رسیده که کاربران بدون سختافزار مناسب نمیتوانند نرمافزار دلخواه خود را اجرا نمایند . با تولید و ایجاد نسخههای بالاتر و نرمافزارهای مختلف به صورتی تولید و ایجاد میشود که توانایی اینکه سختافزار مربوطه هم به همان سرعت تغییر یابد برای کاربران به دلیل هزینه بیشازاندازه امکانپذیر نخواهد بود ازاینرو ابرها ایجاد گردید تا نرمافزار و سرویسها و ... بر روی آنها فعال گردید و کاربران با پرداخت هزینه اندک و بدون نگرانی در مورد از دست دادن اطلاعات و خرابیهای سختافزاری بتوانند از سرویس خود استفاده نمایند . ازاینرو ابرها نیازمند نرمافزارهایی برای کنترل منابع و سرویسها و سختافزارهای گوناگون دیگر درخواستهای کاربران هستند که این مقوله به قسمتهای مختلفی تقسیمشده است که یکی از موارد زمانبندی کار در ابرها میباشد در این پایان نامه سعی بر این داشتهایم تا بتوانیم طرحی را ایجاد و بهینه نماییم تا با کمترین هزینه بیشترین بازدهی در زمان تقسیم کارهای مختلف به ابرهای مختلف را داشته باشد .
فصل یک
کلیات تحقیق
۱-۱ مقدمه
بحث زمانبندی کار در سیستمهای عامل یکی از بحثهای مهم بوده و خواهد بود زیرا راهکاری که بتواند با کمترین زمان بهینهترین روش را پیادهسازی نماید همیشه مورد توجه بوده و هست . این مبحث در ابرها هم بسیار پررنگ تر ظاهر شده است ، چرا که در اینجا کارها از چندین کاربرو حتی در موقعیتهای جغرافیایی متفاوت با درخواستهای متفاوت ارسال میگردد و این درخواستها را بابد به گونه ای مدیریت نمود که ، هر یک دارای سرویسهای مختلفی هستند را بررسی و در بهینهترین زمان پاسخ دهد . ازاینرو ما مبحث زمانبندی کارها را در محاسبات ابری مورد بحث و بررسی قرار دادیم و سعی خود را بر این داشته ایم که بتوانیم الگوریتمی را ارائه دهیم که با توجه به محدودیت زمانی و تفاوت سخت افزارها راهکار بهینه تری را ارائه دهد.
۱-۲ بیان مسله
پردازش ابری ، رؤیایی دور و دراز در انجام محاسبات است که اکنون به عنوان دیاگرامی جدید در عرصه پردازش با مقیاسهای وسیع است که میتواند میزان زیادی از منابع پردازشی قابل سنجش و حتی نامتناجس و به صورت مجازی بررسی کرده و با کمترین پردازش و زمان دادهها را منتشر کرده و درخواست کاربر را جواب بدهد .
یکی از اصلیترین کاربرد پردازش ابری از نظر اقتصادی میباشد که کاربر تنهای چیزی را که نیاز دارد استفاده میکند و تنها هزینه آنچه را که واقعاً استفاده کرده میپردازد و منابع در هر زمانی و هر موقعیتی در دسترس از طریق ابر (اینترنت) میباشد . در اینجا دیتاسنترها به میزان چشمگیر و فزاینده ای از انرژی استفاده میکند که به صورت متوسط به دیتاسنتر معمولی به اندازه ۲۵۰۰۰ سیستم خانگی انرژی مصرف میکند و مسله مهم دو زمان پاسخگویی به درخواست کاربران است که باید حداقل زمانی که برای کاربران اهمیت دارد سیستم پاسخگو باشد و حالتی از بلادرنگ را رعایت کند به طور مثال کاربری که از طریق سرورهای ابری مشغول بازی کردن است هنگامی که شلیک میکند باید برخورد گلوله آن در مدت زمانی خاص برای او به نمایش در آید تا بتواند حرکت بعدی خود را برنامه ریزی و اجرا کند . در کل در سیستمهای پردازش ابری چندین معقوله برای اجرای درخواست کاربر اهمیت فراوانی دارد که در آنها منابع ، قابلیت اطمینان ، کاهش مصرف انرژی و زمان پاسخ در کل سیستم بسیار مهم میباشد و با استفاده از الگوریتمهای زمانبندی های مختلف سعی بر این هست تا بهترین و بهینهترین الگوریتمی ایجاد شود تا بتوان بهرین بالانسی بین موارد مورد نظر ایجاد شود .
۱-۳ اهمیت و ضرورت تحقیق
۱-۳-۱ سیستم عامل
سیستمعامل یا سامانه عامل : نرمافزاری است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم میسازد که نرمافزار کاربردی اجرا شده و از خدمات آن استفاده کنند. سیستمعامل جزء ضروریترین نرمافزارهای یک سیستم کامپیوتری است. سیستمعامل خدماتی به برنامههای کاربردی و کاربر ارائه میدهد. برنامههای کاربردی یا از طریق واسطهای برنامه نویسی کاربردی و یا از طرق فراخوانیهای سیستم به این خدمات دسترسی دارند. با فراخوانی این واسطها، برنامههای کاربردی میتوانند سرویسی را از سیستمعامل درخواست کنند، پارامترها را انتقال دهند، و پاسخ عملیات را دریافت کنند. ممکن است کاربران با بعضی انواع واسط کاربری نرمافزار مثل واسط خط فرمان یا یک واسط گرافیکی کاربر با سیستمعامل تعامل کنند. برای کامپیوترهای دستی و رومیزی، عموماً واسط کاربری به عنوان بخشی از سیستمعامل در نظر گرفته میشود. در سیستمهای بزرگ و چند کاربره مثل یونیکس و سیستمهای شبیه یونیکس، واسط کاربری معمولاً به عنوان یک برنامه کاربردی که خارج از سیستمعامل اجرا میشود پیادهسازی میشود. نمونههایی از محبوبترین سیستمعاملهای نوین شامل اندروید ، بیاسدی، آیاواس، لینوکس، اواس ده، کیواناکس، مایکروسافت ویندوز، ویندوز فون و زدواس میباشند.
نظریهها و الگوریتمهای موجود سعی خود را کردند تا بتوانند یک تعادلی ما بین منابع مورد استفاده و مصرف انرژی و کارایی بالاتر ایجاد نمایند ولی هیچ یک از الگوریتمها و روشها نتوانستند کارایی خیلی بالا با مصرف انرژی خیلی پایین دست یابند . هر دیتاسنتر معمولی به صورت میانگین در خدود ۲۵۰۰۰ سیستم خانگی انرژی مصرف میکند و از سمتی دیگر نمیتوان درخواستهای کاربران را با تأخیر و یا اینکه به صورت ناقص اجرا نمود . تعادل بین موارد بالا به احتصاب قابلیت اطمینان پذیری سیستم و امنیت آنها موضوعی شده تا همه دنبال راه حلی باشند که بتوان راهی برای اینکه همه موارد را تغریبا کنارهم داشت تلاش کنند و راه حلی مناسب ارائه دهند تا بتوان از کمترین منابع بیشترین بازدهی را داشت .
۱-۳-۲ انواع سیستم عاملها
سیستمعامل بیدرنگ
سیستمهای بیدرنگ یا زمان واقعی یک سیستم عامل چند وظیفهای است که معمولاً بعنوان یک کنترل کننده در یک کاربرد خاص استفاده میشوند. سیستم در این حالت میبایست در زمانی مشخص و معین حتماً جواب مورد نظر را بدهد. سیستمهای کنترل آزمایشهای علمی، تصویربرداری پزشکی، کنترل صنعتی و برخی از سیستمهای نمایش از این دستهاند. هدف اصلی استفاده از سیستمهای بیدرنگ واکنش سریع و تضمین شده در برابر یک رویداد خارجی میباشد. در سیستمهای بیدرنگ معمولاً وسایل ذخیرهسازی ثانویه وجود ندارد و به جای آن از حافظههای ROM استفاده میشود. سیستمعاملهای پیشرفته نیز در این سیستمها وجود ندارند چرا که سیستمعامل کاربر را از سختافزار جدا میکند و این جداسازی باعث عدم قطعیت در زمان پاسخگویی میشود. سیستمهایی که در آن مهلت زمانی باید پاسخ داده شود را بیدرنگ سخت و سیستمهایی که مهلت زمانی را پشتیبانی نمیکنند بیدرنگ نرم مینامند. از کاربرد سیستمهای بیدرنگ سخت میتوان به کنترل موتور یک خودرو(پاسخ با تأخیر میتواند نتایج فاجعهباری را به همراه داشته باشد) و در سیستمهای بیدرنگ نرم میتوان به اسکن بارکد در پایانه فروشگاه(با اینکه سرعت پاسخدهی باید سریع باشد اما به حادّی سیستمهای سخت نمیباشد) اشاره کرد
در سال ۲۰۱۲ دو نفر به نامهای Shamsollah Ghanbari Mohamed Othman , الگوریتمی را پیشنهاد دادند به نام PJSC به نام A Priority based Job Scheduling Algorithm in Cloud Computing که بر اساس اولویت کارها را دسته بندی میکند و این الگوریتم به گفته خودشان چندیدن معیار مختلف را برای تصمیم گیری لحاظ میکند.
سیستم عامل چند کاربره
سیستمهای چند کاربره اجازه میدهند تا کاربران متعدد بصورت همزمان به یک سیستم کامپیوتری دسترسی داشته باشند. سیستمهای اشتراک زمانی و کارساز وب را میتوان بعنوان سیستمهای چند کاربره طبقهبندی کرد. در سیستمهای اشتراک زمانی تنها یک پردازنده قرار دارد که توسط مکانیزمهای زمانبندی بین برنامههای مختلف کاربرها با سرعت زیاد سوئیچ میشود و بنابراین هر کاربر تصور میکند کل رایانه در اختیار اوست.
سیستمعامل تک پردازنده
این نوع سیستمعاملها، سیستمعاملهای نسل چهار (نسل فعلی) هستند که بر روی یک پردازنده اجرا میشوند.از قبیل XP,Vista,۹۸,Me که بیشتر محصول شرکت مایکرو سافت میباشند.
سیستمعامل شبکهای
سیستم عاملهایی مثل ناول نت که بیشترین استفاده و امکانات این سیستم عامل برای شبکه میباشد
سیستمهای عامل توزیع شده
این سیستمعاملها خود را مانند سیستمعاملهای تک پردازنده به کاربر معرفی میکنند، اما در عمل از چندین پردازنده استفاده میکنند. این نوع سیستمعامل در یک محیط شبکهای اجرا میشود در این نوع سیستم یک برنامه پس از اجرا در کامپیوترهای مختلف جواب نهایی به سیستم اصلی کاربر بر میگردد سرعت پردازش در این نوع سیستم بسیار بالاست.
که ابرها از نوع سیستمهای عامل توزیع شده هستند .
۱-۳-۳ زمانبندی کار در سیستم عامل
از یک جنبه زمانبندهای پردازش در سیستم عامل به سه دسته تقسیم بندی میشوند.
الف- دراز مدت
ب– کوتاه مدت
ج – میان مدت
زمانبندی دراز مدت
در یک سیستم دستهای پردازشهای بیشتری نسبت به آنچه فوراً میتوانند اجرا شوند تحویل داده میشوند . این پردازشها در دیسک نگهداری میشوند .زمانبندی دراز مدت یازمانبندی کار پروسسهایی را انتخاب کرده و آنها را برای اجرا از دیسک به حافظه اصلی میآورد.
زمانبندی کوتاه مدت
زمانبند کوتاه مدت (یا زمانبند CPU) از بین پروسسهای موجود در حافظه اصلی که آماده اجرا هستند یک را انتخاب کرده و CPU را به آن اختصاص میدهد. غالباً زمانبند کوتاه مدت هر صد میلی ثانیه یک بار اجراء میشود ولی زمانبند دراز مدت ممکن است هر چند دقیقه یک بار اجرا شود. در واقع زمانبند دراز مدت در جه چند برنامگی یعنی تعداد پردازشهای موجود در حافظه را کنترل میکند .
زمانبند دراز مدت وقت زایدی برای تصمیم گیری دارد ولی زمانبند کوتاه مدت میبایست خیلی سریع تصمیمی گیری کند. زمانبند دراز مدت میبایست مخلوط مناسبی از پردازشهای CPU-limiter و I/O limited را جهت قرار گیری در حافظه انتخاب کند تا کارایی CPU و وسایل I/O بهینه شود. در بعضی سیستمها مثل اغلب سیستمهای اشتراک زمانی زمانبند دراز مدت وجود ندارد, چرا که هر پردازش در سیستم عامل جدید جهت زمانبند CPU در حافظه گذاشته میشود تا زمان پاسخ دهی به برنامه مناسب باشد.
زمانبندی میان مدت :
بعضی سیستم عاملها از زمانبند میان مدت نیز استفاده میکنند. بدین ترتیب که گاهی پروسس هایی از حافظه و در واقع از رقابت جهت دریافت CPU حذف شده و به دیسک برده میشوند . بدین ترتیب درجه چند برنامگی کاهش مییابد . سپس در زمانی دیگر پردازش در سیستم عامل مذکور مجدداً به حافظه آورده شده و اجرایش از همان نقطه قبلی ادامه مییابد, این عملیات به نام مبادله معروف است .
زمانبندی CPU به طوری کلی میتواند انحصاری غیر قابل پس گرفتن قابل پس گرفتن باشد.
در سیستم انحصاری فقط هنگامی CPU ازپردازش در حال اجراء گرفته میشود که جهت عملیات I/O یا اتمام پردازش در سیستم عامل فرزند را رخداد دیگری بلوکه شود. بنابراین مفهوم و پیاده سازی الگوریتم زمانبندی انحصاری ساده است .ولی ممکن است پردازشی برای مدت طولانی CPU را جهت محاسبات در اختیار بگیرد.
رد این حال پردازشهای دیگر برای مدتی طولانی انتظار خواهند کشید و این موضوع مخصوصاً برای سیستمهای اشتراک زمانی نامناسب است .لذا در اغلب سیستمها از یک زمان سنج داخلی برای ایجاد وقفههای متناوب سختافزاری جهت گرفتن CPUاستفاده میشود.
زمانبندی غیرانحصاری
در هر وقفه در سیستم عامل ساعت, سیستم عامل اجرا میشود تا تصمیم بگیرد که آیا به پروسس در حال اجرا اجازه ادامه کار را بدهد یا اینکه چون پروسس به اندازه کافی از زمان CPU استفاده کرده آن را معلق نماید تا CPU به پروسس دیگری تخصیص داده شود. فرکانس این وقفه در سیستم عاملهای ساعت معمولاً بین ۵۰تا۶۰ بار در ثانیه است . این نوع زمانبندی که در آن پس از تمام شدن برش زمانی معین , CPU از گرفته میشود زمانبندی غیر انحصاری نام دارد.
اولویت در زمانبندی ها
اولویتها میتوانند بصورت اتوماتیک توسط سیستم نسبت داده شوند و یا از خارج سیستم تعیین گردند, مثلاً ممکن است یک کاربر کار فوری داشته باشدو حاضر باشد به خاطر بدست آوردن سرویس بالاتر هزینه بیشتری بپردازد , یعنی اولویت را بخرد .
یک اولویت ممکن است استاتیک باشد یا دینامیک . اولویت استاتیک تغییر نمیکندو بنابراین پیاده سازی آن ساده است .
ولی این نوع اولویت در مقابل تغییرات محیطی عکس العملی نشان نمیدهد . برعکس اولویت دینامیک بر اثر تغییرات محیطی تغییر میکند
مثلاً ً ممکن است در آغاز یک برنامه اولویت پائینی داشته باشد ولی به تدریج اولویت آن بهبود یابد.
معیارهای زمانبندی در سیستم عامل
۱- عدالت یعنی اطمینان از اینکه هر پروسس سهم عادلانه و منصفانهای از CPU را دریافت کند.
۲- کارایی یا بهره وری CPU یعنی اینکه CPU در تمام زمانها (حتی الامکان) مشغول باشد
۳- زمان پاسخ یعنی به حداقل رساندن زمان پاسخ برای فرمانهای محاورهای کاربر. این زمان معمولاً با سرعت ابزار خروجی محدود میشود.
۴- زمان برگشت یا گردش کار یعنی به حداقل رساندن زمانی که کاربران دستهای باید منتظر بمانند تا خروجی آنها پدید آید . فاصله زمانی از لحظه تحویل کار تا لحظه تکمیل کار را زمان برگشت مینامند ولی زمان پاسخ مدت زمانی است که از صدور یک تقاضا تا تولید اولین پاسخ آن طول میکشد (نه زمان خروجی کل برنامه)
زمان بارگذاری در حافظه و زمان عملیات و I/Oمان اجراء+ زمان انتظاردر صف آماده = زمان گردش کار
۵- توان عملیاتی یا گذردهی به تعداد پردازشهایی که در واحد زمان تکمیل میشوند توان عملیاتی میگویند. الگوریتم زمانبندی باید به گونهای باشد که این معیار را افزایش دهد .
۶- زمان انتظار الگوریتم زمانبندی CPU, بر میزان زمان اجرای پردازش یا اعمال I/O اثر نمیکند, بلکه فقط در زمان صرف شده جهت انتظار در صف آماده اثر میگذارد. زمان انتظار , مجموع پریودهای زمانی صرف شده در صف آماده میباشد.
۷- زمانبندی صفهای چند گانه
هنگامی که بتوان فرآیندها را به سادگی به دستههای متفاوت طبقه بندی کرد ازاینروش استفاده میگردد.
در الگوریتم صفهای چندگانه, صف آماده, به صفهای جداگانه مختلفی تجزیه میشود و هر پردازش وارد یک صف میگردد. اولویت صفها با هم فرق داشته و هر صفی الگوریتم زمانبندی خود را دارد
یک آمده-یک سرویس شده :
سادهترین الگوریتم زمانبندی CPU ,الگوریتم یک آمده, یک سرویس شده میباشد . گاهی اوقات به این رو یک آمده یک می رود نیز میگویند. در این روش هر پردازش در سیستم عاملی که اولین در خواست CPU را صادر کند , اولین پروسسی خواهد بود که آن را به دست میآورد .
این روش از نوع انحصاری است که به سادگی توسط یک صف FIFO پیاده سازی میشود.
هنگامی که پردازش در سیستم عامل CPU را به دست گرفت آن را رها نمیکند مگر اینکه تمام شود یا جهت انجام عملیات I/O به حالت بسته برود.
زمانبندی نوبت گردشی :
این زمانبندی یکی از قدیمیم ترین , سادهترین , عادلانهترین و رایجترین الگوریتمهای زمانبندی است و از نوع غیر انحصاری میباشد. این الگوریتم شبیه FCFS است ولی به هر پردازش حداکثر به میزان زمانی مشخصی CPU داده میشود.
به عبارتی دیگر یک واحد کوچک زمانی به نام کوانتوم زمان با برش زمانی تعریف میشود که معمولاً بین ۱۰ تا ۱۰۰میلی ثانیه است و هر پروسس حداکثر به این میزان میتواند CPU را در اختیار بگیرد. هنگامی که پردازشی CPU را در اختیار دارد دوحالت ممکن است رخ دهد .
یا انفجار محاسباتی جاری کمتر از یک کوانتوم زمانی است که در این حالت پردازش داوطلبانه CPU را رها میکند و منتظر اتمام عملیات I/O میشود (مانند FCFS) و یا اینکه انفجار محاسباتی بیشتر از یک کوانتوم زمانی است که در این حالت تایمر یک وقفه به سیستم عامل میدهد و سیستم عامل با تعویض متن CPU را از پردازش جاری گرفته و آن را به ته صف آماده میفرستد, سپس از ابتدای صف آماده, پردازش دیگری را جهت اجرا انتخاب میکند :
ازاینروش در سیستمهای اشتراک زمانی استفاده شده تا زمانهای پاسخ برای کاربران محاورهای بصورت مناسب گارانتی شود.
حد بالای کوانتوم زمانی بایدبه قدری باشد که زمان پاسخ دهی مناسبی داشته باشیم.
حد پایین برش زمانی توسط دو عامل تعیین میشود یکی اینکه باید این برش خیلی بزرگتر از زمان تعویض متن باشد مثلاً هزاران برابر.
دیگر آنکه مقدار برش زمانی بایستی کمی بزرگتر از زمان لازم برای یک فعل و انفعال نوعی باشد چرا که در غیر اینصورت هر کار کوچکی نیاز به چندین برش زمانی خواهد داشت و کارایی سیستم به علت تعویض متنهای متعدد کم میشود.
یک قاعده سرانگشتی این است که go درصد انفجارهای محاسباتی باید کوتاهتر از کوانتوم زمانی باشند و در عمل برا یاین امر برش زمانی را حدود ۱۰۰ میلی ثانیه در نظر میگیرند.
یک کوتاهترین زمان
در الگوریتم مورد نظر که روشی انحصاری است CPU به پردازش داده میشود که کوچکترین انفجار محاسباتی بعدی را دارد.
البته اصطلاح مناسبتر , «کوتاهترین انفجار محاسباتی بعدی»میباشد. زیرا این زمانبندی بر اساس طول مدت انفجار CPU بعدی عمل میکند و نه بر اساس طول کل پردازش در سیستم عامل . اگر دو پردازش در سیستم عامل مدت انفجار محاسباتی یکسانی داشته باشد براساس FCFS زمانبندی میشوند. این الگوریتم میتواند انحصاری و غیر انحصاری باشد.
این الگوریتم مخصوصاً برای کارهای دستهای که از قبل زمان اجرای آن کارها , مشخص و معین باشد به کار میرود. مهمترین مشکل در SJF آگاهی از طول درخواست بعدی CPU میباشد. هیچ راهی که طول انفجار محاسباتی بعدی را برای ما مشخص سازد وجود ندارد.
لذا در صورت لزوم مجبوریم آن را پیش بینی کنیم . یعنی انتظار داشته باشیم که طول انفجار بعدی خیلی شبیه طول انفجارهای قبلی باشد.
بالاترین نسبت پاسخ
زمانبندی این نوعی زمانبندی انحصاری است که بعضی از مشکلات SJF را برطرف میسازد. در SJF نظر افراطی خوبی نسبت به کارهای کوتاه و برعکس نظر افراطی بدی نسبت به کارهای طولانی وجود دارد به طوری که ممکن است مشکل قحطی زدگی رخ دهد. در این زمانبندی اولویتها دینامیک است.
کارهای کوتاهتر اولویت بیشتری داشته و زودتر اجراء میشوند. کارهای طولانی نیز که مدت زیادی در صف انتظار بودهاند اولیت بیشتری کسب کرده وبالاخره در یک زمان معین اجراء میشوند. بدین ترتیب مشکل قحطی زدگی برطرف میشود
بلا درنگ
در سیستم بلادرنگ سخت , پردازش در سیستم عاملها میبایست در یک زمان تخمین شده اجراء و اتمام شوند., مانند سیستم کنترل موشک . چنین تضمینی در یک سیستم با حافظه ثانویه یا حافظه مجازی غیر ممکن است . در سیستم بلادرنگ نرم (مانند پخش موسیقی) زمان پاسخگویی به پردازش در سیستم عامل مهم است ولی مانند بلادرنگ سخت , حیاتی نیست .
اتفاقاتی که سیستم بلادرنگ باید به آنها پاسخ دهد به دو دسته متناوب و غیر متناوب تقسیم میشوند. وقایع متناوب در فواصل زمانی مساوی اتفاق میافتند ولی وقایع متناوب به صورت تصادفی و تصادفی بوده و غیر قابل پیش بینی میباشند.
روشهای زمانبندی بلادرنگ به دو دسته کلی پویا و ایستا تقسیم میشوند. در حالت ایستا قبل از شروع سیستم , تصمیمات زمانبندی گرفته میشود ولی در حالت پویا تصمیمات زمانبندی در زمان اجرای سیستم انجام میپذیرد . سه روش زمانبندی بلا درنگ پویا عبارتاند از:
الگوریتم نرخ یکنواخت :
در این الگوریتم به هر پردازش در سیستم عامل اولویتی متناسب با فرکانس رخداد آن واقعه نسبت داده میشود. مثلاً به پردازشی که هر۲۰ میلی ثانیه تکرار میشود, اولویت ۵۰ و به پردازشی که هر ۱۰۰ میلی ثانیه تکرار میشود, اولیت ۱۰ داده میشود. این الگوریتم از نوع غیرانحصاری است . میتوان اثبات کرد که این الگوریتم بهینه است.
الگوریتم ابتدا زودترین مهلت :
در این الگوریتم پردازش در سیستم عاملی ابتدا اجراء میشود که فرصتش از همه کمتر است یعنی نزدیکترین مهلت را دارد . این مهلت برای وقایع متناوب برابر زمان رخداد واقعه بعدی میباشد.
الگوریتم کمترین سستی :
زمان سستی یک پردازش در سیستم عامل زمانی است که میتواند آماده باقی مانده و اجراء نشود. مثلاً اگر یک پردازش در سیستم عامل به ۲۰۰ میلی ثانیه وقت CPU احتیاج داشته باشد. و۲۵۰ میلی ثانیه نیز مهلت داشته باشد که کارش را تمام کند, زمان سستی او برابر ۲۵۰-۲۰۰=۵۰ میلی ثانیه میباشد. در این الگوریتم پردازشی ابتدا اجراء میگردد که کوچکترین زمان سستی را دارد.
زمانبندی LPT
در زمانبندی هر گاه که پردازندهای آزاد میگردد, از بین کارهای باقی مانده طولانیترین کار را برای اجرا انتخاب میکند. هرچند که این الگوریتم بهینه نیست ولی غالباً منحصر به زمانبندیهایی با طول معقول میشود.
زمانبندی در سیستم عاملهای مختلف
مایکروسافت
داس و ویندوزهای اولیه
مایکروسافت داس و ویندوز ابتدایی مایکروسافت قابلیت چند پردازشی نداشتند لذا به زمان بندی نیازی نبود.
ویندوز ۳.۱ از زمان بندی ناپیشگیرانه[پ ۲] یا مشارکتی[پ ۳] استفاده میکرد به این معنا که یک پردازش خاص متوقف نمیشد تا زمانی که به پایان برسد یا به سیستم عامل بگوید که دیگر نیازی به پردازنده ندارد در نتیجه پردازنده به پردازش دیگری اختصاص مییابد.
ویندوز ۹۵
ویندوز ۹۵ یک زمان بندی پیشگیرانه ناقص و ابتدایی را ارائه کرد؛ البته به منظور پشتیبانی از پردازشهای ۱۶ بیتی از همان روش ناپیشگیرانه برای این پردازشها استفاده شد.
ویندوز انتی
سیستمعاملهای مبتنی بر ویندوز انتی از زمانبندی بازخوردی استفاده میکنند. ۳۲ سطح اولویت تعریف شده است، از ۰ تا ۳۱. سطوح ۰ تا ۱۵ اولویت معمولی و سطوح ۱۶ تا ۳۱ اولویت بلادرنگ را دارا میباشند؛ اولویت ۰ برای سیستم عامل محفوظ است.
هسته سیستمعامل میتواند سطح اولویت یک ریسه را بر اساس نیاز آن به ورودی/خروجی و پردازنده و یا تعاملی بودن آن تغییر دهد؛ بدین صورت که سطح اولویت ریسمانهای در تنگنای ورودی/خروجی[پ ۵] و ریسمانهای مربوط به پردازشهای محاورهای را بالا میبرد تا میزان پاسخگویی آنها افزایش یابد، از طرفی سطح اولویت ریسههای در تنگنای پردازشگررا کاهش میدهد.
ویندوز سرور ۲۰۰۸ و ویندوز ویستا
در ویندوز ویستا زمان بندی به گونهای تغییر کرد که به جای استفاده از وقفههای زمانی[پ ۷] برای تعیین مدت اجرای یک ریسه، از ثبات شمارنده سیکل موجود در پردازندههای مدرن استفاده شود.
ویندوز ویستا همچنین از زمان بندی اولویت در صف ورودی/خروجی استفاده میکند تا مانع از تداخل پردازشهای کم اولویتی همچون یکپارچهسازی دیسک سخت با پردازشهای در حال اجرا شود.
لینوکس
در سیستمعامل لینوکس هر پردازشی در یکی از ردههای سیاست زمانبندی قرار میگیرد، که معمولاً یکی از مقادیر زیر است
SCHED_OTHER : سیاست زمانبندی برای پردازشهای عادی
SCHED_FIFO : سیاست زمانبندی خروج به ترتیب ورود برای پردازشهای بلادرنگ
SCHED_RR : سیاست چرخشی برای پردازشهای بلادرنگ
هر کدام از ردههای سیاست زمانبندی الگوریتم خود را برای انتخاب پردازش بعدی دارند. ردههای بلادرنگ اولیت بیشتری نسبت به اولویت SCHED_OTHER دارند. اگر در این ردهها پردازشی برای اجرا وجود داشته باشد، الگوریتم زمانبند رده SCHED_OTHER اجرا نمیشود.
در ردههای SCHED_FIFO و SCHED_RR زمانبندی با توجه به مقدار اولیت بلادرنگی زمانبندی میشوند که مقداری بین ۱ تا ۹۹ دارد. مقدار بالاتر متناظر با اولویت بالاتر است. در این رده، تا زمانی که پردازشی با اولیت بالاتر وجود داشته باشد، سایر پردازشها فرصت اجرا پیدا نمیکنند.
در رده SCHED_OTHER پردازشها با توجه به مقدار اولویت nice که مقداری بین ۲۰- تا ۱۹+ است زمانبندی میشوند. مقدار بالاتر متناظر با اولیت کمتر است
برای زمانبندی پردازشهای رده SCHED_OTHER از نسخه ۲.۶.۲۳ به بعد هسته لینوکس از «زمانبند کاملاً عادلانه»یا CFS استفاده میشود. پیش از این زمانبند، زمانبند مورد استفاده در هسته لینوکس نسخه ۲.۶، زمانبند مرتبه ۱ یا زمانبند O(۱) بود.
در نسخههای هسته لینوکس ۲.۴ تا قبل از ۲.۶، الگوریتم زمانبندی نسبتاً ساده بود، و زمانبند هر یک از پردازشها را بررسی میکرد و به آن امتیازی میداد، و پردازشی که بیشترین امتیاز را به دست میآورد را برای اجرا انتخاب میکرد. بنابراین پیچیدگی زمانی این الگوریتم از مرتبه O(N) بود. با اینکه الگوریتم نسبتاً ساده بود، ولی نسبتاً ناکارامد بود و برای سامانههای بلادرنگ مناسب نبود.
فریبیاسدی
فریبیاسدی از روش صف چندگانه فیدبک با اولویتهایی بین ۰ تا ۲۵۵ استفاده میکند. اولویتهای ۰ تا ۶۳ برای وقفهها رزرو شدهاند. ۶۴ تا ۱۲۷ برای نیمه بالایی هسته، ۱۲۸ تا ۱۵۹ برای ریسههای بلادرنگ کاربر، ۱۶۰ تا ۲۲۳ برای ریسههای اشتراک زمانی کاربر، ۲۲۴ تا ۲۵۵ هم برای ریسههای بیکار کاربر رزرو شدهاند. مشابه لینوکس، فریبیاسدی هم یک صف فعال دارد، اما فریبیاسدی علاوه بر این صف، یک صف بیکار هم دارد.
زمانبندی در ابر
در سال ۲۰۱۳ و ماه ژوئن دو نفر هندی به نامهای TARUN GOYAL & AAKANKSHA AGRAWAL در زمینه مدیریت زمانبندی کار در سیستمهای ابری الگوریتمی را با پایه حداقل تأخیر شبکه ای در رأی گیری ابتکاری و الگوریتم ژنتیک برای مجموعه زمانبندی کارهای مستقل ارائه شده که بتواند زمان پاسخگویی را به حداقل برساند.
در سال ۲۰۱۳ در ماه ژانویه Jing Liu, Xing-Guo Luo, Xing-Ming Zhang, Fan Zhang and Bai-Nan Li پنج نفری بودند که در مورد زمانبندی کار در پردازش ابری با استفاده از الگوریتم ژنتیک راه حلی پیشنهاد دادند به نام زمانبندی کار برای محاسبات ابری با استفاده از الگوریتم ژنتیک به صورت چند منظوره .
در سال ۲۰۱۳ و ماه جولای دو نفر به نامهای Trilok Gaba & Poonam Devi روشی را برای مدیریت زمانبندی کار به نام زمانبندی کوتاه پیشنهاد دادند که به درخواستهای کاربران به صورت کوئری به سرورهای ابری ارسال و پاسخ در کوتاهترین زمان به کاربران داده میشد .
الگوریتمهای مختلفی در این زمینه وجود دارد که زمینه زمانبندی کار در پردازش ابری بحث شده است و هر یک سعی بر این دارند که به نحوی بهترین بازدهی را با کمترین میزان مصرف انرژی و سریعترین پاسخ را داشته باشند و هر یک به نحوی سعی بر این داشتند که قسمتی از این را بهبود ببخشند ولی متاسفانه الگوریتم جامع و کاملی وجود ندارد که بهینه بودن را به صورت کامل رعایت کند . و تحقیق در این مورد میتواند راهی باشد برای اینکه در آینده ای نزدیک بتوانیم پردازشهای ابری را گسترش داده و با کمترین مصرف انرژی بیشترین بازدهی را داشته و کاربر ما در حداقل زمان جواب درخواست خود را دریافت کند و بتوانیم امنیت و دسترسی همیشگی را به صورت پایدارتر داشته باشیم .
۱-۴ مبانی نظری و بیشینه تحقیق
منشأ عبارت محاسبات ابری مبهم است، اما به نظر میرسد بخاطر اینکه شبکهها و نمودارهای محاسباتی و سیستمهای ارتباطی را به عنوان ابر روی کاغذ میکشند بوجود آمده باشد. واژه ابر به عنوان یک استعاره برای اینترنت، بر اساس استفاده استاندارد از شکل ابر مانند، به معنی یک شبکه بر روی طرحواره های تلفنی و بعداً برای به تصویر کشیدن اینترنت در دیاگرامهای شبکههای کامپیوتری به عنوان مفهومی انتزاعی از زیرساختهای اساسی آن استفاده میشود. در دهه ۱۹۹۰، شرکتهای مخابراتی که قبلاً در درجه نخست ارائه دهنده اختصاصی مدارات دادههای نقطه به نقطه بودند، شروع به ارائه خدمات شبکههای خصوصی مجازی با کیفیت قابل مقایسه اما در هزینههای بسیار پایین تر نمودند. با استفاده از سوئیچینگ ترافیک برای متعادل کردن استفاده از آنها به شکل مناسب، آنها قادر به استفاده از پهنای باند شبکه خود به شکلی موثرتر شدند. نماد ابر در مفهوم فاصله بین نقطههایی که مسئولیت ارائه دهندگی اطلاعات به کاربران را دارند مورد استفاده قرار میگیرد. محاسبات ابری این مرز را برای پوشش سرور و زیرساختهای شبکه گسترش میدهند.
مفهوم اساسی محاسبات ابری مربوط به دهه ۱۹۵۰، زمانی که پردازنده مرکزی در مقیاس بزرگ در دانشگاهها و شرکتها موجود بوده، و قابل دسترس از طریق تین کلاینتها/ کامپیوترهای ترمینالی بوده است. از آنجا که خرید پردازنده مرکزی پرهزینه بود، لازم بود برای یافتن راههایی برای بدست آوردن بیشترین بازگشت سرمایه گذاری در آنها اقدام گردد، و این اجازه میدهد تا کاربران متعدد برای به اشتراک گذاشتن دسترسی فیزیکی به کامپیوتر و زمان CPU برای حذف دوره که در صنعت به عنوان زمان عدم فعالیت شناخته شده اقدام نمایند.
از وقتی کامپیوترها متداول تر شدند، دانشمندان به بررسی راههایی برای ایجاد قدرت محاسباتی در مقیاس بزرگ و در دسترس برای کاربران از طریق به اشتراک گذاری زمان، آزمایش با الگوریتمها ارائه روشهای استفاده بهینه از این زیرساختها، پلت فرمها و برنامههای کاربردی با دسترسی اولویت بندی به CPU و بهره وری به کاربران نهایی است.
جان مک کارتی در دهه ۱۹۶۰ اظهار داشت که “محاسبات ممکن است روزی به عنوان یک ابزار عمومی ارائه گردد.” تقریباً تمام ویژگیهای امروزی محاسبات ابری (ابزارهای الاستیک، به عنوان یک ابزار آنلاین، توهم عرضه نامتناهی)، نسبت به صنعت برق و استفاده عمومی، خصوصی، دولتی، و اشکال اجتماعی، به طور کامل در کتاب “داگلاس پارک هیل” در سال ۱۹۶۶ پیرامون چالش استفاده از کامپیوتر مورد بررسی قرار گرفته است. دانشمندان دیگر نیز نشان دادهاند که ریشههای محاسبات ابری به دهه ۱۹۵۰ هنگامی که دانشمندی به نام هرب گروش (نویسنده قانون گروش ) این فرضیه را مطرح کرد که کل جهان در پایانههای ساکن و بی تحرک تحت کنترل حدود ۱۵ مرکز داده ای بزرگ کار میکند. با توجه به هزینه این کامپیوترهای قدرتمند، بسیاری از شرکتها و مؤسسات دیگر میتوانند خود را از قابلیت محاسبات از طریق به اشتراک گذاری زمان و چندین سازمان، مانند GEISCO، جنرال الکتریک، شرکت تابعه آی بی ام سرویس دفتر شرکت Tymshare (در سال ۱۹۶۶ تأسیس شد)، CSS ملی (تأسیس در سال ۱۹۶۷ و خریداری شده توسط Bradstreet در سال ۱۹۷۹)، Dial Data (خریداری شده توسط Tymshare در سال ۱۹۶۸)، و Bolt, Beranek ، اشتراک زمان را به عنوان یک سرمایه گذاری تجاری انجام دادند.
در دسترس بودن مداوم شبکههای ظرفیت بالا، رایانههای کم هزینه و دستگاههای ذخیره سازی و همچنین استفاده گسترده از مجازی سازی سختافزاری، معماری سرویس گرا، خود مختار و محاسبات سودمند منجر به رشد فوق العاده ای در محاسبات ابری گشته است.
پس از dot-com bubble، Amazon نقش کلیدی در توسعه محاسبات ابری را با نوسازی مراکز داده ای خود به انجام رسانید که مانند بسیاری از شبکههای رایانه ای، با استفاده از کمتر از ۱۰ درصد از ظرفیت خود در هر زمان، فقط به ترک فضا برای اسپایک های گاه به گاه میپرداخت. پس از دریافت این مطلب که معماری ابری به شکل قابل توجهی بهره وری داخلی را بهبود میداد و به موجب آن، “تیمهای دو پیتزایی” سریع ویژگیهای جدید را سریع تر و راحت تر میتوانستند اضافه نمایند. آمازون تلاشهایی را به منظور توسعه محصولی جدید برای ارائه محاسبات ابری به مشتریان خارجی آغاز نموده وب سرویس آمازون (AWS) را بر اساس ابزار محاسبات در سال ۲۰۰۶ راه اندازی نمود.
Eucalyptus در اوایل سال ۲۰۰۸، به اولین پلت فرم سازگار-AWS API منبع باز برای استقرار ابرهای خصوصی تبدیل شد. در اوایل سال ۲۰۰۸، OpenNebula، بودجه پروژه کمیسیون اروپا را افزایش داد، نرمافزار منبع باز برای استقرار ابرهای خصوصی و ترکیبی، و همینطور برای فدراسیون ابرها توسعه پیدا کرد. در همان سال، تلاش در ارائه تضمین کیفیت خدمات (به عنوان برنامههای کاربردی تعاملی زمان واقعی مورد نیاز) به ابر مبتنی بر زیرساختها، در چارچوب کمیسیون بودجه پروژه IRMOS اروپا، منجر به ایجاد به یک محیط ابری فوری گشت. در اواسط سال ۲۰۰۸، گارتنر فرصتی را برای انجام محاسبات ابری “، برای شکل دادن به رابطه میان مصرف کنندگان خدمات فناوری اطلاعات و کسانی که با استفاده از خدمات فناوری اطلاعات آنها را به فروش میرسانند به دست آورد” و ملاحظه کرد که “سازمانها از سختافزار و داراییهای نرمافزاری متعلق به شرکت برای استفاده از خدمات مبتنی بر مدل به طوری که تغییر برجسته محاسبات به رشد چشمگیر در محصولات فناوری اطلاعات در برخی مناطق و کاهش قابل توجهی در زمینههای دیگر منجر شود. ” در سال ۲۰۱۲، دکتر جان و دکتر خداج عبارتی معنایی را به” ابر” افزود که مجموعه ای جهانی از دادههایی که گسترش از طریق اینترنت به صورت منابع (مانند اطلاعات سختافزاری، سیستم عاملهای مختلف، خدمات و غیره) را تشکیل میدهد و واحدهای فردی درون محیطهای مجازی را هم توسط ارائه دهندگان زیرساختها، ارائه دهندگان خدمات و مصرف کننده شکل میدهد و سپس به صورت معنایی توسط کاربران مختلف قابل دسترسی خواهد بود ” را ارائه داد. (CLUSE ۲۰۱۲)، بنگلور، تا سال ۲۰۱۲.
منابع:
Jing Liu, Xing-Guo Luo, Xing-Ming Zhang, Fan Zhang and Bai-Nan Li ," Job Scheduling Model for Cloud Computing Based on Multi-Objective Genetic Algorithm", IJCSI International Journal of Computer Science Issues, Vol. ۱۰, Issue ۱, No ۳, January ۲۰۱۳ ISSN (Print): ۱۶۹۴-۷۸۴, ISSN (Online): ۱۶۹۴-۸۱۴
Armbrust M, Fox A, Griffith R, Joseph A D, Katz R, Konwinski A, Lee G, Patterson D, Rabkin A and Stoica I, “A view of cloud computing”, Communications of the ACM, Vol. 53, No. 4, 2010, pp. 50-58
Armbrust M, Fox A, Griffith R, Joseph A D, Katz R, Konwinski A, Lee G, Patterson D, Rabkin A and Stoica I, “A view of cloud computing”, Communications of the ACM, Vol. 53, No. 4, 2010, pp. 50-58
osup, A., Ostermann, S., Yigitbasi, M.N., Prodan, R., Fahringer, T. and Epema, D.H.J, “Performance Analysis of Cloud Computing Services for Many-Tasks Scientific Computing”, IEEE Transactions on Parallel and Distributed Systems, Vol. 22, No. 6, 2011, pp. 931-945.
Garg, S.K., Konugurthi P. and Buyya R, “A linear programming driven genetic algorithm for meta-scheduling on utility grids”, International Journal of Parallel Emergent and Distributed Systems, Vol. 26, No. 6, 2011, pp. 493-517