690 likes | 910 Views
كشف و ترمیم خطای عاملهاي متحرک همكار در زمان اجرا با بهبود پيچيدگي پيام. پروژه کارشناسی ارشد مهندسی کامپیوتر. ميلاد خليليان استاد راهنما: دکتر احمد عبدالله زاده بهمن ماه 1387. فهرست مطالب. مقدمه عامل متحرک مدل اجرا نیازمندی های مساله روش های تحمل خطا پوشش عقبگرد دسته بندی روش ها
E N D
كشف و ترمیم خطای عاملهاي متحرک همكار در زمان اجرا با بهبود پيچيدگي پيام پروژه کارشناسی ارشد مهندسی کامپیوتر ميلاد خليليان استاد راهنما: دکتر احمد عبدالله زاده بهمن ماه 1387
فهرست مطالب • مقدمه • عامل متحرک • مدل اجرا • نیازمندی های مساله • روش های تحمل خطا • پوشش عقبگرد • دسته بندی روش ها • کارهای انجام شده • روش پیشنهادی • ساختار • حالت 1: اجرای بدون خطا • حالت 2: خطای عامل • حالت 3: خطای ناظر • حالت 4: کشف خطای نامطمئن • حالت 5: مهاجرت عامل • گرفتن نقطه بازیابی بهینه • ارزیابی • پیچیدگی پیام • شبیهسازی • نتیجه گیری • مراجع آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
مقدمه • در این تحقیق به بررسی تحمل خطا در عامل های متحرک همکار پرداخته شده است. • عامل متحرک: یک رهیافت نوید دهنده جدید در زمینه سیستم های توزیع شده و هوشمند • قبل از قرار گرفتن عامل متحرك در مركز كاربردهاي آينده كسب و كار: نیازمندی های قابليت اتکا • قابلیت اتکا: یکی از ویژگی های ضروری سیستم های مهندسی • تحمل خطا یکی از ابزارهای رسیدن به قابلیت اتکاء است و به روشهایی اطلاق می شود که سعی دارند حتی با بروز خطا، از گسترش آن و خراب شدن سیستم جلوگیری کنند. • هدف از این پروژه ارائه مکانیزمی است که عامل های متحرک همکار علی رغم رخدادن خرابی به کار خود ادامه دهند. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
عامل نرم افزاری • ”عامل“يك سيستم نرم افزاري كه در محيط قرار مي گيرد و قادر به انجام اعمال انعطاف پذير و مستقل در محيط، به منظور رسيدن به اهداف در نظر گرفته شده براي آن است. • ویژگی های عامل: آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
عامل متحرک • "عامل متحرك" يك برنامهي كامپيوتري است كه به صورت مستقل در برابر كاربر عمل ميكند و از طريق يك سیستم توزیع شده به جايگاههاي مختلف حركت ميكند. • از جمله کاربردهای عامل متحرک: • مديرت سيستم و شبكه • محاسبات سيار • بازيابي اطلاعات • تجارت الكترونيك آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
مشخصات • مشخصات عامل متحرک: • حالت: در هر لحظه به صورت تصویری از عملکرد آن عمل در لحظه مورد نظر است. • پیاده سازی: این مشخصه برای اجرای مستقل از مکان مورد استفاده قرار می گیرد. • واسطه: برای برقراری ارتباط با عامل ها از این مشخصه استفاده می شود. • شناسه: مشخص کننده عامل و تعیین کننده محل آن • مدیر: از این مشخصه برای تعیین و حدود قانونی کار عامل استفاده می شود. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
میزبان موتور عامل ها منابع مکان ساختار • عامل متحرک نوع پیشرفته تکنولوژیهای اجرای راه دور قبلی است: • عامل متحرک از کد برنامه، داده و وضعیت اجرایی برنامه تشکیل شده است. • اپلت جاوا مشتمل بر کد و داده است. • در CORBA تنها انتقال دادهها به صورت پیام میسر است. • کدهای متحرک، مثل عامل متحرک، اجازه نوشتن بر روی حافظه دائم را ندارند. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
مدل اجرای عامل متحرک op0, op1, … عمل مرحله ای sa0 (Stage Action) آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
خرابی عامل • انواع خرابی های سیستم در عامل متحرک: • سرنگونی(Crash): از کار افتادن ناگهانی • خرابی عمدی(Byzantine): مانند حمله های متخاصمان • فاجعه آمیز(Catastrophic): مانند خطاهای برنامه نویسی • این پروژه خرابی های سرنگونی در نظر گرفته شده است. • پیمانه کشف خرابی محیطهای واقعی مثل اینترنت قابل اطمینان نیست. • بلاک: سرنگونی یک نود یا کد عامل آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
افزونگی در اجرای عامل • با افزونگی می توان از بلاک شدن جلوگیری کرد. • با استفاده از افزونگی ممکن است برخی از عملیات چند بار انجام شوند. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
خاصیت دقیقاً یکبار آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
عامل های همکار • در برخی موارد عامل متحرک برای حل یک مساله نیاز به همکاری با عامل های دیگر دارد. • این همکاری در سطوح بالاتر انجام می گیرد و عامل ها به وسیله رد و بدل کردن پیام با یکدیگر ارتباط دارند. • اگر عاملی بعد از فرستادن پیامی دچار خرابی شود، پیام ارسالی اصطلاحاً یتیم می گردد. • همچنین گیرنده نیز ممکن است دچار خرابی شود و پیام را از دست بدهد. • عامل های متحرک همکار را می توان به صورت یک سیستم توزیع شده بر پایه گذردهی پیام در نظر گرفت. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
یک مثال • عامل 1 پیامی را به عامل 2 مبنی بر درخواست یک سرویس ارائه میدهد. • عامل 2 پس از بررسی پاسخ مثبت به عامل 1 میدهد و مشغول آماده کردن سرویس مورد نظر میشود. • در این حالت عامل 1 دچار خرابی شده و از محلی قبل از فرستادن پیام بازیابی میشود. • در این حالت عامل 2 پیامی را دریافت کرده که فرستندهای ندارد. • علاوه بر این عامل 2 سرویسی را آماده کرده است که عامل 1 آن را درخواست نکرده است. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
پوشش عقبگرد • پوشش عقبگرد روشی است برای تحمل خطا در سیستم های توزیع شده. • در این روش حالت فرآیندها به صورت دوره ای در حافظه دائم ذخیره می شود و در هنگام بروز خرابی با استفاده از آن بازیابی می شوند. • روش ها: • ناهماهنگ • هماهنگ • بر مبنای ارتباط • بر مبنای واقعه نگاری آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
روش های پوشش عقبگرد در سیستم های توزیع شده آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
دسته بندی رهیافتهای تحمل خطا در عامل های متحرک • 3 معیار برای دسته بندی به کار رفته است: • محل اجرای عامل • محل تصمیم تاییید • جمعی/توزیعی • هر یک از این دسته ها به دو نوع تقسیم می شوند: • تایید بعد از مرحله • تایید در مقصد آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
تایید در مقصد آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
رهیافت Concordia • یک رهیافت SSC است که عامل با استفاده از صف های پیام پایدار به مرحله بعد فرستاده می شود. • از دست رفتن عامل به وسیله یک سیستم به نام مدیر ذخیره پایدار (PSM) جلوگیری می شود. • PSM حالت عامل را به صورت منظم بر روی حافظه پایدار checkpoint میکند. • خاصیت دقیقاً یکبار را تضمین نمی کند. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
رهیافت FANTOMAS • یک رهیافت MMD است برای سیستم های خوشه ای. • تنها یک خرابی را در یک مکان در نظر می گیرد. • در رابطه با هر عامل یک logکننده laiوجود دارد که با فاصله d از آن حرکت می کند و از عامل checkpoint می گیرد. • پیچیدگی پیام این رهیافت 4 پیام در هر مرحله است. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
رهیافت Fatomas • یک رهیافت MMC است با فرض غیر قابل اطمینان بودن کشف خطا. • در هر مرحله i ، تعداد m کپی از عامل بر روی مجموعه مکان های Mi اجرا می گردد. • همه کپی های عامل ها باید بر سر موارد زیر توافق کنند: • مکان اجرای عامل یا piprim • عامل حاصل یا ai+1 • مجموعه مکان هایی برای مرحله Si+1 یا Mi+1 • اجرای تحمل کننده خطا به زنجیره ای از مسائل توافق تبدیل میشود. • برای توافق از الگوریتم اجماع مقدار اولیه متفاوت(DIV) استفاده میشود. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
رهیافت Fatomas (...) • این رهیافت خطا را تحمل می کند (m تعداد کپی هاست) • پیچیدگی پیام Fatomas برابر است با: آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
رهیافت Lyu and Wong • یک رهیافت SMD است که در آن همه کپی ها بر روی یک مکان اجرا می شوند. • از گرفتن checkpoint و log برای پوشش خطای عامل استفاده میشود. • برای تضمین خصوصیت دقیقاً یکبار از پوشش عقبگرد استفاده می شود. • هر عامل به صورت بازگشتی توسط عامل wi-1 نظارت میشود. • بعد از ترمیم مکان از کار افتاده pk عامل wk-1 عامل wkرا ترمیم می کند. • اجرای عامل در هر مرحله نیازمند 4 پیام است. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
رهیافت MAgNET • در این رهیافت بین خرابی های عامل ها و مکان ها و خرابی های خطوط ارتباطی و ماشین ها تمایز می باشد. • در هر مرحله کپی عامل به مکان های بعدی در لیست حرکت آن فرستاده می شود. • مکان هایی که ack نفرستند از لیست خارج شده و لیست به روز می شود و دوباره یک کپی به لیست جدید فرستاده می شود. • بنابراین MAgNET یک رهیافت MMD است. • پیچیدگی پیام این رهیافت در هر مرحله برابر است با: 3n – 3i +1 آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
رهیافت Assis Silva & Popescu-Zelein • در این روش از پرتکل 3PC برای تراکنش ها استفاده شده است و از یک الگوریتم جدید برای انتخاب رهبر. • -عدم بلاک است. • برای جلوگیری از اجرای چند باره از یک پایگاه داده محیطی توزیع شده استفاده شده است. • فهم این رهیافت به دلیل ترکیب الگوریتم های آن مشکل است. • هزینه نگهداری پایگاه داده نیز بالاست. • پیچیدگی پیام این روش 19m – 14 است. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
رهیافت Osman et al • این روش در دسته SSC قرار دارد و تایید بعد از مرحله است. • عامل های همکار نیز در نظر گرفته شدهاند. • برای حفظ سازگاری در سیستم بین عامل های همکار، از یک هماهنگ کننده با عنوان recovery manager استفاده شده است. • عاملها نقاط بازیابی خود را به این مدیر می فرستند. • سیستم کنترل مرکزی به عنوان یک گلوگاه، نقطه ضعف اصلی این رهیافت می باشد. • همچنین خرابی یک نقطه، ممکن است باعث بلاک شدن کل عامل ها شود. • سیستم ایده آل در نظر گرفته شده است. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
رهیافت های تایید در مقصد • رهیافت NetPebbles: یک رهیافت MSD است که عامل متحرک را به عنوان یک script که در بین مکان ها حرکت می کند در نظر میگیرد. • مکان pi-1 یک کپی از ai را نگهداری می کند و در هنگام خرابی ai بر روی pi آن را به یک مکان دیگر می فرستد. • هر مکان پیام به مکان های قبل از خود به فاصله d می فرستد که با این کار خرابی های همروند را مدیریت می کند. • با توجه به عدم وجود توافق بین عامل های موجود در این فاصله امکان وجود عامل های تکراری وجود دارد که این مساله در مقصد بررسی می گردد. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
معیارهای مقایسه • عدم بلاک • اجرای دقیقاً یکبار • افزونگی • سیستم کنترل مرکزی/توزیع شده • استفاده از حافظه دائم • شفافیت • همکاری • پیچیدگی پیام • دیگر خصوصیات آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
روش پیشنهادی • برای حفظ حالت سیستم در هنگام خرابی، در روش پیشنهادی از checkpointing استفاده شده است. • از آنجایی که دسترسی به حافطه دائم برای عامل متحرک محدود است، باید از حافظه موقت استفاده نمود. • از یک عامل کمکی به اسم“ ناظر“ برای ذخیره checkpointها استفاده می شود. • عامل در دوره های زمانی tcp حالت خود را در قالب یک checkpoint به ناظر میفرستد. • برای حفظ سازگاری سیستم، عامل پس از دریافت پیام از همکاران نیز checkpoint میگیرد. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
انتخاب روش گرفتن checkpoint • روش های بر مبنای واقعه نگاری عملکرد بهتری نسبت به روش های دیگر دارند، ولی استفاده از آنها در فرآیندهای میهمان مثل کدهای متحرک امکان پذیر نمی باشد. • روش مورد نظر نباید بر خودمختاری عامل تاثیری داشته باشد. • روش بر مبنای ارتباط نیازمند فرستادن اطلاعات چگونگی وضعیت فرآیند به دیگر فرآیندهاست. • همچنین در روش هماهنگ نیز استقلال عامل تهدید می شود و عامل برای گرفتن نقطه بازیابی نیاز دارد توافق همه ی عامل های همکار را جلب نماید. • روش ناهماهنگ از دیگر روش ها برای عامل های همکار مناسب تر است. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
کشف خطا • جهت کشف خطا ناظر عامل اصلی را نظارت می کند. • کشف خطا به وسیله مکانیزم timeout انجام می گیرد. • ناظر انتظار دارد به صورت دوره ای cp و یا یک پیام liveness از عامل دریافت کند. • در صورت عدم دریافت پیام بعد از زمان timeout، عامل خراب در نظر گرفته می شود. • برای کلیه مراحل تعداد تلاش دوباره با پارامتر rt?مشخص شده است. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
محافظت از ناظر • ناظر نیز در معرض خرابی قرار دارد. • در روش Lyu and Wong برای این کار از یک زنجیره از ناظرها استفاده شد. • در روش FANOMAS عامل و ناظر یکدیگر را نظارت می کنند. • در روش پیشنهادیm کپی از ناظر به طور همزمان آن را پشتیبانی می کنند. • هر زمان که ناظر checkpointی از عامل دریافت میکند، همه کپی ها به روز میشوند. • برای هماهنگی بین کپی ها از الگوریتم اجماع Paxos استفاده شده است. • از آنجایی که کپی ها passive هستند، هزینه افزونگی به شدت کاهش می یابد. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
Primary Witness Consensus Execution Place Communication Network Send Checkpoint Witness Agents ساختار آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
حالت 1: اجرای بدون خطا آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
ناظر به همه کپی ها پیام agent_failureمیفرستد. یک کپی مخالفت می کند. همه کپی ها موافقت خود را اعلام میکنند. ناظر یک عامل جدید با توجه به آخرین نقطه بازیابی ایجاد می کند و به مکانش می فرستد. کپی مذکور به ناظر و دیگر کپی ها پیام new_supervisor را می فرستد. یک کپی پیام supervisor_failure را از عامل دریافت می کند. همه کپی ها پیام ack را به ناظر جدید میفرستند. کپی پیام wrong_detectionرا به ناظر می فرستد. ناظر پیام new_agent را به کپی ها می فرستد و مشخصات عامل جدید را اعلام میکند. ناظر جدید اطلاعات جدید را برای عامل میفرستد. کپی ها ack را به ناظر می فرستند و خود را به روز می کنند. ناظر ack به کپی می فرستد و kill به عامل جدید ناظر پیام شروع اجرا (start_exec) را به عامل جدید می فرستد. کپی پیام new_supervisor را به همه کپی ها و ناظر می فرستد. کپی ها ack را به ناظر جدید می فرستند و خود را به روز می کنند. ناظر جدید اطلاعات جدید را برای عامل میفرستد. حالت 2: خطای عامل آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
حالت 2: نمودار آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
حالت 3: خرابی ناظر آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
کشف خرابی نامطمئن • کشف خرابی توسط ناظر را می توان توسط سناریوی زیر نشان داد: • ناظر به خرابی عامل پی می برد. • ناظر یک پیام به همه کپی های خود میفرستد. • یک الگوریتم اجماع برای شروع یک عامل جدید بین ناظر و کپی ها برگزار میشود. • یک عامل جدید به وجود میآید. • ناظر و کپی ها منتظر عامل قبلی می مانند تا پیام kill را به او بفرستند. (در صورت کشف خطای نادرست) • در صورت رسیدن پیام عامل تا مرحله 3، عملیات ایجاد عامل جدید متوقف می شود. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
الگوریتم اجماع • یکی از ابزارهای دیگر مورد استفاده در سیستمهای توزیعشده جهت حصول تحمل خطا الگوریتم اجماع است. • این الگوریتم مابین چند فرآیند در یک سیستم توزیع شده اجرا می شود و هدف آن رسیدن به یک توافق کلی بر سر یک مقدار بین همه فرآیندهاست. • راه حل این مساله باید بتواند در حضور خرابی های رخ داده نیز به درستی کار کند. • Lamport در سال 1998 راه حل کاملی برای این مساله با عنوان Paxos ارائه داد. • این الگوریتم تضمین می کند که همه فرآیندها با وجود خرابی و گم شدن پیام در سیستم به یک توافق نهایی دست می یابند. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
Paxos • الگوریتم شامل سه مرحله است که ممکن است به علت وجود خرابی تکرار شوند: • انتخاب یک کپی به عنوان رهبر • رهبر یک مقدار انتخاب می کند و در قالب یک پیام accept به همه کپی ها ارسال میکند. دیگر کپی ها با این مقدار توافق (ack) یا مخالفت (reject) می کنند. • زمانی که اکثریت کپی ها با رهبر موافقت کردند، اجماع حاصل شده است و رهبر پیام commit را به همه کپی ها می فرستد. • چندین کپی ممکن است تصمیم به رهبر شدن بگیرند: • الصاق یک ترتیب به رهبرهای متوالی • محدود کردن انتخاب هر رهبر در انتخاب مقدار آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
Paxos (...) • رهبرها را با نسبت دادن یک شماره دنباله صعودی مرتب می کند. • هر کپی، آخرین شماره دنباله ای را که دیده است ذخیره می کند. • وقتی که یک کپی بخواهد رهبر شود، یک شماره دنباله منحصر به فرد و بزرگتر از آخرین شماره تولید می کند و به همه کپی ها در قالب یک پیام propose می فرستد. • کپی ها قول می دهند که از این به بعد همه پیام از رهبرهای قدیمی را رد کنند(promise). • وقتی که اجماع بر روی یک مقدار حاصل شد، Paxos باید رهبرهای آینده را نیز مجبور به انتخاب همین مقدار کند تا اجماع باقی بماند. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
حالت 4: کشف خرابی نادرست آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
مهاجرت عامل آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
بهینه سازی گرفتن نقطه بازیابی • گرفتن checkpoint دارای هزینه است باعث کاهش کارایی سیستم می گردد. • از طرف دیگر کاهش تعداد checkpointها باعث بالا رفتن هزینه ترمیم می گردد. • در هر الگوریتم پوشش عقبگرد، رسیدن به یک نقطه تعادل بین هزینه ترمیم سیستم و کارایی مطلوب است. • در سیستم های مبتنی بر پیام گرفتن checkpoint پس از دریافت پیام اجتناب ناپذیر می باشد. • عامل های متحرک که با دیگر عامل ها همکاری نمی نمایند هزینه زیادی برای گرفتن checkpoint با روشهای معمولی متحمل می شوند. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
مدل • خرابی عامل بر هر جایگاه مستقل است. • عامل تنها در ابتدای ورود خود به مکان اقدام به گرفتن checkpoint مینماید. • مدل مارکوف: • در این مدل Pfiاحتمال خرابی عامل در مکان iام اجرا و = 1-PfiPsi آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
پارامترها • در هنگام خرابی، عامل از حالتی که در ابتدای آن مکان داشته است شروع به اجرا می کند. • این امر ممکن است Xiبار تکرار شود در مکان iام تکرار شود که Xi یک متغیر تصادفی است: • P(Xi) = (Pfi)Xi توزيع احتمال Xi آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
محاسبه نقطه بهینه • بازه گرفتن checkpoint برابر تعداد مکان هایی است که عامل بین دو checkpoint طی می کند. • در هر بار خرابی در یک مکان i تعداد چرخه های خرابی-تعمیر برابر است باامید ریاضی Xi: آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
محاسبه نقطه بهینه (...) • متوسط هزینه اجرای مجدد یک چرخه خرابی-ترمیم برابر است با امید ریاضی هزینه اجرای مجدد: E(Ci) = Ri*(CI+ E/2) • هزینه اجرا پس از n مرحله بعد از checkpoint: E(Ci+n) = Ri+n*(CI+Ei+Ei+1+…+Ei+n/2) متوسط هزینه ترمیم مکان i آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
محاسبه نقطه بهینه (...) • امید ریاضی مجموع هزینه های ترمیم در n مرحله: • این مقدار نشان دهنده مجموع هزینه پوشش برای بازه (i, i+n) است. • مجموع هزینه اجرا در بازه (i, i+n) برابر است با: Csys = Ccp+E(Ci,i+n)+(n+1)Ei آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)
محاسبه نقطه بهینه (...) • حال اگر x را تعداد مکان بین گرفتن دو checkpoint در نظر بگیریم و H تعداد کل مکان ها باشد، در شرایط ایده آل که همه Pfiها و Eiها با یکدیگر برابرند، هزینه کل سیستم برابر است با: Csys = (H/x)[xCI+(RE+(x-1)RE)(x-1)/2+xER/2+Ccp]+HE = HCI+xHRE/2+HCcp/x+HE • حال Csysرا کمینه می کنیم و xای که در آن تابع کمینه است را محاسبه می کنیم: • برای حالت واقعی می توان تخمینی از تابع هزینه کل را با مقدار Csys(x=xmin) برابر قرار داد و x مورد نظر را بدست آورد. آزمايشکاه سيستم هاي هوشمند (http://ceit.aut.ac.ir/islab)