برنامه ها و سیستم های توزیع شده

قیمت :   ۱۰۵۰۰تومان ( ده هزار و پانصد تومان )

تعداد صفحات:

۱۰۵  ( صد و پنج )

دسته :

کامپیوتر و IT

نوع فایل:

Word

توضیحات:

مناسب جهت پروژه پایانی

فهرست مطالب :

چکیده

فصل اول – مقدمه و کلیـات تحقیق

۱-۱- مقدمه

۱-۲- بیان مسأله

۱-۳- اهمیت و ضرورت تحقیق

۱-۴- اهداف تحقیق

۱-۵- سوالات تحقیق

۱-۶- روش تحقیق

 

فصل دوم- مبانی نظری سیستمهای توزیع شده

۲-۱-

۲-۱-۱-

۲-۲- گونه های مختلف سیستمهای توزیع شده

۲-۳- سیستم توزیع شده از دید لایه بندی ها

۲-۴- بخشهای اصلی

۲-۵- معماری سیستمهای توزیع شده

۲-۶- مدلهایی برای تعامل فرآیندها

۲-۷- قوانین مربوط به سیستمهای توزیع شده

۲-۸- تعریف برنامه توزیع شده

۲-۹- ملاحظات مربوط به طراحی برنامه های توزیع شده

 

فصل سوم- تحمل خطا در سیستمهای توزیع شده

۳-۱- مقدمه

۳-۲- خرابی (خطا)

۳-۲-۱- دسته بندی عیب¬ها

۳-۳ الگوهای توزیع

۳-۳-۱ انتخاب الگوی توزیع

 

فصل چهارم- تکنیکها و روشهای تحمل خطا برای سیستمهای توزیع شده

۴-۱-

۴-۲ مفاهیم

۴-۳ پروتکلهای پوشش عقبگرد

۴-۴ تعامل با دنیای خارج

۴-۵ پروتکلهای گرفتن نقطه بازیابی

۴-۶ روش هماهنگ

۴-۷ پروتکلهای بر مبنای واقعه نگاری

۴-۸ واقعه نگاری بدبینانه در مقابل خوشبینانه

۴-۹ مقایسه روشها

۴-۱۰

۴-۱۱ الگوریتم Paxos

 

فصل پنجم- افزایش تحمل خطا در سیستم‌های نهفته با کاهش مصرف انرژی

۵-۱- معرفی سیستم نهفته توزیع شده

۵-۲- سیستم نهفته

۵-۲-۱- معماری کلی سیستم‌های نهفته

۵-۳ اهمیت و کاربرد سیستم‌های نهفته

۵-۳-۱ ویژگی‌های سیستم‌های نهفته

۵-۴ روش های افزایش تحمل اشکال سیستم های نهفته

۵-۴-۱-

۵-۴-۱-۱- افزونگی سخت افزاری غیرفعال (ایستا)

۵-۴-۱-۲- (پویا)

۵-۴-۲-

۵-۵ روش‌های سطح سیستم برای کاهش مصرف انرژی در سیستم‌های نهفته

۵-۵-۱- مدیریت پویای توان (Benini00) (DPM)

۵-۵-۲- تغییر پویای ولتاژ تغذیه (DVS)

۵-۶ روش‌های ارائه شده برای کاهش انرژی مصرفی سیستم‌های دو پردازنده‌ای

نتیجه گیری

منابع

چکیده :

هدف مهم در طراحی  این است که سیستم بتواند بطور خودکار در برابر بخشهایی که دچار خرابی شده اند خودش را بازیابی کند بدون اینکه این امر تاثیری در اجرای کلی سیستم داشته باشد سیستمهای توزیع شده طوری طراحی شده اند که در مکانهای مختلف یا به عبارتی با پردازنده های
مختلف کار می کنند ممکن است اتصال هر پردازنده از کل شبکه قطع شود یا ممکن است یک پردازنده رفتار غیرمنتظره ای داشته باشد دراین حالت طراح سیستم توزیع شده باید طوری آن را طراحی کند که یا این خرابی ها کنترل شوند یا سعی کند از آن جلوگیری کند.

کلمات کلیدی: سیستمهای توزیع شده، خطا، تحمل خطا، الگوریتم، ترمیم، ذخیره سازی، اعتماد، مخفی کردن

 

مقدمه

کلمه توزیع‌شده در اصطلاحات «سیستم‌های توزیع‌شده» و «برنامه نویسی توزیع‌شده» و «الگوریتم توزیع‌شده» در واقع به شبکه‌های کامپیوتری ای اطلاق می‌شود که در آن کامپیوتر‌های شخصی به طور فیزیکی در برخی مناطق جغرافیایی توزیع می‌شوند.

رایانش توزیع‌شده یا توزیع‌یافته به دسته‌ای از محاسبات رایانه‌ای اطلاق می‌شود که در آن دو، یا معمولاً چند کامپیوتر از طریق یکشبکه رایانه‌ای به هم متصل شده و با استفاده از یک الگوریتم موازی بار محاسباتی مابین آن‌ها توزیع می‌شود.

در همه موارد نمی‌توان از این روش استفاده کرد، تکلیفی که می‌خواهیم از طریق محاسبات توزیع‌شده انجام گیرد باید قابلیت تقسیم شدن به چند تکه کوچک‌تر را داشته باشد. جستجو از جمله تکالیفی است که بالاترین موفقیت را در محاسبات توزیع‌شده دارد.

گسترش استفاده از کامپیوتر باعث نفوذ کاربرد کامپیوتر در جنبه های مختلف زندگی انسان از جمله جنبه های حیاتی مانند کنترل ترافیک هوایی ،  کنترل خودکار خطوط دریایی ،  مدیریت نقطه فروش و حتی سرویس فروش بلیط سینما شده است. داده های ذخیره شده در سیستم های کامپیوتری با ارزش ترین دارایی یک شرکت است که باید به هر قیمت از آن محافظت کنند.

تکنیک های تحمل خطا برای افزایش قابلیت در دسترس بودن سیستم و کاهش خرابی های ناشی از بروز خطا در اجزا گسترش یافتند. داده های حیاتی درون حافظه پایدار ذخیره شده و کپی های اضافی برای ذخیره در حافظه های پایدار تهیه می شوند این روش ها مناسب است ولی در برابر رخ دادن یک حادثه ممکن است نا کارآمد باشد . از جمله این حوادث می توان به زلزله سال ۱۹۰۶ در سان فرانسیسکو اشاره کرد که بیش از نیمی از شهر را ویران کرد.

رویه های وسیع تهیه پشتیبان برای محافظت داده ها در مقابل بروز یک حادثه گسترش یافتند که از جمله آنها    می توان  به رویه های تهیه پشتیبان به صورت پدر بزرگ – پدر – فرزند، تکنیک­های رویدادنگاری افزایشی و متد نسخه­برداری تصویر داده­ها اشاره کرد. به علاوه، برای نگهداری در برابر از دست رفتن داده، سیستم باید بتواند سرویس عادی خود را پس رخ دادن حادثه ارائه کند. بنابراین همراه با داده سخت افزار کامپیوتر نیز باید جایگزین شوند.

۱-۲- بیان مسأله

هر سیستمی که بر روی مجموعه ای از ماشین ها که دارای حافظه اشتراکی نیستند، اجرا شده و برای کاربران به  گونه­ای اجرا شود که گویا بر روی یک کامپیوتر می باشند ، یک سیستم توزیع شده است.

در یک سیستم توزیع شده یک نرم افزار یا مجموعه نرم افزاری واحد و متحد الشکل بر روی هر گره اجرا می شود. همه ماشینها یک کرنل مشابه را اجرا می کند. هر کرنل منابع خود را کنترل می کند مواردی که در طراحی سیستم توزیع شده باید در نظر گرفت: شفافیت T انعطاف پذیری قابلیت اطمینان ، کارایی خوب ، قابلیت گسترش .

قابلیت اطمینان: در دسترس بودن یک فاکتور مهم مرتبط با این سیستم ها است.

طراحی نباید به گونه ای باشد که نیاز به اجرای همزمان کامپوننت های اساسی باشد. افزونگی بیشتر داده هاه باعث افزایش در دسترس بودن شده اما ناسازگاری را بیشتر میکند. قدرت تحمل نقص(Fault tolerance)  باعث پوشاندن خطاهای ایجاد شده توسط کاربر می شود.

کارآیی: بدون کارآیی مناسب کلیه موارد استفاده نرم افزار بی فایده می باشد. اندازه گیری کارایی در سیستم های توزیع شده کار آسانی نیست. برای رسیدن به کارایی باید توازنی خاص در تعداد پیغامها و اندازه کامپوننهای توزیع شده بر قرار باشد.

قابلیت گسترش: قابلیت گسترش یک اصل کلی برای توسعه سیستمهای توزیع شده می باشد. برای رسیدن به این قابلیت باید از کامپوننتها، جداول و الگوریتمهای متمرکز دوری کرد. فقط باید از الگوریتمهای غیر متمرکز استفاده شود.

هر سیستمی که بر روی مجموعه ای از ماشین ها که دارای حافظه اشتراکی نیستند، اجرا شده و برای کاربران به  گونه­ای اجرا شود که گویا بر روی یک کامپیوتر می باشند ، یک سیستم توزیع شده است.

از مشخصه های بارز و بسیار مفید سیستمهای توزیع شده داشتن ایراد و خطاهای جزئی و تحمل آنها تا زمان ترمیم می باشد که این امر موجب گسترش روزافزون این سیستم گردیده است.

مواردی که در طراحی سیستم توزیع شده باید در نظر گرفت:

  • شفافیت
  • انعطاف پذیری
  • قابلیت اطمینان
  • کارایی خوب
  • قابلیت گسترش

۱-۳- اهمیت و ضرورت تحقیق

با توجه به اینکه مقوله از اهمیت خاصی برخوردار است و در طول مدت تحصیل کمتر با این موضوع برخورد داشته و پس از انتخاب این موضوع اهمیت و حساسیت خاص این موضوع برای اینجانب مشخص گردید لذا به بررسی و تحقیق در این زمینه بپردازم.

۱-۴- اهداف تحقیق

۱- پرداختن به تعاریف پیرامون سیستمهای توزیع شده

۲-  بررسی مسائل خاص تحمل خطا در سیستمهای توزیع شده

۳- پرداختن به اصول تحمل خطا

۴- بررسی مسائل و روشهای مختلف مربوط به تحمل خطا در سیستمهای مختلف توزیع شده

۱-۵- سوالات تحقیق

۱- آیا سیستمهای توزیع شده در دنیای امروز کامپیوتر جایگاه خاصی دارند؟

۲- آیا تحمل خطا در سیستمهای توزیع شده با دیگر سیستمهای موجود متفاوت است؟

۳- آیا روشهای موجود پاسخگوی نیازهای کلی می باشد؟

۱-۶- روش تحقیق

این تحقیق به روش کتابخانه ای به انجام رسیده است. لیست کتب و مقالات مورد استفاده نیز در قسمت منابع   پایان­نامه آمده است.

 

مبانی نظری سیستمهای توزیع شده

۲-۱- تعریف سیستم توزیع شده

هر سیستمی که بر روی مجموعه ای از ماشین ها که دارای حافظه اشتراکی نیستند، اجرا شده و برای کاربران به گونه­ای اجرا شود که گویا بر روی یک کامپیوتر می باشند ، یک سیستم توزیع شده است.

در یک سیستم توزیع شده :

  • یک نرم افزار یا مجموعه نرم افزاری واحد و متحد الشکل بر روی هر گره اجرا می شود.
  • همه ماشینها یک کرنل مشابه را اجرا می کند.
  • هر کرنل منابع خود را کنترل می کند

مواردی که در طراحی سیستم توزیع شده باید در نظر گرفت:

  • شفافیت
  • انعطاف پذیری
  • قابلیت اطمینان
  • کارایی خوب
  • قابلیت گسترش

قابلیت اطمینان:

  • در دسترس بودن یک فاکتور مهم مرتبط با این سیستم ها است.
  • طراحی نباید به گونه ای باشد که نیاز به اجرای همزمان کامپوننت های اساسی باشد.
  • افزونگی بیشتر داده هاه باعث افزایش در دسترس بودن شده اما ناسازگاری را بیشتر میکند.
  • قدرت تحمل نقص(Fault tolerance) باعث پوشاندن خطاهای ایجاد شده توسط کاربر می شود.

کارآیی:

  • بدون کارآیی مناسب کلیه موارد استفاده نرم افزار بی فایده می باشد.
  • اندازه گیری کارایی در سیستم های توزیع شده کار آسانی نیست.
  • برای رسیدن به کارایی باید توازنی خاص در تعداد پیغامها و اندازه کامپوننهای توزیع شده بر قرار باشد.

قابلیت گسترش:

  • قابلیت گسترش یک اصل کلی برای توسعه سیستمهای توزیع شده می باشد.
  • برای رسیدن به این قابلیت باید از کامپوننتها، جداول و الگوریتمهای متمرکز دوری کرد.
  • فقط باید از الگوریتمهای غیر متمرکز استفاده شود.

  ۲-۱-۱- خصوصیات الگوریتمهای غیرمتمرکز:

  • هیچ ماشینی نباید اطلاعات کاملی در مورد وضعیت سیستم داشته باشد.
  • ماشینها باید بر مبنای اطلاعات محلی خود تصمیم بگیرند.
  • خرابی یک ماشین نباید تاثیری در اجرای الگوریتم داشته باشد.
  • نباید تصوری ضمنی از وجود ساعتی عمومی وجود داشته باشد.

 ۲-۲- گونه های مختلف سیستمهای توزیع شده:

  • سرور- ایستگاه کاری
  • Processor pool
  • هیبرید
  • یکپارچه

 سیستمهای توزیع شده متکی بر ارتباطات هستند و به طور کلی از دو سرویس زیر استفاده می کنند:

  • انتقال پیام Message Passing
  • فراخوانی از راه دور رویه ها Remote Procedure Call

 ۲-۳- سیستم توزیع شده از دید لایه بندی ها

برنامه های کاربردی
DBMS,TPS, …
سیستم عامل توزیع شده
سخت افزار

  ۲-۴- بخشهای اصلی سیستم عامل توزیع شده

  • مدیریت فایل
  • مدیریت منابع
  • مدیریت حافظه
  • مدیریت فرآیندها
  • Kernel

 سیستم عامل توزیع شده باید امکانات Encapsulating منابع را مهیا سازد. کرنل و سرورها هر دو وظیفه مدیریت منابع را بر عهده دارند و چون شامل منابع نیز می باشند، باید موارد زیر را مهیا سازند:

  • مجتمع سازی داده ها و سرویس ها Encapsulating
  • پردازش همزمان
  • محافظت داده ها

 نحوه دسترسی به منابع

کلاینتها با مشخص سازی منابع در آرگومان عملیات (فراخوانی از راه دور رویه ها در سرور یا فراخوانی سیستم در کرنل) به آنها دسترسی پیدا می کنند.

۲-۵- معماری سیستمهای توزیع شده

بر اساس استاندارد ISO در مدل معماری Open Distributed Computing موارد ذیل باید شفاف[۱] باشند:

  • دسترسی(Access)
  • موقعیت (Location)
  • همزمانی(Concurrency)
  • کپی برداری داده ها (Replication)
  • اشکالات (Failure)
  • تبدیل پلتفرم (Migration)
  • کارآیی (Performance)
  • توسعه پذیری (Scaling)

 ۲-۶- مدلهایی برای تعامل فرآیندها

  • مدل خادم / مخدوم (Client/Server)
  • مدل یکپارچه
  • مدل پایپ
  • فراخوانی رویه از راه دور(RPC)

مدل کلاینت سرور

در این حالت نرم افزار خاص کلاینت روی هر ماشین اجرا می شود و کلاینت با واسطه سرور به منابع دسترسی پیدا می کند. سه مشکل عمده مدل کلاینت سرور عبارت است از:

  • کنترل منابع اختصاصی بر روی یک سرور متمرکز می شود.
  • هر سرور به طور بالقوه یک گلوگاه (Bottleneck) است.
  • برای بهبود کارآیی، پیاده سازی چندگانه برای توابع مشابه باید انجام شود.

مدل کلاینت سرور در سیستم توزیع شده

 مدل یکپارچه

در این مدل هر نرم افزار کامپیوتر بعنوان ابزاری کامل طراحی شده که دارای فایل سیستمی عمومی و مکانیسمی جهت تفسیر اسامی می باشد. این بدین معناست که هر کامپیوتر در سیستم توزیع شده از یک نرم افزار استفاده می‌کند.

توجه داشته باشید که اگر سیستمی بر پایه مدل یکپارچه توسعه یافته باشد، اگر به صورت مناسبی پیکره بندی شده باشد، می تواند به راحتی به شکل سیستمی مبتنی بر مدل Client/Server دیده شود.

مدل Pipe

مدل پایپ بر اساس مفهوم فرآیند پایه ریزی شده است که در این مدل داده از طریق استراتژی FIFO می توانند بین فرآیندها منتقل شوند. همچنین این مدل اجازه همگام بودن اجرای فرآیندها را می دهد. در این مدل به طور سنتی از فایل سیستم برای ذخیره داده ها استفاده شده و از قابلیتهای منحصر بفرد آن امکان ارسال کلی داده توسط فرآیند به یک گره می باشد.

مدل RPC

در سیستمهای مبتنی بر RPC، یک فرآیند می تواند یک رویه را در یک کامپیوتر راه دور فراخوانی کند. هنگامی که عمل فراخوانی انجام می شود، پیغام درخواستی برای کامپیوتر راه دوری که رویه در آن قرار دارد فرستاده می‌شود، سپس فرآیندی ایجاد می شود تا رویه اجرا شود، بعد از کامل شدن این فرآیند، پیغام پاسخ به فرآیند صد‌ازننده فرستاده می شود.

 دلایل توزیع داده

  • DBMSمتمرکز در مقابل سیستم پایگاه داده توزیع شده
  • سیستم پایگاه داده توزیع شده مجموعه ای از داده ها است که از لحاظ منطقی به یک سیستم تعلق دارند ولی از لحاظ فیزیکی در سایتهای مختلف یک شبکه کامپیوتری قرار دارند.

 فاکتورهای مختلفی که باعث توسعه سیستم پایگاه داده توزیع شده شده اند عبارت است از:

  • طبیعت توزیع شدگی برخی از برنامه های دیتا بیس
  • افزایش قابلیت اطمینان و در دسترس بودن
  • امکان به اشتراک گذاشتن داده ها
  • افزایش کارآیی

طراحی و پیاده سازی سیستم پایگاه داده توزیع شده از پیچیدگیهای بیشتری برخوردار است و نسبت بهDBMS‌های متمرکز توابع بیشتری را باید پیاده سازی کرد از جمله:

  • دسترسی به سایتها و انتقال جستجو ها و داده ها
  • اطلاع از توزیع داده ها و Replication در کاتالوگ DDBMS
  • بکارگیری استراتژیهای مناسب برای اجرای پرس و جو ها و … که دادهایشان در چندین سایت مختلف قرار دارد.
  • تصمیم گیری در مورد استفاده از کدامین داده Replicate شده
  • سازگار نگه داشتن کپی های داده های Replicate شده
  • قابلیت بازیابی داده ها از سایتهایی که دارای مشکل شده اند.
  • و …

 

۲-۷- قوانین مربوط به سیستمهای توزیع شده

 قانون صفر: سیستمهای توزیع شده باید برای کاربر نهایی دقیقا به صورت سیستمهای متمرکز باشند. 

  1. استقلال محلی

فایل کامل این تحقیق ۱۰۵ صفحه بصورت ورد WORD می باشد.
در تمامی ساعات شبانه روز >> پرداخت آنلاین و دانلود آنلاین پروژه

 



توجه مهم :

*دوست عزیز در صورت نداشتن رمز پویا یا قطع بودن درگاه بانکی ، لطفا نام پروژه درخواستی خود را جهت هماهنگی برای دریافت شماره کارت واریزی و دریافت لینک دانلود، به واتساپ پشتیبانی سایت  ۰۹۳۹۲۷۶۱۶۳۰  ارسال کنید *(از ساعت ۸ الی ۲۳)

Related posts

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *