دانلود با لینک مستقیم و پر سرعت .
چکیده
آشکار سازی بن بست یکی از جدی ترین مسائل در سیستم عاملهای توزیع شده است. در این مقاله ما یک بررسی وضعیت هنری الگوریتمهای آشکار سازی بن بست توزیع شده که در ادبیات مطرح شده است ارائه می کنیم. در این حوزه ما یک نگاهی به مقالات آشنا درباره این عنوان داریم و تلاش می کنیم تا معروف ترین الگوریتم ها را گروه بندی می کنیم.
1- مقدمه
در طول دهه گذشته سیستمهای محاسبه گر پیشرفت سریعی داشته اند که تأثیر زیادی بر سیستم عاملهای توزیع شده دارد. در حالیکه سیستمهای تجاری به تدریج پیشرفت می کنند، چالشهای جدید بوسیله ارتباط گسترده جهانی سیستمهای کامپیوتری وضع شده است.
این جریان یک نیاز رشد کنندهای برای راه حلهای توزیع شده با مقیاس بالا ایجاد میکند. در آینده، سیستم عاملهای توزیع شده باید صدها و حتی هزاران سایت و میلیونها مراجع را حمایت کنند و بنابراین با چالشهای بزرگی در ارتباط با اجرا، در دسترس بودن و مدیریت مواجه خواهند شد. یکی از چالشهایی که ما باید حل کنیم در این حوزه مشکل بن بست است. همچنین نسبت یکی از جدی ترین مشکلات در سیستم های برنامه ریزی رایج چند کاره است.
بقیه مقاله مثل زیر سازمان دهی شد. بخش 2 مختصرا بن بست و حوزه آن در سیستم عاملهای توزیع شده را توزیع می دهد.
در حالیکه بخش 3 یک شرحی از مشکل بن بست ارائه می دهد و 2 الگوی بن بست که به طور کلی در سیستمهای بانک اطلاعاتی توزیع شده به کار می رود. یک گروه بندی از الگوریتمهای توزیع شده برای این الگوها و نمایندههای گروه های مختلف در بخش 4 شرح داده شده است. نهایتا، ما در بخش 5 خلاصه می کنیم، در حالیکه بخش 6 مرجهای ما را توصیف می کند.
2- پیش زمینه
در این بخش ما تلاش می کنیم تا نگاهی بر مقالات بررسی که بوسیله دیگران در روش آشکار سازی بن بست ارائه شده است داشته باشیم.
متون بن بست رسما یک بن بست را به عنوان یک مجموعه فرایندی که بن بست است، اگر هر فرایند در مجموعه منتظر یک رویدادی است که تنها فرایند دیگری در مجموعه می تواند موجب شود. تعریف می کند. [2 و 1]. یک تعریف غیررسمی تر این است که بن بستها می تواند هر زمانی که 2 یا چند فرایند برای منابع محدودی رقابت می کنند و فرایندها برای یافتن و حفظ یک منبع فراهم شده است اتفاق بیافتد. اگر یک فرایند برای منبعی، انتظار بکشد، هر منبعی که آن حفظ برای فرایندهای دیگر در دسترس نیستند. اگر فرایندی برای منبعی که بوسیله فرایند دیگری حفظ شده است انتظار میکشد، که در بازکش در حال انتظار برای یکی از منابع نگهداری آن ما یک بنسبت داریم. هنگامیکه یک سیستم به این وضعیت می رسد، به طور مؤثر، بسته می شود: و باید مشکل را برای ادامه عملکرد حل کنیم.
4 شرط وجود دارد که یک بن بست نیاز دارد:
1- حذف متقابل: هر منبعی می تواند به یک منبع خاص تخصیص یافته شود.
2- حفظ و انتظار: فرایندها می توانند یک منبع و درخواست بیشتر حفظ کنند.
3- بدون پریامپشن: منابع نمی توانند بالاجبار از یک فرایند حذف شوند.
4- انتظار حلقوی: باید یک زنجیره حلقوی از فرایند وجود داشته باشد هر انتظاری برای یک منبع نه بوسیله شماری از زنجیرههای بعدی نزدیک حفظ شده است.
به طور معمول 4 روش در ارتباط با بن بستها به کاربرده شده است
1- نادیده گرفتن مشکل
2- آشکار سازی بن بست
3- جلوگیری از بن بست
4- اجتناب از بن بست
نادیده گرفتن بن بستها آسانترین برنامه برای تکمیل است. آشکار سازی بن بست تلاش می کند تا بن بست ها را قرار دهد و حل کند. اجتناب از بن بست روشهایی را شرح می دهد که تلاش می کند تا تعیین کند آیا یک بنبست در زمانی که یک منبع درخواست می شود و نسبت به درخواستی در یک حالتی که از بن بست اجتناب میشود عکس عمل نشان می دهد. اتفاق خواهد افتاد. جلوگیری از بن بست ساختن یک سیستمی در یک حالتی که یکی از 4 شرط ضروری برای بن بست امکان پذیر نباشد است. هر گروه راه حل متناسب با یک نوع خاص محیط است و فواید و نقایص دارد. در این مقاله ما به آشکار سازی بن بست که شایع ترین راه حل بن بست تکمیل شده است تمرکز می کنیم.
در سیستمهای بانکها اطلاعاتی توزیع شده، آشکار سازی بن بست خیلی پیچیده میشود به عنوان یک نتیجهای از بی ثباتی در وضعیت سیستم جهانی. اگر چه الگوریتمهای آشکار سازی بن بست زیادی در سیستم های بانک اطلاعاتی توزیع شده مطرح شده است اکثر آنها به خاطر سربارهای سیستم بالا غیر عمل هستند.
2 روش اصلی در آشکار سازی بن بست توزیع شده شکل گرفته است. ابتدا یکی که برای ساخت وضعیت یک سیستم جهانی است و دومی برای تلاش در جهت عبور از یک پیغام خاص از طریق ترانکش های بلوکه شده به منظور آشنا ساختن یک چرخه بن بست است. یک روش از روش دومی آشکار سازی بن بست توزیع شده بر پایه دلیل همان طور که توسط چندی و مسیرا و هس مطرح شده است. ترکیب اصلی این متد این است که هیچ وضعیت سیستم جهانی مورد نیاز نیست.
الگوریتم آشکار سازی بن بست کندی بر پایه احتمالی از طریق سایتهای مختلف است. تنها فرایندهایی که در مرز سایتهای یافت می شود می تواند پیغامهای بررسی را آغاز کند. الگوریتم کندی می تواند برای آشکار سازی بن بست توزیع شده بر پایه بررسی کندی در [2] ارائه شد. به عنوان یک نتیجه از سربازهای سیستم بالا که در حفظ جدول وابستگی برای mpa ایجاد شد انتظار می رود عملکرد سیستم یک شکل اساسی داشته باشد. یک نسخه پشرقه از MPA (EPA) با جایگزینی جدول استقلال (وابستگی) با یک انتظار برای نوشتن تعریف شد.
بررسی اولیه به این کار در متن سیستم های بانک اطلاعاتی توزیع شده بوسیله المگاوامیه مطرح شده است به هر صورت محققان زیادی احساس می کنند که نیازهای درجه بند و عملکرد که بوسیله سیستمهای توزیع شده مقیاس بالا وضع شده مورد نیاز برای بروز روشهای مکمل پیشرفته است.
در یک مقالهای از نپ الگوریتمهای آشکارسازی بن بست توزیع شده در گروههای زیر تقسیم بندی شد:
1- روش مرکزی شده توسط حفظ انتظار برای نوشتن جهانی
2- الگوریتم هل دادن مسیر توسط فرستادن بخشهایی از WFG به سایتها مجاور
3- آشکار سازی جستجوی لبه با فرستادن بررسیها
4- رد محاسبات با فرستادن بررسیهایی به همه فرایندهای وابسته (OMS) و انتظار برای دریافت پاسخ.
5- آشکار سازی وضعیت جهانی که بخشهای مرتبط نقشه WFG در یک هرم منسجم جهانی بدون حفظ محاسبات ساخته شده است.
DDA برنامه DDA اینجا می تواند تحت 5گروه ارائه شود.
3- مشکل بن بست عمومی
در اکثریت سیستمهای بانک اطلاعاتی مدرن کنترل همزمان بر پایه مکانیزمهای قفل کردن است. اکثر سیستمها پروتکل PL2 محکمی را استفاده می کنند. پروتکل قفل کردن می تواند موجب بن بست شود. یک بن بست یک شرایط انتظار حلقوی موقت است. یک مجموعه از تراکنشها بن بست. شده هستند اگر هر کدام از تراکنش ها برای قفلهایی که توسط تراکنشهای دیگر از این مجموعه انتظار می کشند. همه تراکنشها می توانند در مجموعه در یک حالت انتظار باشند یعنی راهشان سد شده است و هیچ کدام از آنها بدون دخالت بیرون باز نمی شوند. نمونههای قفل کردن مختلف می تواند بوسیله الگوریتمهای کنترل همزمان مورد استفاده باشد.
هنگامیکه از قفل کردن معنایی استفاده می شود. یک تراکنش ممکن است برای تنها یک زیرمجموعه از نگهدارندههای هدف انتظار بکشد. همچنین تراکنشهای مختلفی که بلوکه شده اند در همان شی ممکن است. برای زیر مجموعههای متفاوتی از نگهدارندها شی انتظار بکشد. اداره کردن بن بست قفلها شامل 2 مسئله می شود. آشکارسازی بن بست و راه حل بن بست، در یک مفهوم راه حل بن بست DBMS که یکی از تراکنشهای شرکت کننده، فرمانی برای ناتمام ماندن انتخاب شده است بدان وسیله بن بست حل می شود.
الگوریتم آشکارسازی یک بن بست اگر 2 شرط را رعایت کند صحیح است:
1- هر بن بست به تدریج آشکار می شود (خصوصیت پیشرفت اساسی) و
2- هر بن بست آشکار شدهای در واقعیت وجود دارد، یعنی، تنها بن بست های عملی آشکار شده هستند (خصوصیت ایمنی).
در حالیکه اولین شرط روشن است، دومی نیاز به توضیح دارد. اگر چه یک بن بست یک خصیصه باثبات است، به واسطه اطلاعات قدیمی ممکن است که همان بن بست آشکار شود و یا دوباره حل شود. بن بستهای آشکار شده که واقعا وجود ندارند بن بستهای فانتوم نامید می شوند. موردی که قابل بحث است این است تا یک الگوریتم آشکار کننده بن بستهای فانتوم می توانست صحیح بنظر برسد اما ناتمام های ترانکشن غیرضروری آنچنان گران گران هستند که قابل تحمل نیستند.
هر الگوریتم آشکار سازی بن بست ممکن است بن بستهای فانتوم را اگر ناتمامهای همسان اجازه دهند آشکار سازد. اگر یک الگوریتم تصمیم بگیرد ناتمام بگذارد یک ترانکشن را به منظور حل یک بن بست و در همان زمان ترانکشنهای دیگر ناتمامهای بن بست را در برگیرند در نتیجه حل شدن بن بست الگوریتم بن بست فانتوم را میشکند. بنابراین ما فرض خواهیم کرد که هیچ ناتمام همسانی در سیستم اتفاق نمیافتد.
1-3- انتظار برای نمودار
شرایط بازدارنده بین تراکنشها می تواند از طریق یک ترانکشن منتظر برای نمودار (WFG) ارائه شود. یک WFG یک نموادر مستقیم است که گرهها مطابق با ترانکشنها و یک لبه مستقیم برای بیان آن انتظار برای یک منبع حفظ شده است.
یک بن بست می تواند بوسیله بررسی ساختار WFG آشکار شود. ساختار نمودار نشان می دهد که بن بست وابسته به نمونه بن بست است به عنوانی که در فصل بعد توضیح داده شده است به کار می رود.
2-3- نمونههای بن بست متفاوت
وابسته به نمونه محاسباتی در انواع درخواستهایی که توسط ترانکشن ها ایجاد میشود. نمونههای بن بست متفاوت به کار برده می شود. در DBMS توزیع شده منبع مجردی و نمونه AND در حال غالب شدن است، آنچنان که آنها در این جا مورد بحث قرار می گیرند. توضیحات نمونههای دیگری مثل نمونه or و نمونه کلی، که کمتر معمول هستند در فصل 5 ارائه شده است.
ساده ترین و مورد استفاده ترین نمونه در DBMS ها نمونه منبع مجرد است. در این نمونه یک ترانشکن یک درخواست برجسته در یک زمان دارد یعنی یک قفل در یک مورد درخواست می کند. اگر چه یک ترانکشن تنها یک درخواست بیرون رونده در یک زمان دارد، ممکن است برای بیش از یک ترانکشن انتظار بکشد.
یک بن بست در نمونه منبع مجرد مطابق با یک چرخه از ترانکشن های منتظر است. بنابراین الگوریتمها برای این نمونه یک بن بست را جدا می کنند. چرخه اگر یکی از ترانکشنهای مرتبط ناتمام بماند و بدان وسیله قفلها را باز کند حل میشود.
برای این مدل الگوریتمهای زیادی ارائه شده است. در یک مدل محاسباتی که در آن یک ترانکشن می تواند بیش از یک درخواست در یک زمان بفرستد و باید تا زمانی که همه آنها تأیید بشوند انتظار بکشد، بن بستها بوسیله مدل AND توصیف شده اند. برای مثال این مدل در سیستمهای حمایت کنند تراکنشها جای گرفتند بکار می رود، یک بن بست در این مدل دوباره از طریق یک چرخه در WFG نشان داده می شود.
4- الگوریتمهای آشکار سازی بن بست توزیع شده
الگوریتمهای آشکار سازی بن بست توزیع شده زیادی برای DBMS های توزیع شده گسترش یافته است که بررسی ها در 10 و 5 و 4 یافت می شود. این مقاله بر الگوریتم های توزیع شده برای منبع و مدل AND تمرکز دارد. ما الگوریتمهای توزیع شده را براساس روشهایی که آنها استفاده می کنند شبیه به گروهبندی پیشنهادی در [5]، توضیح روشهای مختلف و توصیف یک نمونه از هر گروه در جزئیات بیشتر گروه بندی می کنیم. ما این الگوریتم ها را انتخاب می کنیم که برای بهترین بودن در گروهشان ظاهر می شوند، یعنی کمترین تعداد پیغامها را کاهش می دهند و ابتدا در فصل 1-4 ما یک نگاهی به استراتژی های راه حل بن بست خواهیم داشت.
1-4- راه حل بن بست
استراتژیهای راه حل بن بست تعیین می کند که ترانکشنها به منظور حل بنبستها نا تمام می مانند. استراتژی های راه حل زیادی برای سیستمهای مرکزی ارائه شده است. بعضی از آنها بوسیله 11 مقایسه شده است. براساس نتایج متحرکات، 2 شرط تعیین کردند که هر راه حل باید تضمین کند: 1- همیشه تضمین کند که حداقل یک ترانکشن در سیستم تمام شود و 2 هیچ ترانکشنی ناتمام نخواهد ماند.
اولین شرط در ارتباط با خصوصیت بیان شده در فصل 3 است این خصیصه ضمانت می کند که هیچ بن بستی وجود نخواهد داشت اما اطمینان نمی دهد که همه ترانکشنها پایان یابند. یک آشکارسازی و الگوریتم راه حل بن بست تعیین کننده است که چه چیز انتظار می رود. صراحتا شرایط مطرح شده برای DBMS های توزیع شده حفظ می شود.
2-4- روش تایم اوت (زمان سپری شده)
در این الگوریتم یک ترانشکن یک تایم اوت هر زمانی آن یک درخواست عملکرد ایجاد کند شکل می دهد. اگر هیچ تقدیری دریافت نکند که نشان موفقیت آمیز بودن عملکرد باشد قبل از اینکه زمان به پایان برسد فرض می کنیم که درگیر یک بن بست و ناتمام شده است.
الگوریتم ساده است و بنابراین آسان تکمیل می شود. همچنین به واسطه آشکار سازی بن بست موجب ترافیک شبکهای نمی شود.
فایده اصلی الگوریتم این است که آن تعداد زیادی ترانکشن را ناتمام می گذارد که ممکن است بن بست نباشند و در نتیجه موجب عکس العملهای غیرضروری و دوباره راه اندازی ترانکش ها می شود.
فایده دیگر این است که فاصله تایم اوت (زمان سپری شده) باید منظم باشد. اگر خیلی کوتاه است حتی بیتشر از زمانی که ترانکشهای غیرضروری ناتمام می مانند. اگر آنقدر طولانی است که بن بستها در سیستم برای یک مدت طولانی باقی می مانند و در نتیجه موجب تأخیر ترانکشن در بن بست و انتظار برای قفلهایی که توسط آنها ایجاد شده است می شود.
در دوازده این طور مطرح شده است که ممکن است بعضی اوقات ناتمام ماندن تراکنشهای زیادی مطلوب نباشد، این نشان می دهد که بار قفل کردن آنچنان بالا نیست. این ممکن است صحیح باشد اما یک الگوریتم آشکار سازی بن بست نباید برای برنامه ریزی روزانه مسئول باشد.
3-4- گروه بندی الگوریتمهای توزیع شده
الگوریتمهای آشکار سازی بن بست توزیع شده متفاوت زیادی برای DBMS ها منتشر شده است.
آنها می توانند به دو گروه زیر تقسیم شوند: 1- هل دادن مسیر 2- بر پایه بررسی
3- الگوریتمهای آشکار سازی وضعیت جهانی.
قبل از اینکه ما الگوریتمها و گروههای مختلف را توضیح می دهیم می خواهیم فرضیاتی را که فراهم کرده ایم مختصرا بیان کنیم در بخشهای قبل مطرح شد که ما در اینجا یادآوری می کنیم. ابتدا دو فرضیه در ارتباط با عملکرد ترانکشنها:
آنها پروتکل PL2 را دنبال می کنند و بی اختیار تمام نمی شوند. به علاوه یک برقراری ارتباط آزاد ـ خطا نیز فرض شد. بدین معنا که هر پیغامی مقصود خودش را در یک زمانی دریافت خواهد کرد و این که هر پیغام دریافت شده صحیح است.
4-4- الگوریتم های هل دادن (فشار) مسیر (جریان کار)
الگوریتم های فشار مسیر صراحتا WFG را حفظ می کنند. هر سایت به طور دورهای بستگی های انتظار محلی را جمع آوری می کند و یک WFG محلی می سازد و برای چرخههایی در آن جستجو می کند و چرخههایی را که آن محل می کند آشکار می سازد. بخشهای دیگر WFG به بعضی سایتهای دیگر فرستاده می شود. آنها در وابستگیهای انتظار دریافت شده در WFG محلیشان متحد هستند و برای چرخههایی در آن جستجو می کنند. پس از آن سایت دوباره بخشهایی از WFG در سایت های دیگر را عبور می دهد.
جالب است ببینیم که خیلی از الگوریتمهای فشار مسیر منتشر شده در بازگشت درست نبوده اند. اکثر آنها بن بستهای فانتوم را درحالیکه الگوریتمهای دیگر حتی آشکار کردن یک بن بست وارد می کند آشکار می سازد.
اگر چه این الگوریتمها نادرست هستند الگوریتم مناسک ـ مانتز (13) و الگوریتم اوبرمارک مختصرا برای فهم مشکلات این گروه از الگوریتمها مطرح شده است.
الگوریتم مناسک ـ مانتز. الگوریتم مناسک مانتز اولین بار برای شکل مشخصی از ترانشکن منتظر برای نمودار مورد استفاده قرار گرفت. در الگوریتم آنها تنها بخش های TWFG جهانی کامل در سایت جهانی ترانکشن برای آشکار سازی بن بستها نگهداری شد مبدل بن بست شالوده مدل AND است، از این رو الگوریتم برای چرخههایی در زیر مجموعه TWFG جستجو می کند.
یک ترانکشن می تواند یا بلوکه شود یا نشود. یک مجموعه منع شده T یک ترانشکن T مجموعه همه ترانکشنها To منع نشده ای است که می تواند از T در TWFG از طریق یک مسیر مستقیم بدست آید.
الگوریتم اوبرمارسک ـ الگوریتمی که توسط اوبرمارسک درباره سیستم R تکمیل شد و استراتژی فشار مسیر را با فرستادن بخشی از یک چرخه ممکن یعنی یک مسیر به سایت دیگر تنها در مورد ترانکشن اول در مسیر یک تقدمی نسبت به آخری دارد.
این جریان شمار پیغام ها را بوسیله نیم تا نیم کاهش می دهد.
علی رغم این بهینه سازی الگوریتم سه بار عمده ای را هنگامیکه آن اجرا می شود. ارائه می کند. این جریان به صورت دوره ای انجام می شود. آنچنان که همه WFG باید برای چرخه 3 جستجو شود. به علاوه مسیرهایی که باید به سایتهای دیگر فرستاده شود باید مشخص شود. همچنین مشارکت مسیرهای بدست آمده از یک سایت اطلاعات خیلی دریافت شده از این سایت را واضح می کند. باید در WFG برای اطلاعات جدید مبادله شود.
در فصل [4] این طور مطرح شده است که الگوریتم از بن بست های فانتوم حمایت میکند، از آنجائی که بخشهایی از WFG بین سایتهای متعلق به اسنپ شاتها یعنی ممکن است ناپایدار باشد فرستاده می شود.
بدال الگوریتم: در یک تلاش برای بهینه سازی الگوریتمهای آشکار سازی بن بست توزیع شده در اصطلاحات آشکار سازی اگر بن بست ها با حداکثر کارآمدی، بدان یک الگوریتم 3 سطحی را پیشنهاد می کند. یک چرخه بن بست می تواند تپولوژی های مختلفی داشته باشد. بدال بن بست ها را به 4 نوع برطبق پتولوژی شان تقسیم بندی کرد. از کل، یک بن بست می تواند محلی باشد یا جهانی.
یک نوع محلی ساده ـ همچنین اکثر چرخههای بن بست تنها یک طول از 2 دارند و هرچه یک چرخه بن بست بلندتر باشد با فرکانس کمتری اتفاق می افتد. این حقیقت موجب یک عقیدهای از ساده کردن آشکار سا زی بن بستهای جهانی توسط ساخت الگوریتم های کار آمد تر در آشکار سازی بن بستهای جهانی کوتاه تر است. بر اساس این عقاید اجرا در الگوریتم بدال با استفاده از 3 سطح از آشکارسازی بنبست برای غلبه بر گروههای پیچیده مختلف بن بستها بهینه می شود. فعالیت در هر سطح پیچیده تر است و نسبتا از نظر قیمت در سطح در حال پیشرفت.
5-4- الگوریتم هایی بر پایه تحقیق
الگوریتمهایی بر پایه تحقیق صراحتا WFG را حفظ نمی کند بلکه یک نوع خاص از پیغام، تطبیق را در مسئول لبه WFG می فرستد. 2 نوع الگوریتم برپایه تحقیق وجود دارد: جستجوی لبه و محاسبات پراکنده.
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 21صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید