بخشی از مقاله
بررسی مدل های جوانسازی نرم فسار توسط زنجیره مارکوف
چکیده - کارایی بالا برای بالا بردن اطمینان و اجتناب از ازدست دادن منابع بسیار ضروری است. حال آنکه سالخوردگی نرم افزار اکثرا تاثیر گذار روی کارایی نرم افزار است و باعث به وجود آمدن خطا می شود. ولی جوان سازی نرم افزار به صورت گسترده برای اجتناب از رخداد خطا و سالخوردگی نرم افزار استفاده می شود. هدف از جوان سازی نرم افزار از میان برداشتن خطاهایی است که در اثر مرور زمان، فرسودگی منابع، پارگی حافظه، خرابی داده و آزاد نشدن قفلهای روی فایل ها ایجاد می شوند. در این مقاله هدف این است که رهنمودی در رابطه با به کار گیری مناسب ترین روش جهت جوان سازی نرم افزار پیشنهاد دهیم. در ابتدا به بررسی و مقایسه میان روش های ارائه شده در جوان سازی نرم افزار و سپس به بررسی نقش زنجیره مارکوف بعنوان یکی از اصلی ترین روش های جوان سازی نرم افزار جهت پیش بینی ساختاری جوان سازی می پردازیم، تمرکز این تحقیق روی کشف شباهت ها و اختلافات بین روش های در دسترس خواهد بود و این کار از طریق جدول ارزیابی صورت خواهد گرفت.
کلید واژه- سالخوردگی نرم افزار , جوان سازی نرم افزار ، مجازی سازی، زنجیره مارکوف، جانشین سرد، جانشین گرم، جانشین داغ
-1 مقدمه
در نرم افزارهای مدرن قابلیت اطمینان و دسترس پذیری دو خصیصه کیفی می باشند که نیاز به آنها در حال افزایش است. موضوعی که معمولا خیلی از سرویس دهندگان در مورد آن غفلت میکنند تاثیرات سالخوردگی روی نرم افزار است. خطاهای نرم افزاری باید در فاز اشکال زدایی رفع شوند. حتی ممکن است نرم افزار به صورت صحیح تست شود ولی دارای خطا باشد که هنوز آشکار نشده یا در اثر مرور زمان آشکار خواهد شد. نوع دیگری از خطا که در سیستم های نرم افزاری مشاهده می شود به علت فرسودگی منابع، پارگی حافظه، آزاد نشدن قفلهای روی فایلها، خرابی داده ها و کمبود حافظه بعد از مرور زمان به وجود می آیند. در این تحقیق ما به ارائه روشی می پردازیم که در آن خطاهایی که به مرور زمان در سیستم ایجاد شده را از میان برداریم و از فرسودگی که باعث پایین آمدن کارایی و دسترس پذیری به منابع می شود با استفاده از زنجیره مارکوف جلوگیری کنیم.
-2 تشریح مطالب پایه و کلمات کلیدی:
در زیر به تشریح سالخوردگی نرم افزار، جوان سازی نرم افزار و تکنولوژی مجازی سازی پرداخته شده است:
-1 -2طول عمر نرم افزار:
با گذشت زمان تاثیرات ناخواسته و نا مطلوبی روی کارایی نرم افزار ایجاد می شود که بعنوان پدیده سالخوردگی نرم افزار شناخته می شود. 11]،10،[7 اینپدیده اکثراً تاثیر گذار روی کارایی نرم افزار و کاهش کارایی در منابع سیستــــــم عاملی، انحراف داده ای و انباشتـگی خطاهای عددی است و موجب شکست در سیستم می شود. سالخوردگی نرم افزاری یک الگوریتم تصاعدی است که با تخلیه منابع و ایجاد شکست یا تعویق در سیستم همراه است. با سالخوردگی نرم افزار کارایی نرم افزار با گذشت زمان کاهش خواهد یافت و نتایج ناچار و نا مطلوبی به وجود خواهد آورد.
1
-2-2 دوباره جوان سازی نرم افزار :
جوان سازی نرم افزار یک تکنیک با هزینه کارآمد و موثر است و برای مقابله با خطاهای نرم افزاری که نه تنها در برابر شکست های سنگین محافظت می کنند، بلکه از کنترل کارایی نیز محافظت می کنند، طراحی شده است. [16] این تکنیک یک مفهوم تکرار شونده است و شروع مجدد انحصاری هر نرم افزار در یک محیط داخلی درست بعد از هر فاصله جوان سازی تکرار می شود. یعنی اگر در سیستم خطایی پیش آمد و سیستم ملزم به جوان سازی نرم افزار شد، بعد از جوان سازی دوباره سیستم به حالت اولیه برگشته و آمادگی رو به رو شدن با خطاهای بعدی را دارد و این چرخهمرتباً تکرار می شود.
جوان سازی نرم افزار بعضی وقت ها باعث توقف درخواست های نرم افزاری، رفع خطا و شروع مجدد درخواست در یک محیط بی خطر می شود. این فرایند مانع از انباشتگی خطا ها شده و منابع سیستم پردازشی را آزاد و آنها را به هم متصل می کند، بنابراین از فعالیت بدون برنامه یا پرهزینه جلوگیری می کنــــد. آزمایشات جوان سازی میتواند شروع دوباره نرم افزاری یا راه اندازی مجدد سیستم باشد.[16] سپس عملیات سالخوردگی از بین رفته و عملیات جدید به وجود می آید. با جابه جایی فرایند جدید به جای قدیمی، انباشتگی تاثیرات سالخوردگی را در طول اجرای نرم افزار از میان می بریم .
-3-2 مجازی سازی:
برای بالا بردن طول عمر نرم افزار می توان از ماشین مجازی استفاده نمود . مجازی سازی امکان استفاده از منابع موجود به ویژه منــابع داده ای را گسترش داده اســـــت. ] 18،[ 14 تحقیقات نشان می دهد که مجازی سازی می تواند به میزان زیادی در جوان سازی نرم افزار و جلو گیری از شکست مفید باشد. مقاله های 5]،[4 این فرضه را اثبات کرده اند. نتایجی که مجازی سازی روی جوان سازی دارد تاثیر گذار در دسترسی طولانی مدت تر به سرویس ها و هزینه کمتر دارد . [5 ] مجازی سازی به همراه جوان سازی می توانند برای طولانی کردن دسترس پذیری سرویس ها به کار برده شوند.[6] نتیجه این که
مجازی سازی می تواند برای جوان سازی مفید واقع شود و بر خطا ها و سالخوردگی غلبه کند.
-3 حالات سرور پشتیبان:
با سه حالت مختلف می توان برای سرور اصلی پشتیبــــان تهیه کرد، جانشیـن سرد((C-S، جانشین داغ (H-S) و جانشین گرم(.(W-S که درجدول((1 مختصرا آنها را شرح داده و مقایسه کرده ایم و هر یک را به تفضیل در زیر شرح خواهیم داد.[11]
: (C-S)Cold standby-1-3
در حالت جانشین سرد، نود پشتیبان روی حالت standby خاموش است و زمانی که نود اولیه شکست بخورد، فعال می شود. مزیت این روش این است که نود ثانویه مصرف کمی از انرژی دارد و سیستم فرسوده نمیشود. به عبارت دیگر نود ثانویه نیاز به زمان با اهمیتی برای فعال شدن دارد و کاربرانی که به اطلاعات نود اولیه دسترسی دارند تمام اطلاعات خراب شده نود اولیه را از دست می دهند و بیشتر کارها زمانی که نود ثانویه فعال باشد دوباره انجام داده می شود.
:( H-S)Hot standby-2-3
مدل جانشین داغ در بر دارنده مدل کپی گیری است. مدل کپی شده با مدل عملیاتی همگام و همزمان است. در نتیجه کلاسترها فعال و standby همراه به نظر می رسند که برای کاربر نهایی به عنوان یک منبع واحد به نظر می رسد. بعد از شکست در یک گره، نود ثانویه فعال شده و کاربران به نود ثانویه دسترسی دارند در حالی که به نود اولیه دسترسی ندارند.
:( W-S)Warm standby-3- 3
مدل جانشین گرم برای متعادل کردن هزینه و بهبود زمان تاخیردر C-S و H-S صحبت می کند. به این صورت است که نود ثانویه روی حالت standby کاملا خاموش نیست. بنابراین از حالت C-S زمانی که شکست در نود اولیه مشاهده شود، سریعتر است. [11]
2
. جدول :1 تشریح و مقایسه حالات سرور های پشتیبان
نود کپی شده جزئی همگام و همزمان با نود عملیاتی است بنابراین کاربرانی که به اطلاعات نود پردازشی دسترسی دارند ممکن است بعضی از اطلاعات که نزدیک به زمان شکست گره اولیه است را از دست بدهند.
-3 دسته بندی روش های مبتنی بر جوان سازی:
در این بخش جوان سازی را طبق شکل 1، به 3 بخش اصلی تجزیه می کنیم و هر یک را در زیر شرح خواهیم داد و همچنین بهینگی سه روش پایه در جدول 2 مورد ارزیابی قرار گرفته.
جوان سازی نرم افزار یک مفهوم ویژه از مدیریت خطا است که می تواند در زمان مناسب انجام شود، مانند زمانی که هیچ باری در سیستم نیست و نتیجه ای در زمان افت کمتر و هزینه کمتر، از این کار ناشی می شود. [3] این روش جوان سازی دارای یک مشکل معمول در حین جوان سازی است. زمان افت که در زمان شروع مجدد یا راه اندازی مجدد در سیستم رخ می دهد زمانی که نرم افزار در حال بارگذاری داده روی سیستم نباشند اتفاق می افتد. با مدیریت خطا می توان زمان افت را نسبت به حالت معمول شروع مجدد نرم افزاری یا راه اندازی مجدد سیستم کاهش داد ولی همچنان روش مناسبی برای کاهش زمان افت نیست. جوان سازی بر اساس روشی منظم و مدت زمان از پیش تعیین شده انجام می شود و به صورت گسترده در محیط های واقعی استفاده می شود. مانند وب سرورها.
-2-3 بلادرنگ:
این تکنیک به صورت بلادرنک پس از رو به رو شدن با خطا، صرف نظر از خطایی که پیش آمده، عملیات جوان سازی را انجام میدهد. اگر نیاز به جوان سازی در زمانی باشد که سیستم
ش بعد از جوان سازی در فاصله کوتاهی نیاز به دوباره جوان سازی
کل :1دسته های مختلف جوان سازی
نداشته باشد، نتیجه ای در زمان بهتر و هزینه کمتر دارد. ولی
)-1-3بر پایه زمان):Time-based ایرادی که به این روش می توان گرفت این است که در این روش
ممکن است با کمبود منابع روبه رو شویم و این کمبود منابع
3
زمان افت را به نوبه خود بالا می برد. پس در این روش هم دسترس پذیری به منابع و هم زمان افت دو مبحث چالش برانگیزهستند .[5]
-3-3 (بر پایه بازرسی):Inspection-based
بر پایه میزان پیشرفت تاثیرات سالخوردگی و بر پایه محدودیت های تعریف شده و trigger ها تعیین می شود. که به سه دسته آستانه و پیش بینی و ادغام تجزیه شده است. [3]
آستانه: توسط یک فرد خبره برای هر مبحث قابل ملاحظه که شاخصی از سالخوردگی باشد تعریف می شود. بر پایه نمایش تاثیرات سالخوردگی نرم افزار است. و زمانی که واقعه خاصی رخ دهد از سیستم جوان سازی شده کپی میگیرد.
پیش بینی: پیش بینی زمان فرسودگی جوان سازی است. به این صورت که این سیستم یک دوره زمانی خاص را برای جوان سازی نرم افزار معرفی می کند و این دوره جوان سازی مرتب در این سیکل دوره زمانی تکرار می شود. پس عملا زمان فرسودگی را پیش بینی کرده و توسط دوره تریگر جوان ساز ، جوان سازی را انجام داده. [2 ]
ترکیبی : حالت ترکیبی از دو حالت قبل است ، به این ترتیب است که در دوره زمانی مشخص ،ولی توسط فرد خبره کنترل شده. این کار باعث کاهش بعضی هزینه ها می شود ولی احتمال رخداد خطا بالاست و عملا نتیجه بهینه ای در جوان سازی ندارد.[3]
-4 مشکلات دسته های مختلف جوان سازی :
هر کدام از روش های اصلی بالا می توانند برای جوان سازی نرم افزار به کار روند ولی دارای مشکلاتی هستند.
مشکل روش اول: در مرحله " بر پایه زمانی" انتخاب زمان جوان سازی بر پایه پایین ترین لود در سیستم بوده . ولی از نظر زمان و دسترس پذیری منابع و زمان افت بهینه نیست.
مشکل روش دوم: در مرحله "بازرسی" به این صورت است که توسط فرد خبره با یک دوره زمانی تعیین شده سیستم جوان سازی شود. در این روش دسترس پذیری منابع حل شده ولی این نیز از نظر هزینه و کارایی و قابلیت اطمینان پایین آمده و زمان و زمان افت نیز بهینه نیست.
مشکل روش سوم: در روش "بلادرنگ" سیستم به محض مواجه با شدن با خطا عملیات جوان سازی را انجام می دهد. در این روش مشکل زمان حل شده ولی از نظر هزینه و کارایی و قابلیت اطمینان و دسترس پذیری منابع و زمان افت بهینه نیست.
پس بنابراین هر کدام از این روشها به نحوی دارای مشکلی هستند و هیچ کدام به صورت ایده آل اکثر این مشکلات را حل نمی کنند. ما در جوان سازی بر پایه پیش بینی مکانیسمی ارائه خواهیم کرد که نقاط ضعف جوان سازی بر پایه بازرسی را تا حد کنترل شدهای از میان بردارد و تخمینی از زمان جوان سازی نرم افزار داشته که دسترسی به منابع را افزایش دهد.
-5 رویکردهای موجود جهت حل مشکل
رویکردهای
-1-5 مجازی سازی
مجازی سازی اجرای همزمان چند سیستم عامل روی یک ماشین فیزیکی در محیط کاملا ایزوله را امکان پذیر می سازد.6]،[5 سالخوردگی وابسته به مجازی سازی احتیاج به آدرس دهی ، به خصوص مدیریت دسترس پذیری دارد شکل. 2 ایده اصلی این فرایند بر پایه چند ماشین مجازی که سالخوردگی نرم افزار روی آن تاثیر می گذارد و جوان سازی تریگرها از هر ماشین مجازی زمانی که خطا پیدا شود ، صورت می پذیرد. [6] پس با استفاده از تکنیک مجازی سازی می توان مشکلات مربوط به هزینه ها را کاهش داد. و کارایی را افزایش داد. شکل (2) نمونه ای از استفاده از ماشین های مجازی برای جوان سازی نرم افزار را نمایش میدهد.
شکل 2 :معماری مجازی سازی ماشین تک سروره[19]
4