افزونگی(Redundancy) و انواع آن
افزونگی و انواع آن
افزونگی (Redundancy) یكی از مهمترین ابزارها در تحمل پذیری خطا سیستمها میباشد.
افزونگی با اضافه كردن چند ماژول به جای یك ماژول و استفاده كردن از همه آنها سعی می كند احتمال درست كاركردن سیستم را بالا ببرد. مثلا فرض كنید كه یك سیستم به جای آنكه یك پردازنده داشته باشد، شامل دو پردازنده باشد. حال اگر یكی ازآنها از كار بی افتد سیستم می تواند به طور خود كار پردازنده دوم را جایگزین كند. ممكن است این سوال پیش بیاید كه چگونه سیستم می تواند این كار را انجام دهد. ولی ما در اینجا تنها می خواهیم درباره متد های افزونگی و انواع آن صحبت كنیم و نحوه پیاده سازی آن مثلا در یك سیستم سخت افزاری خارج از بحث این فصل میباشد.
افزونگی سخت افزاری (Hardware Redundancy)
در این نوع از افزونگی با اضافه كردن سخت افزارهای جدید سعی می كنیم كه جلوى از كار افتادن سیستم را بگیریم. این سخت افزارهای اضافه شده همانند یك دیگر هستند و هیچ عملیات اضافه ترى را انجام نمی دهند. برای افزونگی سخت افزار روش های مختلفی وجود دارد كه جلوتر درباره آن صحبت خواهیم كرد.
افزونگی نرم افزاری (Software Redundancy)
در گونه افزونگی چند کپی از یك نرم افزار یا چندین نرم افزار كه همگی یك كار را انجام می دهند در كنار هم قرار خواهند گرفت. تا سیستم از نتیجه كل آنها استفاده کند. این كار بیشتر باهدف جلوگیرى از خطاهای طراحی انجام می گیرد. مثلا یك نرم افزار توسط سه تیم مختلف نوشته می شود و نتیجه آنها باهم مقایسه می شود.
افزونگی اطلاعاتی (Information Redundancy)
این نوع افزونگی معمولا در سیستمهای ذخیره سازی یا انتقال اطلاعات به كار می رود. كه در آن چندین کپی از یك اطلاعات نگهداری می شود، که در صورت بروز مشكل برای یكی از آنها، کپی های دیگری هم از آن وجود داشته باشد. اصلی ترین موضوع مورد بحث دراین باره کدگذاری (Coding) است كه در فصل 4 مورد بررسی قرار خواهد گرفت.
افزونگی زمانی (Time Redundancy)
این افزونگی زمانى به كار می رود كه خطاهای گذرا (Transient) در سیستم زیاد پیش می آیند. در روش یك عمل چندین بار در زمان های مختلف تكرار می شود و در نهایت نتیجه دفعات مختلف باهم مقایسه می شوند تا نتیجه نهایی معلوم شود. با این كار اگر یك خطای گذرا روی یكی از نتایج یک اجرا تاثیر بگذارد، نتیجه كل اشتباه نمی شود.
-2 افزونگی سخت افزاری:
حال كه با انواع افزونگی آشنا شدیم، اجازه دهید تا افزونگی سخت افزاری را بطور دقیق تر بررسی كنیم. سه نوع افزونگی سخت افزاری وجود دارد كه در اینجا آنها را بررسی خواهیم كرد.
1. غیرفعال (ایستا) Passive (Static)
2. فعال (پویا) Active (Dynamic)
3. ترکیبی Hybrid
3-2-1 افزونگی سخت افزاری غیرفعال (ایستا)
بگذارید با یك مثال این روش را توضیح دهیم فرض كنید در یك سیستم به جای آنكه یك پردازنده داشته باشیم، سه پردازنده بگذاریم كه همه آنها یك كار را انجام می دهند. حال نتیجه این سه پردازنده را به یك رای دهنده )Voter( می دهیم. رای دهنده نتیجه هر سه را نگاه می كند و راى اكثریت را به عنوان خروجى تولید می كند. در نتیجه اگر یكی از این سه پردازنده خراب شده باشد، نتیجه آن در خروجى سیستم تاثیری نمی گذارد.
در واقع روش غیرفعال (ایستا) مدلی است كه در آن تمامی ماژول ها از ابتدا استفاده می شود و در حین كار و یا بروز خرابی هیچ نوع تغییری در تركیب بندی آنها ایجاد نمی شود. در این روش جلوى خرابی سیستم بصورت بیدرنگ گرفته می شود، زیرا نیاز به پیکربندی مجدد پس از بروز خرابی (که موجب تاخیر در کارکرد سیستم می شود) ندارد.
بطور كلی افزونگی غیرفعال گونه های زیادی ندارد. اصلی ترین گونه این افزونگی NMR (N-Modular Redundancy) است كه در آن از یك ماژول، N تا کپی یکسان وجود دارد و که همه پردازش یکسانی را روی ورودی سیستم انجام می دهند و نتایج آنها به یك رای دهنده اکثریت می رود. اگر حداقل M تا از آنها در حال كار درست باشند، رای دهنده نتیجه درست را تولید خواهد كرد. معمولا M برابر N/2+1 انتخاب می شود، اما برای بالا بردن درجه اعتماد به خروجی رای دهنده می توان مقدار M را بیشتر نیز در نظر گرفت. یكی از حالت های خاص NMR كه بسیار زیاد استفاده می شود، TMR (Triple Modular Redundancy) است. در این حالت باید حداقل 2 ماژول از 3 ماژول موجود در حال كار درست باشند تا سیستم درست کار کند. مثال بالا كه در آن سه پردازنده وجود داشت یك TMR است.
به راحتی می توان قابلیت اطمینان یک سیستم TMR را محاسبه کرد. اگر قابلیت اطمینان هر ماژول را R فرض کنیم، یک سیستم TMR زمانی درست کار می کند که یا هر سه ماژول درست کار کنند و یا فقط یکی از ماژولها نادرست کار کند و دو ماژول دیگر درست کار کنند.
احتمال حالت اول برابر است با : RxRxR=R3
احتمال حالت دوم برابر است با : 3XRxRx(1-R)=3R2(1-R)
قابلیت اطمینان سیستم جمع احتمال دو حالت فوق است:
RTMR=R3+3R2(1-R)=3R2-2R3
3-2-2 افزونگی سخت افزاری فعال (پویا)
در این روش غیر از ماژول اصلی كه در حال كار است، تعدادی ماژول هم وجود دارند كه اصطلاحا به آنها پشتیبان )Spare( گفته می شود. این ماژول ها نقش یدک را بازی می كنند. یعنی اگر یكی از ماژول های اصلی خراب شود، یك ماژول پشتیبان جای آن را می گیرد. ماژول های پشتیبان در حالت عادی (عاری از خرابی) در كار سیستم تاثیری ندارند.
یك ماژول پشتیبان می تواند به یكی از سه حالت زیر وجود داشته باشد:
1.داغ Hot : در این حالت ماژول پشتیبان بطور دائمی در حال كار است (همیشه روشن است).
2.گرم Warm : در این حالت ماژول پشتیبان هر از چند گاهی اطلاعات خود را از طریق ماژول اصلی (Primary) بروز (Update) می كند.
3.سرد Cold : در این حالت ماژول پشتیبان (در حالت عاری از خرابی سیستم) همواره خاموش است و زمانى كه نیاز باشد (بروز خرابی در ماژول اصلی) روشن می شود.
معمولا در روش فعال ماژول اصلی شامل یك قسمت اضافی به نام کشف کننده اشتباه E.D. (Error Detector) است كه تشخیص میدهد آیا ماژول اصلی خراب شده است یا نه و در صورتی كه خرابی را تشخیص دهد، یكی از پشتیبان ها جانشین آن خواهد شد. اگر قسمت E.D وجود نداشته باشد. معمولا خروجی دو تا از ماژول ها با هم مقایسه می شود و اگر نتایج آنها متفاوت باشد، یا یك پشتیبان جایگزین یكی از آنها می شود یا اینكه هر دو از مدار خارج می شوند و یك پیام Self Diagnosis به آنها وارد می شود.
حال ببینیم چگونه می توانیم قابلیت اطمینان را در این سیستم محاسبه كنیم.
مثال : یك سیستم را در نظر بگیرید كه شامل یك ماژول اصلی (Primary) و یك ماژول پشتیبان از نوع سرد میباشد.
ماژول اصلی داراى سیستم کشف اشتباه (پوشش اشتباه) میباشد كه در صورت بروز خرابی در ماژول اصلی، آن را تشخیص داده و ماژول پشتیبان را فعال می كند. این احتمال وجود دارد كه پوشش اشتباه )Coverage( به درستى عمل نكند. احتمال تشخیص درست و پوشش اشتباه را با C نشان می دهیم.
در دو حالت سیستم درست کار خواهد کرد. یا ماجول اصلی درست کار کند و یا اگر ماجول اصلی خراب شود، پوشش اشتباه به درستی انجام شود و ماژول پشتیبان هم درست باشد.
بنابراین قابلیت اطمینان در این سیستم برابر است با احتمال درست كاركردن ماژول اصلی ، Rp(t) ، به اضافه درست كاركردن ماژول پشتیبان، Rs(t) ، به شرطی كه ماژول اصلی خراب شده باشد ، Rp(t)-1 ، و تشخیص هم داده شده باشد (C).
در نتیجه رابطه قابلیت اطمینان برابر است با:
Rsys = Rp + (1-Rp)CRs
از آنجایی كه معمولا ماژول اصلی و پشتیبان همسان هستند، قابلیت اطمینان آنها هم یكسان است. یعنی R = Rp = Rs ، پس داریم:
Rsys = R + C(1-R)R
اگر پوشش اشتباه، 100% باشد، C برابر یک می شود و داریم:
Rsys = R + (1-R)R = 1 - (1-R)2
رابطه قبل را میتوان به سیستمی كه شامل یك ماژول اصلی و N-1 ماژول پشتیبان است، نیز بسط داد:
Rsys = 1 - (1-R)n
صحت رابطه بالا را بررسی كنید.
در حالت قبل (یعنی وقتی كه سیستم N ماژول داشته باشد)، در صورتیکه پوشش اشتباه را هم در نظر بگیریم، رابطه قابلیت اطمینان سیستم به صورت زیر است:
Rsys = R + C(1-R)R + C2(1-R)2R + ...
در نتیجه داریم :
n
Rsys = R Σ CK(1-R)K
K=0
3-2-3 افزونگی سخت افزاری ترکیبی
روش ترکیبی در واقع تركیبى از دو روش قبل است. در این روش هم از افزونگی غیرفعال و هم از افزونگی فعال استفاده می شود. این روش كامل تر از دو روش قبلى است و تحلیل آن پیچیده تر است.
در این روش تركیبى از NMR و استفاده از پشتیبان را خواهیم داشت. به این شكل كه n تا از ماژولها به یك رای دهنده می روند، و اگر نتیجه یكی از آنها خطا داشته باشد، یك پشتیبان جایگزین آن ماژول خراب می شود. محاسبه قابلیت اطمینان در سیستم های ترکیبی به نسبت پیچیده است و با روشهای معمول به سادگی انجام نمی پذیرد. بهترین روش برای این كار استفاده از مدل ماركف است.