برنامه ها و سیستم های توزیع شده
|
||||||||||||||
فهرست مطالب : چکیده فصل اول – مقدمه و کلیـات تحقیق ۱-۱- مقدمه ۱-۲- بیان مسأله ۱-۳- اهمیت و ضرورت تحقیق ۱-۴- اهداف تحقیق ۱-۵- سوالات تحقیق ۱-۶- روش تحقیق
فصل دوم- مبانی نظری سیستمهای توزیع شده ۲-۱-۱- خصوصیات الگوریتمهای غیرمتمرکز ۲-۲- گونه های مختلف سیستمهای توزیع شده ۲-۳- سیستم توزیع شده از دید لایه بندی ها ۲-۴- بخشهای اصلی سیستم عامل توزیع شده ۲-۵- معماری سیستمهای توزیع شده ۲-۶- مدلهایی برای تعامل فرآیندها ۲-۷- قوانین مربوط به سیستمهای توزیع شده ۲-۸- تعریف برنامه توزیع شده ۲-۹- ملاحظات مربوط به طراحی برنامه های توزیع شده
فصل سوم- تحمل خطا در سیستمهای توزیع شده ۳-۱- مقدمه ۳-۲- خرابی (خطا) ۳-۲-۱- دسته بندی عیب¬ها ۳-۳ الگوهای توزیع ۳-۳-۱ انتخاب الگوی توزیع
فصل چهارم- تکنیکها و روشهای تحمل خطا برای سیستمهای توزیع شده ۴-۱- تکنیکهای تحمل خطا ۴-۲ مفاهیم ۴-۳ پروتکلهای پوشش عقبگرد ۴-۴ تعامل با دنیای خارج ۴-۵ پروتکلهای گرفتن نقطه بازیابی ۴-۶ روش هماهنگ ۴-۷ پروتکلهای بر مبنای واقعه نگاری ۴-۸ واقعه نگاری بدبینانه در مقابل خوشبینانه ۴-۹ مقایسه روشها ۴-۱۰ الگوریتم اجماع ۴-۱۱ الگوریتم Paxos
فصل پنجم- افزایش تحمل خطا در سیستمهای نهفته با کاهش مصرف انرژی ۵-۱- معرفی سیستم نهفته توزیع شده ۵-۲- سیستم نهفته ۵-۲-۱- معماری کلی سیستمهای نهفته ۵-۳ اهمیت و کاربرد سیستمهای نهفته ۵-۳-۱ ویژگیهای سیستمهای نهفته ۵-۴ روش های افزایش تحمل اشکال سیستم های نهفته ۵-۴-۱- افزونگی سخت افزاری ۵-۴-۱-۱- افزونگی سخت افزاری غیرفعال (ایستا) ۵-۴-۱-۲- افزونگی سخت افزاری فعال (پویا) ۵-۴-۲- افزونگی زمانی ۵-۵ روشهای سطح سیستم برای کاهش مصرف انرژی در سیستمهای نهفته ۵-۵-۱- مدیریت پویای توان (Benini00) (DPM) ۵-۵-۲- تغییر پویای ولتاژ تغذیه (DVS) ۵-۶ روشهای ارائه شده برای کاهش انرژی مصرفی سیستمهای دو پردازندهای نتیجه گیری منابع چکیده : هدف مهم در طراحی سیستم های توزیع شده این است که سیستم بتواند بطور خودکار در برابر بخشهایی که دچار خرابی شده اند خودش را بازیابی کند بدون اینکه این امر تاثیری در اجرای کلی سیستم داشته باشد سیستمهای توزیع شده طوری طراحی شده اند که در مکانهای مختلف یا به عبارتی با پردازنده های کلمات کلیدی: سیستمهای توزیع شده، خطا، تحمل خطا، الگوریتم، ترمیم، ذخیره سازی، اعتماد، مخفی کردن
مقدمه کلمه توزیعشده در اصطلاحات «سیستمهای توزیعشده» و «برنامه نویسی توزیعشده» و «الگوریتم توزیعشده» در واقع به شبکههای کامپیوتری ای اطلاق میشود که در آن کامپیوترهای شخصی به طور فیزیکی در برخی مناطق جغرافیایی توزیع میشوند. رایانش توزیعشده یا توزیعیافته به دستهای از محاسبات رایانهای اطلاق میشود که در آن دو، یا معمولاً چند کامپیوتر از طریق یکشبکه رایانهای به هم متصل شده و با استفاده از یک الگوریتم موازی بار محاسباتی مابین آنها توزیع میشود. در همه موارد نمیتوان از این روش استفاده کرد، تکلیفی که میخواهیم از طریق محاسبات توزیعشده انجام گیرد باید قابلیت تقسیم شدن به چند تکه کوچکتر را داشته باشد. جستجو از جمله تکالیفی است که بالاترین موفقیت را در محاسبات توزیعشده دارد. گسترش استفاده از کامپیوتر باعث نفوذ کاربرد کامپیوتر در جنبه های مختلف زندگی انسان از جمله جنبه های حیاتی مانند کنترل ترافیک هوایی ، کنترل خودکار خطوط دریایی ، مدیریت نقطه فروش و حتی سرویس فروش بلیط سینما شده است. داده های ذخیره شده در سیستم های کامپیوتری با ارزش ترین دارایی یک شرکت است که باید به هر قیمت از آن محافظت کنند. تکنیک های تحمل خطا برای افزایش قابلیت در دسترس بودن سیستم و کاهش خرابی های ناشی از بروز خطا در اجزا گسترش یافتند. داده های حیاتی درون حافظه پایدار ذخیره شده و کپی های اضافی برای ذخیره در حافظه های پایدار تهیه می شوند این روش ها مناسب است ولی در برابر رخ دادن یک حادثه ممکن است نا کارآمد باشد . از جمله این حوادث می توان به زلزله سال ۱۹۰۶ در سان فرانسیسکو اشاره کرد که بیش از نیمی از شهر را ویران کرد. رویه های وسیع تهیه پشتیبان برای محافظت داده ها در مقابل بروز یک حادثه گسترش یافتند که از جمله آنها می توان به رویه های تهیه پشتیبان به صورت پدر بزرگ – پدر – فرزند، تکنیکهای رویدادنگاری افزایشی و متد نسخهبرداری تصویر دادهها اشاره کرد. به علاوه، برای نگهداری در برابر از دست رفتن داده، سیستم باید بتواند سرویس عادی خود را پس رخ دادن حادثه ارائه کند. بنابراین همراه با داده سخت افزار کامپیوتر نیز باید جایگزین شوند. ۱-۲- بیان مسأله هر سیستمی که بر روی مجموعه ای از ماشین ها که دارای حافظه اشتراکی نیستند، اجرا شده و برای کاربران به گونهای اجرا شود که گویا بر روی یک کامپیوتر می باشند ، یک سیستم توزیع شده است. در یک سیستم توزیع شده یک نرم افزار یا مجموعه نرم افزاری واحد و متحد الشکل بر روی هر گره اجرا می شود. همه ماشینها یک کرنل مشابه را اجرا می کند. هر کرنل منابع خود را کنترل می کند مواردی که در طراحی سیستم توزیع شده باید در نظر گرفت: شفافیت T انعطاف پذیری قابلیت اطمینان ، کارایی خوب ، قابلیت گسترش . قابلیت اطمینان: در دسترس بودن یک فاکتور مهم مرتبط با این سیستم ها است. طراحی نباید به گونه ای باشد که نیاز به اجرای همزمان کامپوننت های اساسی باشد. افزونگی بیشتر داده هاه باعث افزایش در دسترس بودن شده اما ناسازگاری را بیشتر میکند. قدرت تحمل نقص(Fault tolerance) باعث پوشاندن خطاهای ایجاد شده توسط کاربر می شود. کارآیی: بدون کارآیی مناسب کلیه موارد استفاده نرم افزار بی فایده می باشد. اندازه گیری کارایی در سیستم های توزیع شده کار آسانی نیست. برای رسیدن به کارایی باید توازنی خاص در تعداد پیغامها و اندازه کامپوننهای توزیع شده بر قرار باشد. قابلیت گسترش: قابلیت گسترش یک اصل کلی برای توسعه سیستمهای توزیع شده می باشد. برای رسیدن به این قابلیت باید از کامپوننتها، جداول و الگوریتمهای متمرکز دوری کرد. فقط باید از الگوریتمهای غیر متمرکز استفاده شود. هر سیستمی که بر روی مجموعه ای از ماشین ها که دارای حافظه اشتراکی نیستند، اجرا شده و برای کاربران به گونهای اجرا شود که گویا بر روی یک کامپیوتر می باشند ، یک سیستم توزیع شده است. از مشخصه های بارز و بسیار مفید سیستمهای توزیع شده داشتن ایراد و خطاهای جزئی و تحمل آنها تا زمان ترمیم می باشد که این امر موجب گسترش روزافزون این سیستم گردیده است. مواردی که در طراحی سیستم توزیع شده باید در نظر گرفت:
۱-۳- اهمیت و ضرورت تحقیق با توجه به اینکه مقوله تحمل خطا در سیستمهای توزیع شده از اهمیت خاصی برخوردار است و در طول مدت تحصیل کمتر با این موضوع برخورد داشته و پس از انتخاب این موضوع اهمیت و حساسیت خاص این موضوع برای اینجانب مشخص گردید لذا به بررسی و تحقیق در این زمینه بپردازم. ۱-۴- اهداف تحقیق ۱- پرداختن به تعاریف پیرامون سیستمهای توزیع شده ۲- بررسی مسائل خاص تحمل خطا در سیستمهای توزیع شده ۳- پرداختن به اصول تحمل خطا ۴- بررسی مسائل و روشهای مختلف مربوط به تحمل خطا در سیستمهای مختلف توزیع شده ۱-۵- سوالات تحقیق ۱- آیا سیستمهای توزیع شده در دنیای امروز کامپیوتر جایگاه خاصی دارند؟ ۲- آیا تحمل خطا در سیستمهای توزیع شده با دیگر سیستمهای موجود متفاوت است؟ ۳- آیا روشهای موجود پاسخگوی نیازهای کلی می باشد؟ ۱-۶- روش تحقیق این تحقیق به روش کتابخانه ای به انجام رسیده است. لیست کتب و مقالات مورد استفاده نیز در قسمت منابع پایاننامه آمده است.
مبانی نظری سیستمهای توزیع شده ۲-۱- تعریف سیستم توزیع شده هر سیستمی که بر روی مجموعه ای از ماشین ها که دارای حافظه اشتراکی نیستند، اجرا شده و برای کاربران به گونهای اجرا شود که گویا بر روی یک کامپیوتر می باشند ، یک سیستم توزیع شده است. در یک سیستم توزیع شده :
مواردی که در طراحی سیستم توزیع شده باید در نظر گرفت:
قابلیت اطمینان:
کارآیی:
قابلیت گسترش:
۲-۱-۱- خصوصیات الگوریتمهای غیرمتمرکز:
۲-۲- گونه های مختلف سیستمهای توزیع شده:
سیستمهای توزیع شده متکی بر ارتباطات هستند و به طور کلی از دو سرویس زیر استفاده می کنند:
۲-۳- سیستم توزیع شده از دید لایه بندی ها
۲-۴- بخشهای اصلی سیستم عامل توزیع شده
سیستم عامل توزیع شده باید امکانات Encapsulating منابع را مهیا سازد. کرنل و سرورها هر دو وظیفه مدیریت منابع را بر عهده دارند و چون شامل منابع نیز می باشند، باید موارد زیر را مهیا سازند:
نحوه دسترسی به منابع کلاینتها با مشخص سازی منابع در آرگومان عملیات (فراخوانی از راه دور رویه ها در سرور یا فراخوانی سیستم در کرنل) به آنها دسترسی پیدا می کنند. ۲-۵- معماری سیستمهای توزیع شده بر اساس استاندارد ISO در مدل معماری Open Distributed Computing موارد ذیل باید شفاف[۱] باشند:
۲-۶- مدلهایی برای تعامل فرآیندها
مدل کلاینت سرور در این حالت نرم افزار خاص کلاینت روی هر ماشین اجرا می شود و کلاینت با واسطه سرور به منابع دسترسی پیدا می کند. سه مشکل عمده مدل کلاینت سرور عبارت است از:
مدل کلاینت سرور در سیستم توزیع شده مدل یکپارچه در این مدل هر نرم افزار کامپیوتر بعنوان ابزاری کامل طراحی شده که دارای فایل سیستمی عمومی و مکانیسمی جهت تفسیر اسامی می باشد. این بدین معناست که هر کامپیوتر در سیستم توزیع شده از یک نرم افزار استفاده میکند. توجه داشته باشید که اگر سیستمی بر پایه مدل یکپارچه توسعه یافته باشد، اگر به صورت مناسبی پیکره بندی شده باشد، می تواند به راحتی به شکل سیستمی مبتنی بر مدل Client/Server دیده شود. مدل Pipe مدل پایپ بر اساس مفهوم فرآیند پایه ریزی شده است که در این مدل داده از طریق استراتژی FIFO می توانند بین فرآیندها منتقل شوند. همچنین این مدل اجازه همگام بودن اجرای فرآیندها را می دهد. در این مدل به طور سنتی از فایل سیستم برای ذخیره داده ها استفاده شده و از قابلیتهای منحصر بفرد آن امکان ارسال کلی داده توسط فرآیند به یک گره می باشد. مدل RPC در سیستمهای مبتنی بر RPC، یک فرآیند می تواند یک رویه را در یک کامپیوتر راه دور فراخوانی کند. هنگامی که عمل فراخوانی انجام می شود، پیغام درخواستی برای کامپیوتر راه دوری که رویه در آن قرار دارد فرستاده میشود، سپس فرآیندی ایجاد می شود تا رویه اجرا شود، بعد از کامل شدن این فرآیند، پیغام پاسخ به فرآیند صدازننده فرستاده می شود. دلایل توزیع داده
فاکتورهای مختلفی که باعث توسعه سیستم پایگاه داده توزیع شده شده اند عبارت است از:
طراحی و پیاده سازی سیستم پایگاه داده توزیع شده از پیچیدگیهای بیشتری برخوردار است و نسبت بهDBMSهای متمرکز توابع بیشتری را باید پیاده سازی کرد از جمله:
۲-۷- قوانین مربوط به سیستمهای توزیع شده قانون صفر: سیستمهای توزیع شده باید برای کاربر نهایی دقیقا به صورت سیستمهای متمرکز باشند.
فایل کامل این تحقیق ۱۰۵ صفحه بصورت ورد WORD می باشد.
|
توجه مهم :
*دوست عزیز در صورت نداشتن رمز پویا یا قطع بودن درگاه بانکی ، لطفا نام پروژه درخواستی خود را جهت هماهنگی برای دریافت شماره کارت واریزی و دریافت لینک دانلود، به واتساپ پشتیبانی سایت ۰۹۳۹۲۷۶۱۶۳۰ ارسال کنید *(از ساعت ۸ الی ۲۳)
دیدگاهتان را بنویسید