لینک دانلود و خرید پایین توضیحات
فرمت فایل word و قابل ویرایش و پرینت
تعداد صفحات: 20
به نام خدا
نرم افزار Fault Tolerance با استفاده از Simulated Annealing
چکیده :
در این مقاله سعی می کنیم بهترین مینیمم را برای تابع زیر به دست بیاوریم :
برای این منظور از روش simulated Annealing (SA) استفاده می کنیم .
SA یکی از روشهای بهینه سازی حل مسئله است که در واقع الهام گرفته شده از فرایند ذوب و دوباره سرد کردن مواد می باشد و به همین دلیل به شبیه سازی حرارتی شهرت یافته است .
پس از حل مسئله با روش SA ، سعی می کنیم آن را در یک نرم افزار تحمل خطا به کار ببریم. برای داشتن یک نرم افزار تحمل خطا تکنیکهای مختلفی وجود دارد که ما در این مقاله با استفاده از تکنیک های افزونگی و تنوع طراحی از روش Acceptance Voting (AV) بهره برده ایم .
مقدمه :
Fault: باعث errorدر سیستم می شود که به آنbug هم گفته می شود .
Error : حالتی از سیستم است که منتج به خرابی می شود .
Failure : حالتی است که سیستم از سرویس مورد نظر منحرف شود .
2-1- تحمل خطا (Fault Tolerance):
تحمل خطا یک پروسه یعنی مجموعه ای از فعالیت هاست که هدف آن حذف خطا است یااگر نتوانست خطا را حذف کند ، لااقل تاثیراتش را کم کند .
3-1- سیستم تحمل پذیر خطا (System Fault Tolerance ) :
سیتم تحمل پذیر خطا معادل با سیستم قابل اعتماد ( Dependable ) می باشد که باید ویژگی های (قابلیت دسترسی ، قابلیت اعتماد ، ایمنی و قابلیت نگهداری را داشته باشد :
- قابلیت دسترسی: سیستم در هر لحظه آماده استفاده باشد .
- قابلیت اعتماد: سیستم پیوسته و بدون عیب کار کند .
- ایمنی: وقتی سیستم fail می شود اتفاق فاجعه آمیزی رخ ندهد .
- قابلیت نگهداری: سیستم شدهfail به راحتی قابل ترمیم باشد.
4-1- افزونگی ( Redundancy):
یکی از روشهای تحمل خطا در سیستم های نرم افزاری افزونگی است . افزونگی ، قابلیتی است در تحمل خطا به طوری که می توان با افزایش سخت افزار و یا کپی برداری از تمام نرم افزار و یا قسمتی از نرم افزار و یا کپی برداری از data تحل خطا را در سیستم تضمین کرد .
5-1- تنوع طراحی (Design Diversity) :
برای تولید یک سیستم تحمل پذیر خطا می توان یک نرم افزار را به شرکت های مختلف برنامه نویسی داد تا برنامه را بنویسد و برای تولید نتیجه نهایی نیز می توان از الگوریتم voting استفاده کرد پس باید از یک نرم افزار طراحی های مختلف داشته باشیم .
روشهایی که از تکنیک تنوع طراحی استفاده می کنند عبارتند از:
1-5-1- Recovery Blocks(RCB)
یک تکنیک تحمل خطای نرم افزاری تنوع طراحی است. یک روش دینامیک است و ازیک AT(Acceptanc test) استفاده می کند. از افزونگی نرم افزاری استفاده میکند یعنی در اینجا ما از نرم افزار چندین گپی داریم از AT برای تست شرط استفاده می کند که آیا شرط برقرار شده است یا نه، اگربرقرار بود که خروجی تولید می شود و گرنهback ward Recovery انجام می دهد و Alternate بعدی کار را انجام می دهد و اگر هیچ یک از نتایج Alternate ها پاس نشد یک خطا اتفاق می افتد.
2-5-1- N- version programming(NVP):
از تکینیک های اصلی تنوع طراحی نرم افزاری است یک روش استاتیک است یعنی تمامtask هایی که قرار است به عنوان variant ها عمل کند تا خروجی تولید شود مشخص اند. از روش Forward Recoveryاستفاده می کند. پایه عملیات آن به این صورت است که n تا نسخه همزمان اجرا می شود و یک مکانیزم تصمیم گیری روی نتایج ورژن ها اعمال می کنیم اگر توانستیم به تصمیم جامعی برسیم که نتیجه برگردانده می شود و گرنه یک exception اتفاق می افتد.
3-5-1- : N self– Checking programming(NSCP)
با استفاده از NSCP با داشتن افزونگی نرم افزاری می خواهیم رفتار برنامه ها را که همزمان می شوند را چک کنیم ،در این روش از یک مقایسه کنند. که نقش اساسی در تصمیم گیری داردیعنی وظیفه اش این است که نتایج variant ویک الگوریتم مقایسه ای یکAT برای هرحقیقت سخت افزار تشکیل می شود که با افزایش سخت افزارها این موارد نیز افزایش
می یابند.
N در NSCP همیشه زوج است و نشان دهنده تعداد variant هاست جفت ها همزمان اجرا می شوند. درNSCP زمانی خطا اتفاقی می افتد که یا نتایج جفت ها با هم موافق نباشد ویا نتایج تولید شده بوسیله جفت های موافق باهم متفاوت باشند.
تحقیق در مورد نرم افزار Fault Tolerance با استفاده از Simulated Annealing 20 ص