فصل دوم پایان نامه زمانبندی در رایانش ابری (docx) 69 صفحه
دسته بندی : تحقیق
نوع فایل : Word (.docx) ( قابل ویرایش و آماده پرینت )
تعداد صفحات: 69 صفحه
قسمتی از متن 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 ۲۰۱۲)، بنگلور، تا سال ۲۰۱۲.
فصل دو
مروری بر ادبیات تحقیق
۲-۱ مقدمه :
رایانش ابری مدل رایانشی بر پایه اینترنت است که الگویی تازه برای عرضه، مصرف و تحویل سرویسهای فناوری اطلاعات (شامل نرمافزار، اطلاعات ومنابع اشتراکی رایانشی) با به کارگیری اینترنت ارائه میکند. رایانش ابری راهکارهایی برای ارائه خدمات فناوری اطلاعات به شیوههای مشابه با صنایع همگانی (آب،برق،تلفن و ...) پیشنهاد میکند. این بدین معنی است که دسترسی به منابع فناوری اطلاعات در زمان تقاضا و بر اساس میزان تقاضای کاربر به گونهای انعطاف پذیر و مقیاس پذیر از راه اینترنت به کاربر تحویل داده میشود. واژه (ابر)واژهای است استعاری که به اینترنت اشاره میکند و در نمودارهای شبکههای رایانهای نیز از شکل ابر برای نشان دادن شبکه اینترنت استفاده میشود. دلیل تشبیه اینترنت به ابر در این است که اینترنت همچون ابری جزئیات فنیاش را از دید کاربران پنهان میسازد و لایهای از انتزاع را بین این جزئیات فنی و کاربران به وجود میآورد. آنچه یک ارائه دهنده رایانش ابری ارائه میکند برنامههای کاربردی تجاری برخط است که از طریق مرورگر وب یا نرمافزارهای دیگر به کاربران ارائه میشود. نرمافزارهای کاربردی و اطلاعات روی سرورها ذخیره میگردند و براساس تقاضا در اختیار کاربران قرار میگیرد. جزئیات از دید کاربر مخفی میمانند و کاربران نیازی به تخصص یا کنترل در مورد فناوری زیرساخت ابری که از آن استفاده میکنند ندارند.
رایانش ابری را گروهی تغییر الگو واره ای میدانند که دنباله روی تغییری است که دراوایل دهه ۱۹۸۰ از مدل رایانه بزرگ به مدل کارخواه-کارساز صورت گرفت.
تعریف رایانش ابری
موسسه ملی فناوری و استانداردها (NIST) رایانش ابری را اینگونه تعریف میکند :
رایانش ابری مدلی است برای داشتن دسترسی فراگیر، آسان و بنا به سفارشِ شبکه به مجموعهای از منابع رایانشی پیکربندیپذیر (مثل: شبکهها، سرورها، فضای ذخیرهسازی، برنامههای کاربردی و سرویسها) که بتوانند با کمترین کار و زحمت یا نیاز به دخالت فراهمکننده سرویس به سرعت فراهم شده یا آزاد (رها) گردند.
عموماً مصرف کنندههای رایانش ابری مالک زیر ساخت فیزیکی ابر نیستند، بلکه برای اجتناب از هزینه سرمایهای آن را از عرضه کنندگان شخص ثالث اجاره میکنند. آنها منابع را در قالب سرویس مصرف میکنند و تنها بهای منابعی که به کار میبرند را میپردازند. بسیاری از سرویسهای رایانش ابری ارائه شده، با به کار گیری مدل رایانش همگانی امکان مصرف این سرویسها را به گونهای مشابه با صنایع همگانی(مانند برق) فراهم میسازند. این در حالی است که سایر گونههای عرضه کنندگان بر مبنای اشتراک سرویسهای خود را عرضه میکنند. به اشتراک گذاردن قدرت رایانشی «مصرف شدنی و ناملموس» میان چند مستأجر میتواند باعث بهبود نرخ بهره وری شود؛ زیرا با این شیوه دیگر کارساز(سرور)ها بدون دلیل بیکار نمیمانند (که سبب میشود هزینهها به میزان قابل توجهی کاهش یابند در عین حال که سرعت تولید و توسعه برنامههای کاربردی افزایش مییابد). یک اثر جانبی این شیوه این است که رایانهها به میزان بیشتری مورد استفاده قرار میگیرند زیرا مشتریان رایانش ابری نیازی به محاسبه و تعیین حداکثری برای بار حداکثر (Peak Load) خود ندارند.
مقایسه با مدلهای دیگر رایانش
رایانش ابری اگرچه برخی از ویژگیهایش را از مدلهای رایانشی دیگر به ارث میبرد؛ اما خود متفاوت از آنهاست. برخی از این مدلها عبارتاند از:
۱.رایانش شبکهای: شکلی از رایانش توزیع شده و رایانش موازی که در آن یک رایانه مجازی بزرگ از رایانههایی تشکیل شده است که با جفتگری ضعیف به هم شبکه شدهاند و با هماهنگی با یکدیگر کار میکنند تا وظایف سنگین را به انجام برسانند .
۲.رایانش خودمختار: سامانههای رایانهای با قابلیت خود-مدیریت.
۳.مدل کارخواه - کارساز: رایانش کارخواه - کارساز به صورت گسترده به هر برنامه کاربردی توزیع یافته ای گفته میشود که بین ارائه دهنده سرویس (کارساز) و درخواست کننده سرویس (کارخواه ) تمایز قائل میشود.
۴.رایانه بزرگ: رایانههای قدرتمند توسط سازمانهای بزرگ برای کاربردهای بحرانی بکار برده میشوند.این کاربردها نوعاً شامل پردازش حجم زیاد داده میباشد. به طور نمونه میتوان از سرشماری، آمار مصرف کننده و صنعت،برنامهریزی منابع سازمانی(ERP) و پردازش تراکنشهای مالی نام برد.
۵.رایانش همگانی: عبارت است از بسته بندی منابع رایانشی مانند منابع محاسباتی و دخیره سازی، در قالب سرویسهای قابل اندازه گیری، به گونهای مشابه با صنایع همگانی (آب،برق،تلفن و ...)
۶.نظیر به نظیر : گونهای از معماری توزیع شده بدون هماهنگی مرکزی است که در آن شرکت کنندگان میتوانند در آن واحد عرضه کننده و نیز مصرف کننده منابع باشند. (بر خلاف مدل کارخواه-کارساز سنتی)
۲-۲ تاریخچه
پیدایش مفاهیم اساسی رایانش ابری به دهه ۱۹۶۰ بازمی گردد. زمانی که جان مک کارتی اظهار داشت که " رایانش ممکن است روزی به عنوان یکی از صنایع همگانی سازماندهی شود." تقریباً تمام ویژگیهای امروز رایانش ابری (تدارک الاستیک، ارائه به صورت یک صنعت همگانی، برخط بودن و توهم دسترسی به عرضه نامحدود) به همراه مقایسه با صنعت برق و شکلهای مصرف عمومی وخصوصی و دولتی وانجمنی را پارک هیل داگلاس در کتابی که با عنوان «مشکل صنعت همگانی رایانه» در سال ۱۹۶۶ مورد بررسی قرار داد. واژه ابر در واقع بر گرفته از صنعت تلفن است به این گونه که کمپانیهای ارتباطات راه دور که تا دهه ۱۹۹۰ تنها خطوط نقطه به نقطه اختصاصی ارائه میکردند، شروع به ارائه شبکههای خصوصی مجازی با کیفیتی مشابه و قیمتهای کمتر نمودند. نماد ابر برای نمایش نقطه مرزی بین بخشهایی که در حیطه مسئولیت کاربرند و آنهایی که در حیطه مسئولیت عرضه کننده بکار گرفته میشد. رایانش ابری مفهوم ابر را به گونهای گسترش میدهد که سرورها را نیز علاوه برزیر ساختهای شبکه در بر گیرد.
سایت آمازون با مدرن سازی مرکز داده خود نقش مهمی در گسترش رایانش ابری ایفا کرد. بعد از حباب دات -کام آنها دریافتند که با تغییر مرکز دادههای خود که ماننداغلب شبکههای رایانهای در بیشتر اوقات تنها از ۱۰٪ ظرفیت آن استفاده میشدو مابقی ظرفیت برای دورههای کوتاه اوج مصرف در نظر گرفته شده بود - به معماری ابر میتوانند بازده داخلی خود را بهبود بخشند. آمازون از سال ۲۰۰۶ امکان دسترسی به سامانه خود از طریق وب سرویسهای آمازون را بر پایه رایانش همگانی ارائه کرد. در سال ۲۰۰۷، گوگل و آی بی ام به همراه چند دانشگاه پروژهای تحقیقاتی در مقیاسی بزرگ را در زمینه رایانش ابری آغاز نمودند.
در اواسط سال ۲۰۰۸ شرکت گارتنر متوجه وجود موقعیتی در رایانش ابری شد که برای «شکل دهی ارتباط بین مصرف کنندگان خدمات فناوری اطلاعات، بین آنهایی که این سرویسها را مصرف میکنند و آنها که این سرویسها را میفروشند» بوجود میآید.
اقتصاد رایانش ابری
کاربران رایانش ابری میتوانند از هزینه سرمایهای لازم برای خرید سختافزار و نرمافزار و خدمات دوری کنند، زیرا آنها تنها برای آنچه که استفاده میکنند به عرضه کنندگان پرداخت میکنند و هزینه اولیهای برای خرید تجهیزات به آنها تحمیل نمیشود. سایر مزایای اقتصادی این شیوه اشتراک زمانی در ارائه منابع رایانشی عبارتاند از: موانع ورود به بازار کمتر، هزینه و زیر ساخت اشتراکی، سربار مدیریتی کمتر و دسترسی سریع به طیف وسیعی از برنامههای کاربردی.
عموماً کاربران میتوانند در هر زمانی قراردادشان را پایان دهند (و به این وسیله از ریسک و عدم قطعیت در نرخ بازگشت سرمایه بکاهند) و غالباً سرویسها زیر پوشش یک قرارداد سطح سرویس با جریمههای مالی قرار میگیرند.
بنا به گفته نیکلاس کار ، اهمیت راهبردی (استراتژیک) فناوری اطلاعات با استاندارد شدن و ارزان تر شدن آن کاهش مییابد. او استدلال میکند که تغییرالگوواره رایانش ابری شبیه به جایگزینی ژنراتورهای مولد برق با شبکههای توزیع برق است که در اوایل قرن بیست رخ داد. اگر چه کمپانیها ممکن است بتوانند هزینههای پیش پرداختی سرمایهای را حذف کنند اما در مورد هزینههای عملیاتی کاهش چندانی صورت نمیگیرد و ممکن است در عمل هزینههای عملیاتی افزایش یابند. در مواردی که هزینههای سرمایهای نسبتاً کوچک باشند یا سازمان انعطاف پذیری بیشتری در مورد هزینههای سرمایهای نسبت به هزینههای عملیاتی داشته باشد، از دیدگاه مالی رایانش ابری انتخاب مناسبی نخواهد بود. سایر عواملی که بر میزان کاهش هزینه بالقوه استفاده از رایانش ابری تأثیر میگذارند عبارتاند ازمیزان بازدهی مرکز دادههای کمپانی در مقایسه با فروشندگان رایانش ابری، هزینههای عملیاتی فعلی کمپانی، میزان پذیرش و استفاده از رایانش ابری و نوع کاربردی که باید در ابر میزبانی شود.
۲-۳ ساختار مدل معماری
شکل ۲-۱ ساختار معماری
معماری نمونه رایانش ابری
معماری سامانههای نرمافزاری دست اندر کار در ارائه رایانش ابری عموماً شامل اجزایی است که با یکدیگر از طریق رابط برنامهنویسی نرمافزار و معمولاً وبسرویس ارتباط برقرار میکنند. این طراحی شباهتی با فلسفه یونیکس دارد که در آن چند برنامه مختلف که هر یک کاری را به خوبی انجام میدهند، با یکدیگر از طریق واسطهای جهانی کار میکنند. پیچیدگی کنترل میشود و سامانههای حاصل مدیریت پذیرتر از همتاهای یکپارچه خود هستند.
لایهها
شکل ۲-۲ نمایی از لایهها
پشته رایانش ابری
کاربر
کاربر رایانش ابری متشکل از سختافزار و نرمافزاری است که برای تحویل برنامههای کاربردی از ابر استفاده میکند و یا آنکه به طورویژه تنها برای تحویل سرویسهای ابر طراحی شده است که در هر دوی موارد بدون وجود ابر بی استفاده باشد. مثال: رایانهها، تلفنها و سایر دستگاهها، سیستمعاملها و مرورگرهای وب.
برنامههای کاربردی
سرویسهای برنامه کاربردی ابری یا (نرمافزار به عنوان سرویس) (SaaS)، نرمافزار را به صورت سرویس روی اینترنت تحویل میدهند و بدین وسیله نیاز به نصب نرمافزار روی رایانههای مشتریان را ازبین میبرند و نگهداری و پشتیبانی را ساده تر میسازد. ویژگیهای اصلی این سرویسها عبارتاند از:
•دسترسی و مدیریت نرمافزار تجاری از طریق شبکه
•فعالیتهایی که از سوی مراکزی اداره میشوند و نه در مکان هریک از مشتریان و در نتیجه مشتریان میتوانند از راه دور و از طریق وب به برنامهها دسترسی داشته باشند.
•مدل تحویل نرمافزار به مدل یک-به-چند (یک نسخه در حال اجرا از برنامه - مدل چند مستأجری) نزدیک تر است تا مدل یک-به-یک.
•به روز رسانی و ارتقای نرمافزار به صورت مرکزی اداره میشود و نیاز به بارگیری (دانلود) وصلهها یا ارتقا دهندهها را برطرف میسازد.
بستر
سرویسهای بستر ابری یا «بستر به عنوان سرویس»(PaaS) بستر رایانشی ویا پشته راهکار -که اغلب روی زیرساخت ابری اجرا شده و برنامه کاربردی ابری را تغذیه میکند- را به صورت سرویس ارائه میدهد. سرویس بستر ابری استقرار برنامههای کاربردی را بدون هزینه و پیچیدگی خرید و مدیریت لایههای نرمافزاری و سختافزاری زیرین آسان میسازد.
زیرساخت
سرویسهای زیرساخت ابری یا «زیرساخت به عنوان سرویس»(IaaS) زیرساخت رایانهای را که عموماً یک بستر مجازی است را به صورت سرویس ارائه میدهند. کاربران به جای خرید سختافزار و نرمافزار و فضای مرکز داده (دیتا سنتر) ویا تجهیزات شبکه، همه این زیر ساختها را به صورت یک سرویس کاملاً برونسپاری(Outsource) شده میخرند. صورتحساب سرویس معمولاً بر اساس مدل رایانش همگانی (Utility Computing) و میزان منابع مصرف شده صادر میشود و بنابر این هزینه منعکس کننده میزان فعالیت است. این شیوه در واقع تکامل یافته مدل عرضه سرورهای خصوصی مجازی است.
سرور
لایه سرورها متشکل از سختافزار و نرمافزاری است که مخصوصاً برای تحویل سرویسهای ابر طراحی شدهاند. به عنوان مثال میتوان از پردازندههای چند هستهای و سیستم عملهای ویژه ابر نام برد.ویژگیهای کلیدی
از دیدگاه سختافزاری رایانش ابری در مقایسه با فناوریهای مشابه قبلی سه جنبه جدید دارد:
•ایجاد تصور و توهم دسترسی به منابع نامحدود فناوری اطلاعات در زمان تقاضا و درنتیجه، از بین بردن نیاز کاربر به برنامه ریزی تدارک منابع فناوری اطلاعات برای مصارف آینده
•از بین بردن نیاز به سرمایه گذاری پیشاپیش برای منابع فناوری اطلاعات. شرکتهای تجاری میتوانند در اندازه کوچکتر کارشان را آغاز کنند و بر اساس نیاز در زمان دلخواه منابع سختافزاری مورد نیاز خود را افزایش یا کاهش دهند.
•امکان پرداخت برای استفاده از منابع فناوری اطلاعات در واحدهای زمانی کوتاه مدت مورد نیاز آن منبع. (مثال: برای پردازشگر در واحد ساعت؛ یا برای رسانههای ذخیرهسازی در واحد روز)
مزایای اصلی رایانش ابری عبارتاند از:
•چابکی: کاربر میتواند در زمان نیاز میزان منابع مورد استفاده را کاهش یا افزایش دهد.
•هزینه: ادعا میشود که این فناوری هزینهها را به میزان زیادی کاهش میدهد و هزینه سرمایهای را به هزینه عملیاتی تبدیل میکند.این به ظاهر موانع ورود به بازار را کاهش میدهد، زیرا رایانش ابر، مشتریان را از مخارج سختافزار، نرمافزار و خدمات و همچنین از درگیری با نصب و نگهداری نرمافزارهای کاربردی به شکل محلی میرهاند. همچنین هزینه توسعه نرمافزاری را کاهش داده و فرآیند را مقیاس پذیرتر مینماید
نابستگی به دستگاه و مکان: کاربران میتوانند در هر مکانی و با هر دستگاهی (مثل PC یا تلفن همراه) به وسیله یک مرورگر وب از راه اینترنت به سامانهها دسترسی داشته باشند.
چند مستأجری : این ویژگی امکان به اشتراک گذاری منابع و هزینهها بین گروهی از کاربران را به وجود میآورد و بدین وسیله موارد زیر را امکانپذیر میسازد:
متمرکز سازی زیر ساختها در مکانهایی با هزینه کمتر (مثل مکانهایی با هزینه برق یا قیمت زمین کمتر)
افزایش بکارگیری و کارایی برای سامانههایی که در اغلب مواقع بیش از ۱۰ تا ۲۰ درصد بکارگیری نمیشوند
•قابلیت اطمینان : در صورتی که از سایتهای چندگانه استفاده شود فابلیت اطمینان افزایش مییابد.
•مقیاس پذیری : کاربران میتوانند در زمان تقاضا و به صورت دینامیک منابع را تدارک ببینند و نیازی به تدارک پیشین برای زمانهای حداکثر بار مصرف منابع نیست.
•امنیت: به دلیل تمرکز دادهها و منابع امنیتی بیشتر و پیچیده تر امنیت افزایش مییابد، اما نگرانیها به دلیل از دست دادن کنترل روی دادههای حساس همچنان پابرجاست. امنیت در رایانش ابری اغلب بیشتر یا برابر با سیستمهای سنتی میباشد، زیرا ارائه دهندگان رایانش ابری به منابع اختصاصی امنیتی دسترسی دارند که بیشتر مشتریان از عهده خرید این منابع بر نمیآیند.
•نگهداری: به دلیل عدم نیاز به نصب برنامههای کاربردی برای هر کاربر نگهداری آسانتر و با هزینه کمترانجام میشود. شرکتهایی که سکوهای خودشان را پیاده سازی و اجرا میکنند، باید زیرساختهای سختافزاری و نرمافزاری خودشان را خریداری و نگهداری نمایند و کارمندانی را برای مراقبت از سیستم استخدام کنند، همه اینها میتواند پر هزینه و زمان بر باشد. درحالیکه رایانش ابر نیاز به انجام این کارها را از میان میبرد.هر دستگاه ساده که توانایی اتصال و برقراری ارتباط با سرور را داشته باشد، برای استفاده از خدمات رایانش ابر کافی است و میتواند نتایج را با دیگران به تشریک مساعی بگذارد.
•سنجش پذیری: منابع در رایانش ابری باید قابل اندازه گیری باشند و لازم است که میزان مصرف منابع برای هر کاربر و هر منبع بر اساس واحدهای ساعتی، روزانه، هفتگی، ماهانه اندازه گرفت.
مدلهای پیادهسازی
شکل ۲-۳ نمایی پیاده سازی ابر
۲-۴ گونههای رایانش ابری
ابر عمومی
ابر عمومی یا ابر خارجی توصیف کننده رایانش ابری در معنای اصلی و سنتی آن است. سرویسها به صورت دینامیک و از طریق اینترنت و در واحدهای کوچک از یک عرضه کننده شخص ثالث تدارک داده میشوند و عرضه کننده منابع را به صورت اشتراکی به کاربران اجاره میدهد (Multi-tenancy) و بر اساس مدل رایانش همگانی و مشابه صنعت برق و تلفن برای کاربران صورتحساب میفرستد.
ابر گروهی
ابر گروهی در جایی به وجود میآید که چندین سازمان نیازهای یکسان دارند و به دنبال این هستند که با به اشتراک گذاردن زیرساخت از مزایای رایانش ابری بهرهمند گردند. به دلیل اینکه هزینهها بین کاربران کمتری نسبت به ابرهای عمومی تقسیم میشود، این گزینه گرانتر از ابر عمومی است اما میزان بیشتری از محرمانگی، امنیت و سازگاری با سیاستها را یه همراه میآورد. نمونه یک ابر انجمنی، «ابر گو گوگل»(Gov Cloud) است.
ابر آمیخته
یک ابر آمیخته متشکل از چندین ارائه دهنده داخلی و یا خارجی، گزینه مناسبی برای بیشتر مؤسسات تجاری میباشد. با ترکیب چند سرویس ابر کاربران این امکان را مییابند که انتقال به ابر عمومی را با دوری از مسائلی چون سازگاری با استانداردهای شورای استانداردهای امنیت دادههای کارتهای پرداخت آسانتر سازند.
ابر خصوصی
ابر خصوصی یک زیر ساخت رایانش ابری است که توسط یک سازمان برای استفاده داخلی آن سازمان به وجود آمده است. عامل اصلی که ابرهای خصوصی را از ابرهای عمومی تجاری جدا میسازد، محل و شیوه نگهداری از سختافزار زیرساختی ابر است. ابر خصوصی امکان کنترل بیشتر بر روی تمام سطوح پیاده سازی ابر (مانند سختافزار، شبکه، سیستم عامل، نرمافزار) را فراهم میسازد. مزیت دیگر ابرهای خصوصی امنیت بیشتری است که ناشی از قرارگیری تجهیزات در درون مرزهای سازمان و عدم ارتباط با دنیای خارج ناشی میشود. اما بهره گیری از ابرهای خصوصی مشکلات ایجاد و نگهداری را به همراه دارد. یک راه حل میانه برای دوری از مشکلات ابرهای خصوصی و در عین حال بهره مند شدن از مزایای ابرهای خصوصی، استفاده از ابر خصوصی مجازی است. ابر خصوصی مجازی بخشی از زیر ساخت یک ابر عمومی است که برای استفاده اختصاصی یک سازمان کنار گذارده میشود و دسترسی به آن تنها از راه شبکه خصوصی مجازی IPSec امکانپذیر است. (به عنوان نمونه میتوان از ابر خصوصی مجازی آمازون نام برد.
رسانه ذخیره سازی ابری مدلی از ذخیره سازی بر پایه شبکه است که در آن دادهها بر روی چندین سرور (کارساز) مجازی ذخیره میشود. معمولاً این سرویس توسط شرکتهای میزبانی ارائه میشود که مراکز داده بزرگی را در اختیار دارند. افرادی که بخواهند دادههایشان توسط این شرکتها میزبانی شود میتوانند فضای ذخیره سازی را از آنها بخرند و یا اجاره کنند. از سوی دیگر گردانندگان مراکز دادهها منابع خود را، مطابق نیازهای مشتریان، مجازی سازی میکنند و سرویس را به صورت سرورهای مجازی ارائه میدهند که قابل مدیریت توسط کاربران است. در عمل دادههای ذخیره شده روی یک سرور مجازی ممکن است بر روی چندین سرور فیزیکی مختلف ذخیره شده باشند.
میان ابر
میان ابر ابری جهانی از ابرهای به هم پیوستهاست « که از گسترش مفهوم اینترنت به عنوان شبکه شبکهها نتیجه میشود. این واژه نخستین بار در سال ۲۰۰۷ توسط کوین کلی بکار رفت که نظر خود را اینگونه بیان کرد که »ما سرانجام به میان ابر خواهیم رسید که ابر ابرهاست. این میان ابر ابعادی به اندازه یک ماشین متشکل از تمام سرورها و شرکت کنندههای روی زمین است.«این واژه در سال ۲۰۰۹ مقبولیت عام یافت و همچنین برای توصیف مراکز داده آینده بکار رفته است.
۲-۵ چالشها
آسیب پذیری در برابر رکود اقتصادی
مدل خدمات رایانهای، در مقابل رکود اقتصادی بسیار آسیب پذیر است. همانگونه که شرکتها در طی یک رکود محتاطانه عمل میکنند، هزینههای صرف شده برای خدمات رایانهای را نیز کاهش میدهند.
شکل جدید نرمافزارها
متخصصین نرمافزار در راه ایجاد نرمافزاری که یک میلیونها کاربر به جای اجرای آن بر روی کامپیوترهای شخصی خود، بتوانند از آن مانند یک سرویس استفاده کنند، با چالشهای متعدد جدیدی مواجه شدهاند.
پذیرش
این رویکرد نسبتاً تازه است ودر بسیاری موارد هنوز پذیرفته نشدهاست. دپارتمانهای IT هنوز نسبت به آن بسیار محتاط عمل میکنند زیرا سکوی رایانش ابر توسط آنها کنترل نخواهد شد. تاکنون سرمایه گذارانی که جرأت سرمایه گذاری در پروژههای مخاطره آمیز را دارند، پول زیادی در رایانش ابر سرمایه گذاری نکردهاند. توانایی کنترل هزینهها و تهیه و تدارک زیرساختها بهنگام نیاز، به ویژه باعث جذب کسب و کارهای جدیدی که منابع کمتری در اختیار داشتند، شد. همچنین شرکتهای Web ۲ که در حالت عادی منابع کمتری دارند و بدنبال کسب تواناییِ افزایش یا کاهشِ آسان تقاضا، بهنگام نیاز هستند. شرکتهای بزرگتر، که عموماً صبر میکنند تا تکنولوژیهای جدید پذیرفته شوند، از برای پروژههای موقت و گاه و بیگاهی استفاده میکنند که منابع اضافی زیادی را میطلبند. مثل همه رویکردهای تازه پدیدار شده، میزانی از بیم، عدم اطمینان و قطعیت، و نگرانیهایی درباره بالندگی این تکنولوژی وجود دارد.
کنترل
ارائه دهندگان خدمات، معمولاً سکوها را برای پشتیبانی از شیوههای تجاری و ITی یک شرکت خاص طراحی نمیکنند. همچنین، کاربران قادر به تغییر تکنولوژیِ سکوها به هنگام نیاز نخواهند بود. گرچه ارائه دهندگان میتوانند با توجه به اینکه چه تکنولوژی ای به بهترین نحو نیازها را پاسخ میدهد و بهنگام نیاز آن را تغیییر دهند که این کار بدون موافقت یا رضایت مشتریان انجام میگیرد.
هزینههای پهنای باند
به لطف پهنای باند بالای شبکه، کاربر حتی هنگامی که در حال استفاده از وب به عنوان یک کامپیوتر فراگیر است، احساسِ کار بر روی سیستم محلی را دارد. با اینحال مشکل زیر پیش میآید:
در حالیکه شرکتها به کمک رایانش ابر، میتوانند در هزینه تجهیزات و نرمافزارها صرفه جویی کنند، اما باید متحمل هزینه شارژ بالاتری برای پهنای باند بشوند. احتمالاً هزینه پهنای باند باید برای نرمافزارهای کاربردی مبتنی بر وب کوچک که داده-متمرکز نیستند کمتر خواهد بود، اما هنگامی که مثلاً یک شرکت، پایگاه دادهای چند ترابایتی را از طریق رایانش ابر اجرا میکند، این هزینه میتواند بسیار بالا باشد.
محبوس شدن توسط ارائه دهندگان و استانداردها
نیاز به استانداردهای باز برای تمام شیوههای استفاده از وب به عنوان یک کامپیوتر فراگیر وجود دارد. با افزایش تعداد ارائه دهندگان خدمات ابری، اهمیتِ قابلیت جابجایی بیشتر خواهد شد. اگر شرکتی از خدمات یکی از ارائه کنندگان ناراضی باشد — یا اگر فروشنده از این کسب و کار کنار بکشد — نمیتواند لزوماً آسان و با هزینهای کم، به ارائه دهنده دیگر منتقل شود و یا اینکه خدمات مذکور را دوباره به درون شرکت برگرداند. در عوض، شرکت باید دادهها و نرمافزارهای کاربردیاش را قالب بندی مجدد نموده و آنها را به یک ارائه دهنده جدید منتقل کند، که فرایندی بالقوه پیچیده است. و اگر بخواهد خدمات را بدرون شرکت بیاورد، باید کارمندانی را که واجد مهارتهای لازم برای کار با این تکنولوژی هستند، استخدام کند.کاربران به طور روزافزون به وب و ارائه دهندگان آن وابسته خواهند شد. به این ترتیب، هنگامیکه ارائه دهندگان خدمات شرایط استفاده از خدمات و یا روشهای عملیاتی خود را بعد از مدتی تغییر بدهند، کاربران آنها احساس به دام افتادن و درماندگی میکنند. برای مثال، تحمیل محدودیتهای جدید بر استفاده از یک قابلیت و یا از کار انداختن آن به مدت چند ماه بمنظور بهبود بخشیدن به آن. همچنین ممکن است ارائه دهندگان تصمیم به حذف یک قابلیت که سالها در سایت رایگان ارائه میشد، اما در مقابل بخش بهادار خود را حفظ کند و حتی افزایش قیمت بدهد.
شفافیت دسترسی
اگر شرکتها نتوانند نشان دهند که چه کسی به دادههای مشتریان دسترسی دارد و چگونه مانع دستیابی کارمندان غیر مجاز به اطلاعات میشوند، نخواهند توانست از حسابرسیِ ظرفیتهای خود، به وسیله مشتریانِ آینده با موفقیت بیرون بیایند. ارائه دهندگان رایانش ابر این نگرانی را به کمک نظارت قبلی third partyها بر سیستمها و به وسیله مستند سازی رویههای طراحی شده برای پاسخگویی به نیازهای امنیتِ داده برای مشتریان رفع میکنند.
قابلیت اطمینان
رایانش ابر همیشه قابلیتِ اعتمادِ مستمری را ارائه نکردهاست. مثلاً، مشتریان Salesforce.com در تاریخ ۱۲ فوریه ۲۰۰۸، به مدت ۶ ساعت قادر به دریافت خدمات نبودند. و سه روز بعد خدمات Amazon’s S۳ و EC۲ به مدت ۳ ساعت دچار وقفه شدند.
حفظ حریم خصوصی
طرفداران حفظ حریم خصوصیها مدل ابر را مورد انتقاد قرار میدهند، زیرا ارائه دهندگان سرویسهای ابر میتوانند کنترل و نظارت کامل قانونی ویا غیر قانونی بر روی دادهها و ارتباطات بین کاربران سرویس و میزبان ابر داشته باشند. رویدادهایی همچون برنامه مخفی آژانس امنیت ملی ایالات متحده آمریکا به همراه شرکتهای AT&T و Verizon که بیش از ده میلیون مکالمه تلفنی شهروندان امریکایی را ضبط نمودند، باعث بوجود آمدن بی اعتمادی میان طرفداران حفظ حریم خصوصی شده است.
امنیت
امنیت نسبی رایانش ابری موضوعی بحث انگیز است که ممکن است پذیرش رایانش ابری را به تأخیر بیندازد. گروهی بر این باورند که امنیت دادهها وقتی که در داخل سازمان اداره شوند بالاتر است، در حالی که گروهی دیگر عقیده دارند که ارائه دهندگان سرویس انگیزهای قوی برای حفظ اعتماد دارند و ازاینرو سطح امنیت بالاتری را بکار میگیرند.
میزان در دسترس بودن و کارایی
علاوه بر امنیت دادهها، میزان در دسترس بودن و کارایی برنامههای کاربردی که روی ابر میزبانی میشوند برای کاربران از اهمیت بالایی برخوردار است.
انتقاد از واژه
لری الیسون مدیر ارشد اجرایی شرکت اوراکل گفته است که رایانش ابری چیزی است که «در حال حاضر ما از آن استفاده میکنیم» و هیچ تأثیری در آن نگذاشتهاست به جز «تغییر کلمات در تبلیغات ما».
ریچارد استالمن گفته است که رایانش ابری فقط یک حیله ساده است که مردم مجبور شوند از سیستمهای انحصاری استفاده کنند که هزینه آن بیشتر و بیشتر از قبل است. او به گاردین گفت:(این احمقانه است، این چیزی بدتر از احمقانه است، این فقط بزرگنمایی در بازاریابی است.)
نگاهی به آینده
رایانش ابر بطور چشمگیری موانع ورود به تجارت نرمافزاری را کاهش میدهد و برای شرکتها روشهای جدیدِ کسب سود را مینمایاند. ارائه دهندگان خدمات ابر از طریق تسهیم، بهبود دادن و سرمایه گذاری بیشتر در نرمافزار و سختافزار به سود دست میابند- یکبار نصب نرمافزار میتواند نیازهای کاربران متعددی را پوشش دهد.نیرو محرکههای اصلی ای که پشت سر رایانش ابر قرار دارند عبارتاند از فراگیری شبکه بیسیم و پهن باند، کاهش هزینههای ذخیره سازی ، و بهبود تصاعدی در نرمافزارهای پردازشگر اینترنتی. مشتریان خدمات ابر قادر خواهند بود تا ظرفیت بیشتری را در هنگام اوج تقاضا به سیستم خود تزریق کنند، هزینهها را کاهش داده، خدمات نوینی را تجربه کنند، و ظرفیتهای بلا استفاده را حذف کنند. بدین ترتیب، وب از منابع محاسباتی قدرتمند با قیمتهایی قابل پرداخت، میزبانی میکند و سازمانها بسته به شرایط اقتصادی وضعیت موجود خود- یعنی اینکه خرید نرمافزار و زیرساختها ارزان تر است یا خرید سرویس بر حسب نیاز- از امکانات رایانشی درون سازمانی یا خدمات ابر خارجی استفاده میکنند. در قرن ۲۱ شاهد افزایش تمایل استفاده از وسایل قابل حمل سبک برای دسترسی به خدمات اینترنت بجای کامپیوترهای شخصی هستیم. از آنجاییکه چنین وسایلی، امکانات پردازشی قوی ندارند (بعبارتی علاقه ای به داشتنِ چنین امکاناتی ندارند) ، پس چه کسی قدرت پردازشی را تأمین خواهد کرد؟ پاسخ به این سؤال در رایانش ابر نهفته است .
۲-۶ سرویسهای رایج بر روی ابرها:
ابرها درصورتی که عمومی یا خصوصی باشند در نوع سرویس با هم تفاوت دارند .در زیر ۳ سرویس برجسته از ابرها را بررسی میکنیم :
سرویس به نرمافزار یا SaaS
SaaS به دسترسی از راه دور(Remote) کاربر به یک محصول با سرویس e-commerce از طریق اینترنت اشاره دارد .این مدل شناخته ترین میباشد که اغلب کاربران با نمونههای از SaaS کار کرده اند .
SaaS که آنرا Software on demand نیز مینامند ٬ نرمافزاری است که روی اینترنت گسترش داده شده و کاربران میتوانند در ازای پرداخت مبلغ و یا رایگان از آن استفاده کنند .جیمیل ٬ spscommerce.net و هر نرمافزار تحت وب آنلاین از این نمونه است .
سرویس به پلتفرم یا PaaS
در این مدل به جای نرمافزار ٬ پلتفرم مانند یک سرویس است .با PaaS نرمافزارها را میتوان بدون صرف هزینه و پیچیدگی در خرید و مدیریت سختافزارها و نرمافزارهای اصلی و همچنین مهیا کردن امکانات Hosting گسترش داد و توسعه دهندههای نرمافزار برای ایجاد برنامههای جدید یا توسعه برنامههای قبلی نیاز به صرف هزینههای Development نیستند .
سیستم عامل Azure از مایکروسافت و Google’s apps Engin نمونههایی از این سرویسها میباشند .
سرویس به زیرساخت یا IaaS
آخرین نوع ٬ IaaS نام دارد که به توسعه دهندها اجازه بیشتری برای تعامل با زیر ساختار سرور میدهد . توانایی کنترل سختافزار و نرمافزار از طریق اینترنت ٬ کنترل روی سیستم عامل ٬ دیسکهای ذخیره سازی ٬ دیتابیس و … از امکانات این سرویسها میباشد .اغلب دیتاسنترها چنین سرویسهای را ارائه میدهند که میتوان با پلتفرم VMware روی سرور کنترل کامل داشت .
درکل با IaaS میتوان زیر ساختار کامپیوتر و محیط پلتفرم مجازی ساز را مانند یک سرویس ارائه داد . سرویس AWS آمازون یکی از این نمونهها میباشد .
این تصور که در ۲۰۱۹، همه پردازشهای خود را از طریق لپ تاپها با هزینه ای کمتر از ۱۰۰ دلار انجام خواهیم داد، در حالیکه هیچ مشکلی در زمینه خدمات و سطوح امنیتی نخواهیم داشت ،مسلماً فراتر از واقعیت است اما مطمئناً در آینده ازابرها بشکل بسیار گسترده ای استفاده خواهیم کرد. پتانسیل رشد این تکنولوژی بسیار بالا برآورد شده است.
۲-۷ الگوریتمهای زمانبندی موجود در ابرها
محاسبات ابری مدلی است برای توانمندسازی دسترسی فراگیر، راحت و تقاضا محور شبکه ای به مجموعه ای از منابع محاسباتی اشتراکی و قابل پیکربندی از قبیل شبکهها ، سرویس دهندهها ، فضای ذخیره سازی ، سرویسهای کاربردی و سایر سرویسها، که میتوان به سرعت انها را تأمین کرد و با کمترین تلاش و تماس با مدیر سرویس دهنده، آنها را نهایی و قابل استفاده نمود
رویکردی که در سرویسهایی محاسبات ابری دنبال میشود عبارت است از پرداخت مبلغ مشخصی برای منابع مور تقاضا و در اختیار گرفتن منبع برای مدت زمان توافق شده. ازاینروش در حال حاضر سرویس دهندههای معروف ابری از جملهAmazon EC۲ به صورت محاسبه منبع به ازاء استفاده ساعتی از CPU بهره میبرند . اگر چه این روش از ابتداییترین روشهای فروش کالا یا خدمات میباشد، اما از تعامل پیچیده بین خریدار و سرویس دهنده ابری جلوگیری میکند.
یکی از ایرادات این روش این است که در زمان بالابودن بارکاری سیستم، یک کارکه توسط یک مشتری تقاضا داده میشود میبایستی مدت زمان زیادی را در انتظار بماند تا بار کاری کمتر شده و به کار مورد نظر منابع مورد نیاز اختصاص داده شود این استراتژی فارغ از اولویت اجرایی کارها میباشد حال آنکه مشتری صاحب این کار میتواند با پیشنهاد مبلغ بیشتری برای آن، اولویت خود را بالا برده و منابع مورد نیاز را در اختیار بگیرد . روشهای فعلی اختصاصی منابعاز قبیل FIFO, Round-Robin,… که در ابرها استفاده میشوند، بدون در نظر گرفتن اولویت کاری بین کارها نوعی تخصیص غیر عادلانه را انجام دهند.
در عمده سرویسهای ابری، انجام زمان بندی کارها با لحاظ کردن این شرایط و همچنین در نظر گرفتن الزامات ذکر شده در توافقنامه سطح سرویس کاری پیچیده است. به طور معمول سرویس دهندههای ابری در زمان واگذاری منابع به مشتریان مواردی را به عنوان تعهدات خود در ارائه سرویس با کیفیت توافق میکنند بنابراین هرگونه اختصاص منابع به کارها و یا جابجایی کارها از یک منبع به منبع دیگر میبایستی با در نظر گرفتن سطح کیفیت سرویس توافق شده صورت میپذیرد. به عنوان مثال اگر منبعی در اختیاریک کار قرار گیرد، هیچ کار دیگری با پیشنهاد قیمت بالاتر نمیتواند آن منبع را تا زمان اجرای کار اختصاص داده شده در اختیار بگیرد و همچنین در زمان بررسی پیشنهادها کارهای متقاضی برای اختصاص به منابع ، لحاظ کردن این پارامترها برای تضمین کیفیت مورد نظر الزامی به نظر میرسد. مواردی همچون زمان پایان کار و حداکثر بودجه مشتری از این جملهاند موارد دیگری را نیز میتوان در این بحث گنجاند که پهنای باند شبکه برای کارهایی که نیاز به فایل ورودی دارند و یا کارهای که از تعدادی زیر کار تشکیل شدهاند (Workflow).
به عنوان مثال کاربری قصد مسافرت به یک شهر را داشته و از یک سرویس یکپارچه ساز که همزمان عملیات خرید بلیط هواپیما، رزرو هتل و... را انجام میدهد، استفاده میکند. سرویس دهنده ابری که وظیفه اجرای این سرویس را بر عهده دارد با استفاده از زمان بند، به صورت همزمان چندین زیر کار را که با یکدیگر ارتباط همکارانه دارند زمان بندی مینماید. این زمان بند بایستی زیر کارهای مذکور را به نحوی زمان بندی کند که زمان پایان اجرای آنها و منابعی که به هر یک اختصاص داده میشود یکسان و همزمان باشد (deadline) و علاوه بر این پهنای باند مورد نیاز جهت ارتباط زیر کارها با یکدیگر به صورت مناسب تأمین شود (Bandwidth) . یا به عنوان یک مثال دیگر، گردش کارهای علمی که به صورت همزمان و یا حتی در زمان اجرا تعدادی زیر کار به صورت موازی بر روی منابع مورد نیاز به اجرا در میآورند را میتوان نام برد. در این نوع گردش کار علاوه بر اینکه بایستی زمان اجرای کار اصلی را در نظر گرفت ، ارتباطات زیر کارها با یکدیگر و پهنای باند مورد نیاز آنها نیز میبایست لحاظ گردد.
مشتریان علاقه مند هستند که کارهایشان در کمترین زمان ممکن و با کمترین هزینه که سرویس دهنده ابری بایستی دریافت کند به اتمام برسند. از طرف دیگر، سرویس دهنده ابر نیز تمایل دارد میزان استفاده از منابع خود را به حداکثر برساند و همچنین میزان سود خود را افزایش دهد که این دو در تضاد با یکدیگر هستند و معمولاً با روشهای سنتی اختصاص منابع و مکانیزهای زمان بندی موجود هم خوانی ندارد.
از آنجا که ارائه سرویس در ابرها نوعی محصول در چرخه زنجیره تأمین میباشد، زمان بندی سرویس را میتوان به دو دسته کلی تقسیم کرد:
۱- سطح کاربر
۲- سطح سیستم
در زمان بندی سطح کاربر به حل مسئله تأمین سرویس بین سرویس دهنده و مشتریان پرداخته میشود به طور عمده این موضوع به مسائل اقتصادی از قبیل تعادل در عرضه و تقاضا، رقابت میان مشتریان و حداقل کردن نسبی هزینه مشتری بر میگردد.
در زمان بندی سطح سیستم، حل مسئله مدیریت منابع درون مراکز داده مد نظر میباشد. از دید مشتنری یک مرکز داده یک سیستم یکپارچه است که سرویسهایی را به کاربران ارائه میکند اما در واقع مراکز داده ترکیبی از تعداد زیادی ماشینهای فیزیکی میباشند که به صورت یکپارچه سرویس دهی میکنند. بعد از دریافت تعداد زیادی کار از کاربران مختلف و اختصاص آنها به ماشینهای فیزیکی، کارایی یک مرکز داده تحت تأثیر قرار میگیرد. به منظور کنترل و ارتقاء میزان بهره وری از سیستم موارد متعددی از قبیل اجرای همزمان فرایندها، اشنراک منابع ، خطایابی و ... بایستی لحاظ گردند.
در یک دسته بندی ریز تر، زمان بندی منابع و اختصاص آنها به کارها در سرویس دهنده ابری را میتوان به دو گروه تقسیم بندی کرد.
۱- زمان بندی تأمین منابع مبتنی بر مدلهای اقتصادی ( از دید کاربر)
۲- زمان بندی اجرای کار مبتنی بر مدلهای ابتکاری (از دید سیستم)
روش زمان بندی تأمین منابع مبتنی بر مدلهای اقتصادی در قالب چندین استراتژی قابل اجرا است که از جمله آنها میتوان به موارد زیر اشاره کرد:
۱- استراتژیهای مبتنی بر بازارشامل
- مدل کالایی: قیمت گذاری منابع برابر
- مدل قیمت ارسال شده: قیمت گذاری متنوع برای روشها و ساعتهای مختلف استفاده
- مدل چانه زنی: قیمت گذاری اولیه توسط سرویس دهنده و چانه زنی تا رسیدن به قیمت توافقی
۲- استراتژی مبتنی بر مزایده شامل:
- تعداد شرکت کنندگان : انتخاب نوع مزایده (فروش، خرید، دو طرفه و ...) بر اساس تعداد شرکت کنندگان (پیشنهاد دهدگان)
- مبتنی بر شفافیت اطلاعات : انتخاب روش ارائه اطلاعات به سایر شرکت کنندگان از قبیل روش کاملاً شفاف ، روش مهر و موم شده و ...
- روش مزایده ترکیبی: ارائه پیشنهادها به صورت ترکیبی از چند پیشنهاد برای انواع منابع. به عنوان مثال مشتری یک پیشنهاد برای ترکیبی از Network,Storage,Ram,Cpu ارائه میکند.
زمان بندی اجرای کارها مبتنی بر مدلهای ابتکاری نیز به طور عمده شامل روشهای ایستا و پویا میباشند. از روشهای ایستا برای زمانی که مجموعه کارهایی که بایستی زمان بندی شوند از قبل مشخص باشند استفاده میشود و از روشهای پویا نیز برای زمانی که کارها به صورت بر خط وارد میشوند استفاده شود
استراتژیهای ایستا:
از معروفترین الگوریتمهای ارائه شده در این گروه میتوان به OLB,MET,MCT,MIN-MIN,MAX-MIN, GA, SA, Tabu,A* , …. اشاره کرد بر اساس ارزیابی صورت گرفته در در زمانی که ماشینها سازگار باشند الگوریتم GA بهترین جواب MET و بدترین جواب را میدهد.
و برای ماشینهای ناسازگار ، A*,GAبهترین راه حل و OLB بدترین است . به طور کلی الگوریتمهای Min-Min, A*, GA را میتوان به عنوان مورد اعتماد ترین روشها در ارائه کمترین Makespan معرفی کرد.
استرتژی های پویا :
اینگونه الگوریتمها را میتوان در دو گروه Online و Batch گنجاد، درحالت Onlineکلیه کارها به صورت برخط زمان بندی میشوند و هر کار پس از دریافت توسط زمان بند به یکی از منابع سپرده میشد در حالت Batch کارها به صورت گروهی زمان بندی میشوند و گروهها با یک وقفه کوتاه به منابع مربوطه سپرده میشوند.
Online-Mode: الگوریتمهای KPB ,SA, MCT, MET, OLB در این گروه قرار میگیرند.
:Batch - Mode الگوریتمهای Suffrage, Max-min, Min-Min از این دسته میباشند.
با توجه به مواردی که ذکر شد، در این مقاله موضوع اختصاص منابع با استفاده از تئوری بازیها و مذاکره عاملها در یک محیط چند عاملی پیشنهاد میشود. در مدل پیشنهادی ما هر عامل به دنبال حداکثر کردن میزان سودمندی مورد انتظار خود است و سرویس دهنده ابری نیز به عنوان محیط قصد دارد علاوه بر حفظ حالت سیستم در تعادل نش میزان استفاده از ابر را به حداکثر برساند.
منابع:
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