دانلود ترجمه مقاله سیستم های نرم افزاری قابل حمل و مقاوم در برابر خطا – مجله IEEE

ieee2

 

 عنوان فارسی مقاله: سیستم های نرم افزاری قابل حمل و مقاوم در برابر خطا
 عنوان انگلیسی مقاله: PORTABLE AND FAULT-TOLERANT SOFTWARE SYSTEMS
دانلود مقاله انگلیسی: برای دانلود رایگان مقاله انگلیسی با فرمت pdf اینجا کلیک نمائید

 

سال انتشار ۱۹۹۸
تعداد صفحات مقاله انگلیسی  ۱۱ صفحه
تعداد صفحات ترجمه مقاله  ۲۱ صفحه
مجله  مهندسی سیستم و نرم‌افزار
دانشگاه  ییل
کلمات کلیدی  –
نشریه IEEE

 

 


فهرست مطالب:

 

مقدمه
نقطه های بازرسی قابل حمل
مثال
مفسر Porch
مرحله اول : تولید کد برای وضعیت داخلی
اشاره گرهای نقطه بازرسی
نقطه بازرسی محیط پشته
سیستم های نرم افزاری
نقطه بازرسی پشته
مرحله ۲ : تولید کد برای حالت اینترفیس
حالت اینترفیس ftIO
نقطه بازرسی و بازیابی
منابع
تشکر و قدردانی

 


 

بخشی از ترجمه:

 

 مقدمه

در این مقاله، من یک رویکرد جدید برای توسعه نرم افزار با تحمل خطا توصیف می کنم . این رویکرد با یک کامپایلر نمونه اولیه توسط من و همکاران MIT من به عنوان بخشی از تحقیقات در حال انجام ارزیابی شده است .هدف اصلی ما توسعه فن آوری کامپایلر منبع به منبع است که فرآیند اضافه کردن تحمل خطا به محاسبه را تسهیل می کند.برنامه نویس یک برنامه  قبل از تولید ،یک فایل اجرایی با یک کامپایلر محلی تفسیرمی کند. این تفسیر به طور خودکار، کد ها را برای ذخیره و بازیابی نقطه های بازرسی قابل حمل تولید می کند که وضعیت یک محاسبه را در یک ماشین با فرمت  مستقل ضبط می کند.نقطه های بازرسی قابل حمل می توانند در یک فایل ذخیره شوند یا در سایر ماشین ها در یک شبکه تکرار شوند و می توانند محاسبه را در یک ماشین ناسازگار با باینری بازگردانند. مستقل از اینکه آیا قابلیت اطمینان نرم افزار را ترکیب می کند ،ما فرض کنیم که برنامه منبع به احتمال زیاددرست است، بازرسی یک محاسبه در صورت شکست ، بدون در نظر گرفتن اینکه آیا سخت افزار یا ماژول نرم افزار دیگری سبب شکست شده است  امکان راه اندازی مجدد در یک ماشین دیگر را فراهم می کند.بازرسی برای تحمل خطا تکنیک های موجود را برای پیاده سازی سیستم های بسیار در دسترس ، چه از نظر سخت افزاری و چه نرم افزاری ، شامل تکرار با رای اکثریت و افزونگی تحلیلی را به خوبی شناسانده است .تکرار با رای اکثریت به مجموعه ای از ماژول های یکسان نیازدارد وتعیین می کند خروجی مجموعه از ماژول های اکثریت باشد.این روش همچنین وقتی اعمال شود تا قابلیت اطمینان را فراهم کند – برنامه نویسی نسخه N نامیده می شود. افزونگی تحلیلی از یک سیستم پشتیبان گیری با پیچیدگی کمتراستفاده می کند تا  در صورت شکست ،یک ماژول با کارآیی بالارا به کار گیرد.این روش ها برای ارائه تحمل خطا با تنظیمات مختلف بسیار مناسب است .برای شبکه های کامپیوتری ، روش هایی با پیچیدگی کمتر و ارزانتر کافی است .اگرچه در شبکه های کامپیوتری، موتورهای محاسبه ذاتا اضافی هستند و تحمل خطا که می تواند به طورکامل در نقاط بازرسی نرم افزار پیاده سازی شود یک تکنیک نرم افزاری است که به طور گسترده استفاده می شود. یک برنامه با کد نقطه بازرسی تکمیل می شودکه وضعیت محاسبه را در یک نقطه بازرسی ذخیره می کند و محاسبه را بعد از تشخیص یک شکست بازیابی می کند. اگر ماشین های میزبان شکست بخورند محاسبات نیز شکست می خورند. در شبکه ای از ماشین آلات، محاسبات بی نتیجه می توانند در ماشین دیگری بازیابی شوند.از دیدگاه محاسبات ،پایان موفق باید خود را از خطای اجزای سخت افزاری و نرم افزاری محافظت کند. بنا به گزارش تا به امروز، حدود ۹۰ درصد ازدلایل از کارافتادن سیستم های کامپیوتری خطاهای نرم افزار است ۱٫بنابراین، اضافه کردن تحمل خطا به محاسبات بحرانی به جای نرم افزارهای اساسی یا دربرگیرنده و لایه های سخت افزاری در جوهر یک متغیر توجیه شده است. پیاده سازی نقاط بازرسی کم سرباربرای این روش ضروری است، چرا که سربار در مسیر بحرانی قرار می گیردو زمان اجرای محاسبات اضافه می شود.مطالعات نشان داده اند که سربار نقاط بازرسی سازگار می تواند تنها درصد کمی از زمان اجرای کل  برنامه برای فرکانس های نقاط بازرسی قابل قبول باشد۲٫ مطالعات ما نشان می دهد که تغییرنمایش داده متحد کننده به فرایند بازرسی داده ، سربار بازرسی داده را به طور کلی فقط ۵۰% افزایش می دهد۳٫۴ . بنابراین نقاط بازرسی قابل حمل غیر وابسته به ماشین ، یک مکانیسم محتمل برای ایجاد تحمل خطای مناسب در محیط های ناهمگن ارایه می دهد .

نقطه های بازرسی قابل حمل

نقطه های بازرسی قابل حمل ،شرح محاسبات را در یک فرمت بازرسی همگانی غیروابسته به ماشین ضبط می کند. UCFیک فرمت قابل پارامتر شدن است که نمایش های داده ای انواع مختلف داده را ارایه می دهد مثل int یا float درزبان C.این مشخصات شامل سایز ، هم ترازی و دستور بایتی همه نوع داده پایه ای و نمایش بیتی اعداد نقطه شناور است . UCF می تواند یک فرمت ماشین موجود را مطابقت دهد یا بعضی فرمت های مجازی را تعریف کند. کاربران یک UCF خاص را انتخاب می کنند تا سایز نقطه بازرسی ، دقت نمایش داده ها و زمان اجرای مورد نیاز برای تغییر نمایش اطلاعات را جایگزین کنند. مثلا در یک شبکه کامپیوتری ناهمگن،انتخاب UCF برای تطبیق اینکه آیااکثریت ماشین های استفاده شده یک  جایگزین منطقی است . اغلب تکنیک های پیاده سازی که قبلا برای سیستم های نقطه بازرسی توسعه یافته اند از ناهمگنی پشتیبانی نمی کنند. این روش های شفاف که نیاز به هیچ تغییرصریحی در برنامه  ندارند با اتصال یک کتابخانه متفاوت اند . کتابخانه Libckpt5 یا Manetho6 نقاط بازرسی شفافی برای محیط های همگن ماشین های سازگار با باینری فراهم می کنند.این اعمال، مقادیر ذخیره شده درتنظیم ثبات و فضای آدرس دهی کاربر را در یک نقطه بازرسی ذخیره می کند.بهینه سازی عملکرد های مختلف، مانند نقطه بازرسی ، به سیستم حافظه مجازی تکیه می کند تا صفحات اصلاح شده را شناسایی کند و کپی و سپس بنویسد تا نهفتگی ذخیره سازی نقطه بازرسی پنهان شود. بعضی سیستم های نقاط بازرسی ، وضعیتی را ذخیره می کنند که واسط بین محاسبه و محیط خارجی شامل اشاره گرهای فایل یا دستگیره های ارتباطات را تعریف می کند. اغلب این سیستم ها نقطه بازرسی را فقط از میان ماشین های سازگار با باینری پشتیبانی می کنند . علاوه بر این ازسازگاری محاسبه و محیط آن پشتیبانی نمی کنند زیرا خود وضعیت واسط ،برای پیاده سازی عملگرهایی مثل تراکنش ها ناکافی است که در پایین توضیح داده شده است.

حالت اینترفیس ftIO
هر فایل با یک حالت اینترفیس ذخیره شده در سه پرچم متعامد ترکیب شده است.
انواع فایل :
• پاک یا کثیف: یک فایل تمیز است اگر از آخرین نقطه بازرسی ، تغییری نکرده باشد در غیر این صورت، کثیف است.
در اجرای خصوصی کپی ما، در پیاده سازی کپی خصوصی ما هیچ کپی برای فایل های پاک وجود ندارد.
• باز یا بسته: یک فایل می تواند به صورت باز و یابسته باشد. فایل هایی که وجود ندارد بسته تعریف می شوند.
• زنده یا مرده: یک فایل می تواند برنامه ریزی شود تا حذف شود، که در این صورت آن مرده است. در غیر این صورت، آن زنده است.
علاوه بر حالات خاص فایل ، یک حالت  ftIO بولی سراسری حفظ می شود. FIN (برای به پایان رسیدن) برای ثبت موفقیت عملیات سپردن ftIO به طورکم استفاده می شود.ما عملیات فایل C ANSIرا از عملیات فایل ftIO تشخیص می دهیم.  در حالت دوم الفبای ورودی ماشین محدود ftIO راتعریف می کنیم .اغلب آنها عملیات فایل C معادلی دارند. برای مثال ٍ، عملیات ftIO  یک فایل را ایجاد و باز می کند.
اگر فایل وجود نداشته باشد این عملیات فایل ftIO منطبق با عملیات  فایل fopen است با باز کردن حالت W” “یا “a”.تمام عملیات فایل ftIO به عنوان لفافه در اطراف عملیات فایل ANSI C استاندارد پیاده سازی می شود.این توابع بسته بندی برای هر ساختار فایل داده که شامل حالت اینترفیس ftIO آن است حفظ می شود. انتقالات بین حالات اینترفیس با اتوماسیون محدود ftIO تعیین می شود.۱ کامپایلر Porch جایگزین عملیات فایل ANSI C را با عملیات فایل ftIO معادل آنها جایگزین می کند.

 


بخشی از مقاله انگلیسی:

 

High availability is essential to heterogeneouscomputer networks, which are thebasis of many systems ranging from the Internetto fly-by-wire flight controls. Developmentof highly available systems, however, isconstrained by ever shorter times to marketand the availability of off-the-shelf hardwareand software (see the “Examples” box). Consequently,the economic necessity of usingcommodity products from different vendorsputs a premium on the products’ fault tolerance.The development of fault-tolerant andportable software, particularly for parallel anddistributed systems consisting of networks ofbinary-incompatible machines, continues tochallenge engineers.In this article, I describe a new approach todeveloping fault-tolerant software. Thisapproach has been validated by a prototypecompiler developed by me and my MIT colleaguesas part of ongoing research. Our primary goal is to develop source-to-sourcecompiler technology that simplifies the process of adding fault tolerance to a computation.The programmer precompiles a programbefore generating an executable with a nativecompiler. The precompilation automaticallygenerates code to save and recover fromportable checkpoints, which capture the stateof a computation in a machine-independent format. Portable checkpoints can be saved ina file or replicated on other machines in a network,and can be used to restore the computationon a binary-incompatible machine. Weassume that the source program is likely to becorrect, independently of whether it incorporates software reliability. Checkpointing acomputation enables a restart on anothermachine in case of failure, regardless of whether the hardware or another software module causes the failure.Checkpointing for fault toleranceWell-known existing techniques to implementhighly available systems, whether hardwareor software, include replication withmajority voting and analytic redundancy.Replication with majority voting requires aset of identical modules, and determines theset’s output to be that of the majority of modules.This method is also called N-version programmingwhen applied to provide softwarereliability. Analytic redundancy employs a less complex backup system to replace a high performancemodule in case of failure. Thesemethods are well suited to provide fault tolerancein a variety of settings. For computernetworks, less complex and less expensivemethods often suffice, however.In computer networks, compute engines are inherently redundant, and fault tolerancecan be implemented purely in software.Checkpointing is a widely used software technique.A program is supplemented with checkpointing code, which stores the computation’sstate in a checkpoint and recoversthe computation after detecting a failure.Computations fail if their host machines fail.In a network of machines, aborted computationscan be recovered on another machine.From a computation’s point of view, successfultermination requires shielding itselffrom faults of both hardware and other software components. To date, software errorsreportedly cause about 90% of computer systemoutage.1 Therefore, adding fault toleranceto critical computations rather than to theunderlying or surrounding software and hardwarelayers is justified in the spirit of an endto-end argument. Low-overhead checkpointing implementationsare essential for this technique, becausethe overhead lies on the critical path and isadded to the execution time of a computation.Studies have shown that the overhead ofconsistent checkpointing can be just a smallpercentage of the overall program executiontime for reasonable checkpointing frequencies.2 Our studies show that incorporatingdata representation conversion into the checkpointingprocess increases the checkpointingoverhead by only 50%, roughly.3,4 Machineindependentportable checkpoints, therefore,represent a promising mechanism for efficientlyproviding fault tolerance in heterogeneousenvironments.Portable checkpointsPortable checkpoints capture a computation’sstate in a machine-independent UniversalCheckpoint Format. The UCF is aparameterizable format that specifies data representationsof basic data types, such as intor float in C. The specification includes size,alignment, and byte order of all basic datatypes, and bit representations of floating-pointnumbers. The UCF can match an existingmachine’s format or define some virtual format.Users choose a particular UCF to tradeoff checkpoint size, data representation accuracy,and execution time required for data representationconversion.

 


 عنوان فارسی مقاله: سیستم های نرم افزاری قابل حمل و مقاوم در برابر خطا
 عنوان انگلیسی مقاله: PORTABLE AND FAULT-TOLERANT SOFTWARE SYSTEMS

 

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.