چکیدهنیاز به سیستم عامل های توزیع شده از تغییرات مداوم محیط های سخت افزاری در سازمان های مختلف ناشی می شود که با توجه به افزایش روز افزون کامپیوترهای شخصی، شبکه های کامپیوتری، سرورها و ایستگاه های کاری نیاز به مدیریتی شفاف و کارا بر این منابع توزیع شده بیش از پیش احساس می گردد. سیستم عامل ابر، سیستم عاملی جهت مدیریت محیط های توزیعی می باشد. به عبارت دیگر یک برنامه کنترلی است که بر روی مجموعه ای از کامپیوترهای درون یک شبکه اجرا می شود. این برنامه کنترلی کامپیوترهای مختلف را یکپارچه سازی می کند و به یک منبع محاسباتی و اطلاعاتی واحد تبدیل می نماید. در این تحقیق سعی شده به بیان راهکارهایی برای ساختار سیستم عامل های ابری بپردازیم. همچنین به ذکر توانایی های این برنامه کنترلی، معماری و ساختار آن بپردازیم. سپس چالش های موجود در این زمینه بررسی شده و راهکارهایی برای حل آن بیان شود. فهرست مطالبعنوانصفحهفصل اول: مقدمه وکلیات تحقیق11-1 مقدمه21-2 سوالات اصلی تحقیق21-3 هدف از اجرا31-4 توجیه ضرورت انجام طرح31-5 تعاریف واژه ها4فصل دوم: ادبیات و پیشینه تحقیق62-1 محاسبات ابری72-2 معرفی محاسبات ابری82-3 مشخصه اصلی محاسبات ابری102-3-1 سرویس مبتنی بر تقاضا102-3-2 دسترسی وسیع به شبکه102-3-3 ائتلاف منابع112-3-4 انعطاف پذیری سریع112-3-5 سرویس اندازه گیری شده112-4 معماری سرویس گرا112-5 مدل های سرویس122-5-1 زیر ساخت به عنوان سرویس122-5-2 سکو به عنوان سرویس142-5-3 نرم افزار به عنوان سرویس152-6 مدل های پیاده سازی172-6-1 ابر عمومی172-6-2 ابر گروهی182-6-3 ابر ترکیبی182-6-4 ابر خصوصی182-7 مشخصات محاسبات ابری192-8 مزایای محاسبات ابری212-9 نقاط ضعف محاسبات ابری242-10 بررسی وضعیت محاسبات ابری درجهان از نگاه آماری252-11 یک نمونه قیمت در سیستم عامل Azure302-12 تعریف سیستم عامل312-13 انواع سیستم عامل312-13-1 سیستم عامل تک پردازنده312-13-2 سیستم عامل شبکه ای312-13-3 سیستم عامل توزیع شده312-13-4 سیستم عامل بی درنگ322-14 سیستم های توزیعی322-14-1 شفافیت332-14-2 قابلیت اطمینان342-14-3 کارایی342-14-4 مقیاس پذیری352-15 سیستم عامل های توزیعی352-15-1 الگوی مبتنی برپیام362-15-2 الگوی مبتنی بر شیء362-16 رویکرد سیستم عامل های ابری362-17 الگوی سیستم عامل ابری372-17-1 شیء ابری372-17-2 نخ392-17-3 تعامل میان شیء و نخ392-18 برنامه نویسی در مدل شیء – نخ در ابرها402-19 معماری سیستم عامل ابری412-20 برخی سیستم عامل های ابری موجود422-20-1 سیستم عامل iCloud432-20-2 سیستم عامل GlideOS442-20-3 سیستم عامل G.ho.st452-20-4 سیستم عامل JoliCloud462-20-5 سیستم عامل eyeOS472-20-6 گوگل کروم، سیستم عامل اینترنت472-21 مزایا و معایب سیستم عامل های ابری مبتنی بر وب512-22 مطالعه مروری بر سایر پژوهش های مرتبط مهم51فصل سوم: روش تحقیق543-1 چالش های رایج در زمینه سیستم عامل های ابری553-1-1 مقیاس پذیری553-1-1-1 تغییر مقیاس افقی و عمودی563-1-1-2 مقیاس پذیری پایگاه داده ها573-1-1-3 طراحی برای مقیاس پذیری583-1-1-4 مقیاس پذیری در محاسبات ابری593-1-1-5 تغییر مقیاس قوی و ضعیف593-1-2 کشش تقاضا603-1-3 خطاها603-1-4 گره خوردن کاربران به یک سرویس دهنده خاص613-1-5 وابستگی شدید بین مولفه ها613-1-6 فقدان پشتیبانی چند مستاجری623-1-7 فقدان پشتیبانی از SLA623-1-7-1 تعریف توصیف SLA623-1-7-2 فقدان SLA در ابرهای موجود643-1-8 فقدان انعطاف پذیری لازم در واسط کاربری643-2 ارائه راهکارها64فصل چهارم: محاسبات و یافته های تحقیق684-1 پیاده سازی و شبیه سازی694-2 شرایط محیط شبیه سازی714-3 مقیاس پذیری با اندازه شبکه72فصل پنجم: نتیجه گیری و پیشنهادات745-1 خلاصه و نتیجه گیری755-2 مزایای تحقیق انجام شده755-3 معایب تحقیق انجام شده755-4 کارهای آتی76منابع و مآخذ77منابع فارسی78منابع غیرفارسی79 فهرست جداولعنوانصفحهجدول 2-1 : سرویس دهندگان زیرساخت به عنوان سرویس13جدول2-2 : سرویس دهندگان سکو به عنوان سرویس15جدول 2-3 : سرویس دهندگان نرم افزار به عنوان سرویس16جدول 4-1 : شرایط محیط شبیه سازی72 فهرست شکل هاعنوانصفحهشکل 2-1 : تصویری از محاسبات ابری8شکل2-2 : الگوی استقرار ابر17شکل 2-3 : مشخصات محاسبات ابری19شکل 2- 4: تمایل به سمت محاسبات ابری24شکل 2-5: بررسی وضعیت محاسبات ابری جهان26شکل 2-6: سیستم توزیع شده به عنوان میان افزار33شکل 2-7 : ساختمان یک شی ابری38شکل 2-8 : اجرای نخ ها در شیء ابری39شکل 2-9 : مدل منطقی از یک معماری سیستم عامل ابری41شکل 2-10 : سیستم عامل iCloud43شکل 2-11: تصویری از سیستم عامل GlideOS44شکل 2-12 : تصویری از سیستم عامل G.ho.st45شکل 2-13 : تصویری از سیستم عامل JoliCloud46شکل 2-14 : تصویری از سیستم عامل eyeOS47شکل 3-1 : بروز رسانی موقعیت گره در روش RNP66شکل 3-2 : درخواست موقعیت و ارسال بسته در روش RNP66شکل 3-3: شبه کد به روز رسانی موقعیت گره67شکل 3-4: شبه کد درخواست موقعیت67شکل 4-1: مقایسه سرعت اجرای برنامه با افزایش تعداد پردازنده69شکل 4-2: مقایسه سرعت اجرای برنامه با افزایش تعداد ماشین مجازی70شکل 4-3: مقایسه اجاره بها با افزایش تعداد پردازنده70شکل 4-4: مقایسه اجاره بها با افزایش تعداد ماشین مجازی71شکل 4-5: نرخ موفقیت درخواست با افزایش تعداد گره ها72شکل 4-6: افزایش درصد بسته های تحویل داده شده با افزایش گره ها73شکل 4-7: کاهش سربار داده با افزایش تعداد گره ها73فصل اول مقدمه و کلیات تحقیق1-1 مقدمهدر دهه های آینده ما شاهد رشد چشمگیر تکنولوژی در زمینه پردازنده ها خواهیم بود. ابرها که از پردازنده های چند هسته ای تشکیل شده اند منابع محاسباتی بی نظیری فراهم می سازند. باید توجه داشت که با افزایش وسعت دامنه های اطلاعاتی و محاسباتی نیاز به منابع این چنینی بیش از پیش احساس خواهد شد و با افزایش حجم منابع نیاز به مدیریتی کارا و شفاف الزام پیدا می کند. در اینجا ممکن است این سوال مطرح شود که: ابرها چه امکاناتی برای کاربران فراهم می آورند؟ ابرها در انجام محاسبات عظیم نقش مهمی را ایفا می کنند و به کاربران این امکان را می دهند که برنامه های خود را بر روی بستری قابل اطمینان و بسیار کارآمد که از اجزای صنعتی استاندارد تشکیل شده است اجرا کنند. همچنین ابرها مدل محاسباتی بسیار ساده ای را فراهم می آورند به این صورت که کاربران تنها خروجی مورد نظر را با کمترین هزینه برای کاربر تامین می نمایند. ابرها در کنار اینکه فرصت های فراوانی را برای کاربران فراهم می آورند، چالش هایی را نیز برای مدیریت این منابع پدید می آورند. برای مثال از این چالش ها می توان به نحوه هماهنگ ساختن میزان منابع با درخواست ها و یا وسعت زیاد منابع تحت مدیریت سیستم عامل اشاره نمود. در این تحقیق با چالش های موجود در این زمینه بیشتر آشنا می شویم و پیرامون هر کدام به تفضیل صحبت خواهیم کرد. 1-2 سوالات اصلی تحقیقسیستم عامل های ابری که نوعی از سیستم عامل های توزیعی می باشند، می توانند مجموعه ای از گره ها را با هم یکپارچه ساخته و یک سیستم متمرکز را تولید کنند. با توجه به اینکه ابرها فرصت های فراوانی را برای کاربران فراهم می آورند، چالش هایی را نیز برای مدیریت این منابع پدید می آورند. به همین منظور سوالات زیر مطرح می شود: 1-3 هدف از اجراءدر دهه های اخیر شاهد رشد چشمگیر تکنولوژی در زمینه پردازنده ها بوده ایم و این تکنولوژی همچنان با سرعت قابل توجهی در حال پیشرفت است. دلیل این امر افزایش منابع اطلاعاتی و محاسباتی است که این نیاز را به وجود آورده است که با ساخت چنین تکنولوژی هایی به ویژه پردازنده های چند هسته ای، مدیریتی کارا و شفاف بر این اطلاعات حجیم و محاسبات عظیم صورت گیرد. مدیریت اطلاعات و محاسبات این چنینی در محیط هاو سیستم های توزیعی به مراتب آسان تر از محیط های دیگر است. یکی از سیستم های توزیعی ابرها می باشند که می توانند نقش مهمی را در محاسبات عظیم و ذخیره سازی اطلاعات حجیم، ایفا کنند. بنابراین لزوم بررسی چالش ها و موانع در این قبیل سیستم ها و رفع آنها می تواند گامی موثر در افزایش سرعت و کارایی این گونه سیستم ها داشته باشد. 1-4 توجيه ضرورت انجام طرحهمزمان با رشد چشمگیر تکنولوژی پردازنده ها، ابرها نیز گسترش روز افزونی پیدا کرده اند. به همین ترتیب تعداد کامپیوترهای افزوده شده به زیر ساخت ابرها نیز افزایش پیدا کرده است که البته قابل ذکر است این افزایش با توجه به تقاضای روزافزون کاربران برای میزبانی این منابع می باشد. منابع ابری برای کاربران نامحدود بوده و کاربران تنها محدودیت مالی برای خرید این منابع را پیش رو دارند. پس می توان نتیجه گرفت که یکی از مهم ترین چالش ها در این زمینه مقیاس پذیر بودن سیستم عامل های ابری می باشد. در ابرها پارامترهایی همچون تقاضا، حجم کار و منابع در دسترس در طول زمان پیوسته در حال تغییر می باشند. برای مثال هنگامی که کاربر محاسبات سنگین و پیچیده ای درخواست می کند منابع مورد نیاز وی افزایش پیدا می کند و در پایان منابع از کاربر تحویل گرفته می شوند، قابل ذکر است این افزایش و کاهش در منابع ممکن است از دید کاربر پنهان بماند. باید به این نکته توجه داشت که تقاضا هیچ گاه ثابت نمی ماند و میزان منابع مورد نیاز در گستره زیادی در حال تغییر می باشد. از طرفی برنامه های کاربردی مبتنی بر ابر معمولا منابع را بین کاربران و دیگر برنامه های کاربردی به اشتراک می گذارند. اگرچه برنامه کاربردی هر کاربر در لفاف مجازی جداگانه ای قرار گرفته است ولی کیفیت سرویسی که برای برنامه فراهم می شود را تحت تاثیر قرار می دهد. علاوه براین برنامه نویسی در این سیستم عامل نیز کاری مشکل و توام با خطا است. با توجه به مشکلات برنامه نویسی چند نخی و چند فرآیندی که در این نوع سیستم عامل ها استفاده می شود امکان وجود خطا افزایش می یابد. همچنین به دلیل کمبود ابزارهای اشکال زدایی و آنالیز سیستم های بزرگ فهمیدن خطاها سخت و برطرف سازی آنها چالش برانگیز است. برخی چالش های ذکر شده در این زمینه موجب به وجود آمدن مسیر تحقیقاتی گوناگون شده است که از آن جمله می توان به موارد زیر اشاره کرد که البته هر کدام از این مسیرها به بخش های دیگری می شکنند که زمینه جدیدی را فراهم می کند. 1-5 تعاریف واژه هاسیستم های توزیعی[1]سیستم توزیعی در واقع مجموعه ای از کامپیوترهای مستقل[2] است که برای کاربر خود مانند یک سیستم منسجم[3] و منفرد[4] به نظر می رسد[2]. سیستم عامل توزیع شده[5]این سیستم عامل ها خود را مانند سیستم عامل های تک پردازنده به کاربر معرفی می کنند اما در عمل از چندین پردازنده استفاده می کنند. این نوع سیستم عامل در یک محیط شبکه ای اجرا می شود و در حقیقت در این نوع سیستم جواب نهایی یک برنامه، پس از اجرا در کامپیوترهای مختلف به سیستم اصلی بر می گردد. سرعت پردازش در این نوع سیستم بسیار بالاست. سیستم عامل ابری[6]سیستم عامل ابری نیز نوعی از سیستم عامل های توزیعی می باشند که مجموعه ای از گره ها را با هم یکپارچه می سازد و یک سیستم متمرکز تولید می کند.
ارائه راهکاری برای چالش های موجود در سیستم عامل های ابری word
چکیدهنیاز به سیستم عامل های توزیع شده از تغییرات مداوم محیط های سخت افزاری در سازمان های مختلف ناشی می شود که با توجه به افزایش روز افزون کامپیوترهای شخصی، شبکه های کامپیوتری، سرورها و ایستگاه های کاری نیاز به مدیریتی شفاف و کارا بر این منابع توزیع شده بیش از پیش احساس می گردد. سیستم عامل ابر، سیستم عاملی جهت مدیریت محیط های توزیعی می باشد. به عبارت دیگر یک برنامه کنترلی است که بر روی مجموعه ای از کامپیوترهای درون یک شبکه اجرا می شود. این برنامه کنترلی کامپیوترهای مختلف را یکپارچه سازی می کند و به یک منبع محاسباتی و اطلاعاتی واحد تبدیل می نماید. در این تحقیق سعی شده به بیان راهکارهایی برای ساختار سیستم عامل های ابری بپردازیم. همچنین به ذکر توانایی های این برنامه کنترلی، معماری و ساختار آن بپردازیم. سپس چالش های موجود در این زمینه بررسی شده و راهکارهایی برای حل آن بیان شود. فهرست مطالبعنوانصفحهفصل اول: مقدمه وکلیات تحقیق11-1 مقدمه21-2 سوالات اصلی تحقیق21-3 هدف از اجرا31-4 توجیه ضرورت انجام طرح31-5 تعاریف واژه ها4فصل دوم: ادبیات و پیشینه تحقیق62-1 محاسبات ابری72-2 معرفی محاسبات ابری82-3 مشخصه اصلی محاسبات ابری102-3-1 سرویس مبتنی بر تقاضا102-3-2 دسترسی وسیع به شبکه102-3-3 ائتلاف منابع112-3-4 انعطاف پذیری سریع112-3-5 سرویس اندازه گیری شده112-4 معماری سرویس گرا112-5 مدل های سرویس122-5-1 زیر ساخت به عنوان سرویس122-5-2 سکو به عنوان سرویس142-5-3 نرم افزار به عنوان سرویس152-6 مدل های پیاده سازی172-6-1 ابر عمومی172-6-2 ابر گروهی182-6-3 ابر ترکیبی182-6-4 ابر خصوصی182-7 مشخصات محاسبات ابری192-8 مزایای محاسبات ابری212-9 نقاط ضعف محاسبات ابری242-10 بررسی وضعیت محاسبات ابری درجهان از نگاه آماری252-11 یک نمونه قیمت در سیستم عامل Azure302-12 تعریف سیستم عامل312-13 انواع سیستم عامل312-13-1 سیستم عامل تک پردازنده312-13-2 سیستم عامل شبکه ای312-13-3 سیستم عامل توزیع شده312-13-4 سیستم عامل بی درنگ322-14 سیستم های توزیعی322-14-1 شفافیت332-14-2 قابلیت اطمینان342-14-3 کارایی342-14-4 مقیاس پذیری352-15 سیستم عامل های توزیعی352-15-1 الگوی مبتنی برپیام362-15-2 الگوی مبتنی بر شیء362-16 رویکرد سیستم عامل های ابری362-17 الگوی سیستم عامل ابری372-17-1 شیء ابری372-17-2 نخ392-17-3 تعامل میان شیء و نخ392-18 برنامه نویسی در مدل شیء – نخ در ابرها402-19 معماری سیستم عامل ابری412-20 برخی سیستم عامل های ابری موجود422-20-1 سیستم عامل iCloud432-20-2 سیستم عامل GlideOS442-20-3 سیستم عامل G.ho.st452-20-4 سیستم عامل JoliCloud462-20-5 سیستم عامل eyeOS472-20-6 گوگل کروم، سیستم عامل اینترنت472-21 مزایا و معایب سیستم عامل های ابری مبتنی بر وب512-22 مطالعه مروری بر سایر پژوهش های مرتبط مهم51فصل سوم: روش تحقیق543-1 چالش های رایج در زمینه سیستم عامل های ابری553-1-1 مقیاس پذیری553-1-1-1 تغییر مقیاس افقی و عمودی563-1-1-2 مقیاس پذیری پایگاه داده ها573-1-1-3 طراحی برای مقیاس پذیری583-1-1-4 مقیاس پذیری در محاسبات ابری593-1-1-5 تغییر مقیاس قوی و ضعیف593-1-2 کشش تقاضا603-1-3 خطاها603-1-4 گره خوردن کاربران به یک سرویس دهنده خاص613-1-5 وابستگی شدید بین مولفه ها613-1-6 فقدان پشتیبانی چند مستاجری623-1-7 فقدان پشتیبانی از SLA623-1-7-1 تعریف توصیف SLA623-1-7-2 فقدان SLA در ابرهای موجود643-1-8 فقدان انعطاف پذیری لازم در واسط کاربری643-2 ارائه راهکارها64فصل چهارم: محاسبات و یافته های تحقیق684-1 پیاده سازی و شبیه سازی694-2 شرایط محیط شبیه سازی714-3 مقیاس پذیری با اندازه شبکه72فصل پنجم: نتیجه گیری و پیشنهادات745-1 خلاصه و نتیجه گیری755-2 مزایای تحقیق انجام شده755-3 معایب تحقیق انجام شده755-4 کارهای آتی76منابع و مآخذ77منابع فارسی78منابع غیرفارسی79 فهرست جداولعنوانصفحهجدول 2-1 : سرویس دهندگان زیرساخت به عنوان سرویس13جدول2-2 : سرویس دهندگان سکو به عنوان سرویس15جدول 2-3 : سرویس دهندگان نرم افزار به عنوان سرویس16جدول 4-1 : شرایط محیط شبیه سازی72 فهرست شکل هاعنوانصفحهشکل 2-1 : تصویری از محاسبات ابری8شکل2-2 : الگوی استقرار ابر17شکل 2-3 : مشخصات محاسبات ابری19شکل 2- 4: تمایل به سمت محاسبات ابری24شکل 2-5: بررسی وضعیت محاسبات ابری جهان26شکل 2-6: سیستم توزیع شده به عنوان میان افزار33شکل 2-7 : ساختمان یک شی ابری38شکل 2-8 : اجرای نخ ها در شیء ابری39شکل 2-9 : مدل منطقی از یک معماری سیستم عامل ابری41شکل 2-10 : سیستم عامل iCloud43شکل 2-11: تصویری از سیستم عامل GlideOS44شکل 2-12 : تصویری از سیستم عامل G.ho.st45شکل 2-13 : تصویری از سیستم عامل JoliCloud46شکل 2-14 : تصویری از سیستم عامل eyeOS47شکل 3-1 : بروز رسانی موقعیت گره در روش RNP66شکل 3-2 : درخواست موقعیت و ارسال بسته در روش RNP66شکل 3-3: شبه کد به روز رسانی موقعیت گره67شکل 3-4: شبه کد درخواست موقعیت67شکل 4-1: مقایسه سرعت اجرای برنامه با افزایش تعداد پردازنده69شکل 4-2: مقایسه سرعت اجرای برنامه با افزایش تعداد ماشین مجازی70شکل 4-3: مقایسه اجاره بها با افزایش تعداد پردازنده70شکل 4-4: مقایسه اجاره بها با افزایش تعداد ماشین مجازی71شکل 4-5: نرخ موفقیت درخواست با افزایش تعداد گره ها72شکل 4-6: افزایش درصد بسته های تحویل داده شده با افزایش گره ها73شکل 4-7: کاهش سربار داده با افزایش تعداد گره ها73فصل اول مقدمه و کلیات تحقیق1-1 مقدمهدر دهه های آینده ما شاهد رشد چشمگیر تکنولوژی در زمینه پردازنده ها خواهیم بود. ابرها که از پردازنده های چند هسته ای تشکیل شده اند منابع محاسباتی بی نظیری فراهم می سازند. باید توجه داشت که با افزایش وسعت دامنه های اطلاعاتی و محاسباتی نیاز به منابع این چنینی بیش از پیش احساس خواهد شد و با افزایش حجم منابع نیاز به مدیریتی کارا و شفاف الزام پیدا می کند. در اینجا ممکن است این سوال مطرح شود که: ابرها چه امکاناتی برای کاربران فراهم می آورند؟ ابرها در انجام محاسبات عظیم نقش مهمی را ایفا می کنند و به کاربران این امکان را می دهند که برنامه های خود را بر روی بستری قابل اطمینان و بسیار کارآمد که از اجزای صنعتی استاندارد تشکیل شده است اجرا کنند. همچنین ابرها مدل محاسباتی بسیار ساده ای را فراهم می آورند به این صورت که کاربران تنها خروجی مورد نظر را با کمترین هزینه برای کاربر تامین می نمایند. ابرها در کنار اینکه فرصت های فراوانی را برای کاربران فراهم می آورند، چالش هایی را نیز برای مدیریت این منابع پدید می آورند. برای مثال از این چالش ها می توان به نحوه هماهنگ ساختن میزان منابع با درخواست ها و یا وسعت زیاد منابع تحت مدیریت سیستم عامل اشاره نمود. در این تحقیق با چالش های موجود در این زمینه بیشتر آشنا می شویم و پیرامون هر کدام به تفضیل صحبت خواهیم کرد. 1-2 سوالات اصلی تحقیقسیستم عامل های ابری که نوعی از سیستم عامل های توزیعی می باشند، می توانند مجموعه ای از گره ها را با هم یکپارچه ساخته و یک سیستم متمرکز را تولید کنند. با توجه به اینکه ابرها فرصت های فراوانی را برای کاربران فراهم می آورند، چالش هایی را نیز برای مدیریت این منابع پدید می آورند. به همین منظور سوالات زیر مطرح می شود: 1-3 هدف از اجراءدر دهه های اخیر شاهد رشد چشمگیر تکنولوژی در زمینه پردازنده ها بوده ایم و این تکنولوژی همچنان با سرعت قابل توجهی در حال پیشرفت است. دلیل این امر افزایش منابع اطلاعاتی و محاسباتی است که این نیاز را به وجود آورده است که با ساخت چنین تکنولوژی هایی به ویژه پردازنده های چند هسته ای، مدیریتی کارا و شفاف بر این اطلاعات حجیم و محاسبات عظیم صورت گیرد. مدیریت اطلاعات و محاسبات این چنینی در محیط هاو سیستم های توزیعی به مراتب آسان تر از محیط های دیگر است. یکی از سیستم های توزیعی ابرها می باشند که می توانند نقش مهمی را در محاسبات عظیم و ذخیره سازی اطلاعات حجیم، ایفا کنند. بنابراین لزوم بررسی چالش ها و موانع در این قبیل سیستم ها و رفع آنها می تواند گامی موثر در افزایش سرعت و کارایی این گونه سیستم ها داشته باشد. 1-4 توجيه ضرورت انجام طرحهمزمان با رشد چشمگیر تکنولوژی پردازنده ها، ابرها نیز گسترش روز افزونی پیدا کرده اند. به همین ترتیب تعداد کامپیوترهای افزوده شده به زیر ساخت ابرها نیز افزایش پیدا کرده است که البته قابل ذکر است این افزایش با توجه به تقاضای روزافزون کاربران برای میزبانی این منابع می باشد. منابع ابری برای کاربران نامحدود بوده و کاربران تنها محدودیت مالی برای خرید این منابع را پیش رو دارند. پس می توان نتیجه گرفت که یکی از مهم ترین چالش ها در این زمینه مقیاس پذیر بودن سیستم عامل های ابری می باشد. در ابرها پارامترهایی همچون تقاضا، حجم کار و منابع در دسترس در طول زمان پیوسته در حال تغییر می باشند. برای مثال هنگامی که کاربر محاسبات سنگین و پیچیده ای درخواست می کند منابع مورد نیاز وی افزایش پیدا می کند و در پایان منابع از کاربر تحویل گرفته می شوند، قابل ذکر است این افزایش و کاهش در منابع ممکن است از دید کاربر پنهان بماند. باید به این نکته توجه داشت که تقاضا هیچ گاه ثابت نمی ماند و میزان منابع مورد نیاز در گستره زیادی در حال تغییر می باشد. از طرفی برنامه های کاربردی مبتنی بر ابر معمولا منابع را بین کاربران و دیگر برنامه های کاربردی به اشتراک می گذارند. اگرچه برنامه کاربردی هر کاربر در لفاف مجازی جداگانه ای قرار گرفته است ولی کیفیت سرویسی که برای برنامه فراهم می شود را تحت تاثیر قرار می دهد. علاوه براین برنامه نویسی در این سیستم عامل نیز کاری مشکل و توام با خطا است. با توجه به مشکلات برنامه نویسی چند نخی و چند فرآیندی که در این نوع سیستم عامل ها استفاده می شود امکان وجود خطا افزایش می یابد. همچنین به دلیل کمبود ابزارهای اشکال زدایی و آنالیز سیستم های بزرگ فهمیدن خطاها سخت و برطرف سازی آنها چالش برانگیز است. برخی چالش های ذکر شده در این زمینه موجب به وجود آمدن مسیر تحقیقاتی گوناگون شده است که از آن جمله می توان به موارد زیر اشاره کرد که البته هر کدام از این مسیرها به بخش های دیگری می شکنند که زمینه جدیدی را فراهم می کند. 1-5 تعاریف واژه هاسیستم های توزیعی[1]سیستم توزیعی در واقع مجموعه ای از کامپیوترهای مستقل[2] است که برای کاربر خود مانند یک سیستم منسجم[3] و منفرد[4] به نظر می رسد[2]. سیستم عامل توزیع شده[5]این سیستم عامل ها خود را مانند سیستم عامل های تک پردازنده به کاربر معرفی می کنند اما در عمل از چندین پردازنده استفاده می کنند. این نوع سیستم عامل در یک محیط شبکه ای اجرا می شود و در حقیقت در این نوع سیستم جواب نهایی یک برنامه، پس از اجرا در کامپیوترهای مختلف به سیستم اصلی بر می گردد. سرعت پردازش در این نوع سیستم بسیار بالاست. سیستم عامل ابری[6]سیستم عامل ابری نیز نوعی از سیستم عامل های توزیعی می باشند که مجموعه ای از گره ها را با هم یکپارچه می سازد و یک سیستم متمرکز تولید می کند.