هدش عیزوت لماع یاه متسیس – Deadlock تسب نب

Download Report

Transcript هدش عیزوت لماع یاه متسیس – Deadlock تسب نب

‫سیستم های عامل توزیع شده‬
‫بن بست – ‪Deadlock‬‬
‫‪1‬‬
‫مقدمه‬
‫‪ ‬رقابت پردازه های همروند در اختصاص یک منبع‬
‫محدودیت منبع‬
‫‪ ‬دنباله وقایع الزم برای استفاده یک پردازنده از یک منبع‪:‬‬
‫‪ -1‬درخواست‪ :‬ارائه درخواست‪ ،‬در صورت اختصاص قبلی منبع به پردازنده‬
‫دیگر‪ ،‬قرار گرفتن در صف انتظار ‪ ....‬تا آزادی یکی از نوع منبع درخواستی‬
‫‪ -2‬اختصاص دراولین فرصت ممکن‪ :‬نگهداری جدولی از وضعیت منبع‬
‫‪ -3‬آزاد سازی‪ :‬بروز آوری ساختمان داده های مدیریتی‬
‫‪2‬‬
‫مقدمه – ادامه ‪1‬‬
‫‪ ‬اختصاص توسط سیستم و دو فراخوانی ‪ request‬و‬
‫‪ release‬توسط پردازنده ها انجام می شود‪.‬‬
‫‪ ‬چون تعداد منابع محدود است‪ ،‬باید مواظبت شود سناریوهای درستی از‬
‫اختصاص انجام شود‪.‬‬
‫‪ ‬چنین سناریوهایی ممکن است منجر به بن بست شود‪.‬‬
‫شرایطی که هر کس متقاض ی تعداد‬
‫محدودی از کل منابع است ولی پردازه های‬
‫رقیب مانع پیشرفت دو جانبه هستند ‪::‬‬
‫بلوکه دا ئمی‬
‫‪3‬‬
‫مقدمه – ادامه ‪2‬‬
‫‪ ‬منظور از منبع‬
‫‪ ‬فیزیکی‬
‫‪ ‬منطقی ‪ :‬رکورد فایل – سمافور ‪... -‬‬
‫‪ ‬منبع بایستی در هر لحظه توسط یک پردازه استفاده شود و ‪non-‬‬
‫‪ preemptable‬باشد‪.‬‬
‫منبع اختصاص یافته را نمی توان‬
‫آزاد کرد مگر با درخواست مالک‬
‫فعلی آن‪.‬‬
‫‪4‬‬
‫شرایط الزم برای بن بست‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫شرط ممانعت دوجانبه‪ :‬متقاض ی بعدی باید منتظر بماند‪.‬‬
‫شرط ‪ :Hold & Wait‬درخواست منبع جدید بدون آزادی منابع‬
‫فعلی که در اختیار دارد‪.‬‬
‫شرط ‪ :No-Preemption‬مالک مختارانه منبع را آزاد کند تا‬
‫بتواند تخصیص یابد‪.‬‬
‫شرط انتظار حلقوی‬
‫در صورت برقرار بودن ‪ 4‬شرط باال بن بست رخ می دهد‪.‬‬
‫‪5‬‬
‫مدل کردن بن بست‬
‫‪ ‬استفاده از یک گراف جهت دار ‪ -‬دارای دو نوع نود و لبه‬
‫‪Resource Allocation Graph‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫نود پردازه ها‬
‫نود منابع‬
‫لبه اختصاص‬
‫لبه درخواست‬
‫‪ ‬این گراف بصورت پویا‬
‫تغییر می کند و در واقع‬
‫به عنوان ابزاری برای کنترل بن بست استفاده می شود‪.‬‬
‫‪6‬‬
‫شرایط الزم و کافی برای بن بست‬
‫‪ ‬شرط الزم‪ ،‬وجود یک سیکل در گراف اختصاص منابع است‪ ،‬معهذا‬
‫شرط کافی نیست‪ .‬یعنی وجود سیکل شرط الزم است ولی کافی نیست‪.‬‬
‫مطابق شکل وجود‬
‫‪P1,R1,P2,R2,P1‬‬
‫یک حلقه است اما معرف‬
‫حالت بن بست نیست‪.‬‬
‫‪7‬‬
‫شرایط الزم و کافی برای بن بست ‪ -‬ادامه‬
‫‪ ‬شرط کافی در موارد مختلف متفاوت است‪:‬‬
‫‪ ‬اگر از هر منبع تنها یکی وجود داشته باشد وجود حلقه شرط الزم و کافی‬
‫است‪.‬‬
‫‪ ‬اگر از هز منبع یکی یا بیشتر داشته باشیم شرط کافی برای بن بست یک‬
‫‪ Knot‬است‪.‬‬
‫‪‬‬
‫مجموعه ‪ K‬نودی که در آن مجموعه قابل دسترس‬
‫نودهای کل‬
‫فرم ساده شده گراف تخصیص همه‬
‫باشد‪.‬را از گراف‬
‫مجموعهمنابع‬
‫است که‬
‫منابع این‬
‫حذف کنیم‪.‬‬
‫‪WFG‬‬
‫‪ ‬وقتی از هر منبع تنها یکی داریم‪ ،‬می توان ‪ WFG‬و وجود حلقه در آن را شرط‬
‫الزم و کافی دانست‪.‬‬
‫‪8‬‬
‫بن بست در سیستم توزیع شده‬
‫‪ ‬مفهوم همان است که در محیط متمرکز ولی پیچیده تر‬
‫‪ ‬سه استراتژی‬
‫‪ ‬اجتناب‪ :‬اختصاص دقیق منابع‬
‫‪ ‬پیش گیری‪ :‬اعمال محدودیت در روش درخواست منابع توسط پردازه ها‬
‫‪ ‬تشخیص و ترمیم‬
‫‪ ‬در مواردی تمایز بین‪:‬‬
‫‪Resource Deadlock ‬‬
‫‪ :Communication Deadlock ‬انتظار در بالک برای رسیدن پیغام‬
‫حالت ساده ای از بن بست منابع است‪.‬‬
‫‪WFG‬‬
‫‪9‬‬
‫اجتناب از بن بست‬
‫‪ ‬این دسته از روش ها‪ ،‬دانش قبلی از مصرف منابع توسط پردازه ها را‬
‫برای پیش بینی استفاده می کنند‪.‬‬
‫‪ ‬مراحل مختلف‬
‫‪ ‬با رسیدن درخواست‪ ،‬حتی اگر منبع موجود است بالفاصله تخصیص نمی‬
‫یابد‪ .‬سیستم فرض می کند که منبع اختصاص یافته است‪.‬‬
‫‪ ‬بررس ی می شود که آیا تخصیص ”امن“ یا ”نا امن“ است‪( .‬با توجه به اطالع از‬
‫روند کار پردازه)‬
‫‪ ‬نتیجه بررس ی می گوید که اگر امن است‪ ،‬تخصیص انجام شود و در غیر این‬
‫صورت‪( ،‬زمانی که نا امن است) به تعویق افتد‪.‬‬
‫‪10‬‬
‫اجتناب از بن بست ‪ -‬ادامه ‪1‬‬
‫‪ ‬اوضاع امن‪:‬‬
‫‪ ‬اوضاع عاری از بن بست و وجود دنباله ای از منابع و تخصیص به پردازه ها‬
‫وجود دارد که همه پردازه ها می توانند کار خود را تکمیل کنند‪ .‬ممکن است‬
‫دنباله های مختلفی چنین شرطی را برآورده سازند‪ .‬بنابراین ‪ :‬دنباله امن ‪(Safe‬‬
‫)‪ Sequence‬داریم‪.‬‬
‫‪ ‬شرط امن بودن دنباله‪ :‬منابعی که ‪ Pi‬می تواند درخواست کند‪ ،‬با منابع‬
‫موجود و منابع در اختیار پردازه های موجود در دنباله (قبل از ‪ )Pi‬می تواند‬
‫برآورده شود‪.‬‬
‫‪ ‬مثال در کتاب ‪Sinha‬‬
‫‪11‬‬
‫اجتناب از بن بست ‪ -‬ادامه ‪2‬‬
‫‪ ‬موارد‪:‬‬
‫‪ ‬حالت اولیه امن است‪( .‬همه منبع آزاد هستند)‬
‫‪ ‬از یک حالت امن سیستم می تواند تضمین کند که همه پردازه ها می توانند‬
‫تکمیل شوند‪.‬‬
‫‪ ‬یک حالت نا امن‪ ،‬یک حالت بن بست نیست بلکه ممکن است به بن بست‬
‫بیانجامد‪ .‬تضمینی وجود ندارد‪.‬‬
‫‪ ‬هدف از اجتناب از بن بست‪ ،‬نگهداری و اطمینان از حالت امن‬
‫سیستم است‪.‬‬
‫‪12‬‬
‫اجتناب از بن بست ‪ -‬ادامه ‪3‬‬
‫‪ ‬از نظر تئوری جذاب ولی در مواردی غیر عملی!‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫نبود اطالع از نیاز پردازه ها به منابع‬
‫ثابت نبودن تعداد پردازه های رقابت کننده برای منابع‬
‫ثابت نبودن تعداد منابع و امکان تغییر پویا‬
‫بر اساس بدترین حالت تصمیم گرفته می شود که در خیلی از موارد اتفاق‬
‫نمی افتد‪.‬‬
‫محدودیت های عملی‪+‬پیچیدگی های اضافه سیستم های توزیع شده‬
‫استراتژی اجتناب از بن بست در محیط توزیع شده نداریم‪.‬‬
‫‪13‬‬
‫جلوگیری از بن بست‬
‫‪ ‬طراحی سیستم به گونه ای که بن بست غیر ممکن شود‪ .‬هیچ گونه‬
‫تست زمان اجرا الزم نیست‪.‬‬
‫‪ ‬شرط بن بست اجتماع ‪ 4‬شرط‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪Mutual-Exclusion‬‬
‫‪Hold & Wait‬‬
‫‪No-Preemption‬‬
‫‪Circular-Wait‬‬
‫است‪ .‬اگر یکی از این ها نباشد بن بست ممکن نیست‪.‬‬
‫‪ ‬بنابراین تالش در عدم وجود یکی از این شرایط‪.‬‬
‫‪14‬‬
1 ‫جلوگیری از بن بست – ادامه‬
:‫ سه روش جلوگیری از بن بست‬
Hold & Wait ‫ نقض‬:Collective Requests 
Circular Wait ‫ نقض‬:Ordered Requests 
No-Preemption ‫ نقض‬:Preemption Requests 
15
‫جلوگیری از بن بست – ادامه ‪2‬‬
‫‪Collective Requests ‬‬
‫وقتی پردازه ای درخواست یک منبع می کند‪ ،‬منبع دیگری در اختیار ندارد‪.‬‬
‫‪ -1‬وقتی پردازه ای شروع می شود باید همه منابع مورد نیازش را یکجا دریافت نماید‪( .‬یا همه و یا‬
‫هیچ]‪)[wait‬‬
‫‪ -2‬به تدریج برحسب نیاز‪ ،‬ولی هرگاه یک منبع می خواهد‪ :‬آزاد سازی منابع در اختیار و سپس درخواست‬
‫مجدد برای قبلی ها به اضافه منبع جدید‬
‫مزایای این روش (‪:)2‬‬
‫‪ ‬سازگار با طبیعت پردازه ها در عدم اطالع از کل منابع مورد نیاز در ابتدا‬
‫‪ ‬تخصیص منابع در موقع نیاز – مثال در انتهای کار پردازه‬
‫‪ ‬سادگی‬
‫معایب این روش (‪:)2‬‬
‫‪ ‬بهره وری کم از منابع‬
‫‪ ‬قحطی برای پردازه هایی که منابع زیادی الزم دارند‪.‬‬
‫‪ ‬باال رفتن هزینه پردازه‪ Accounting :‬بر حسب منابع تخصیص یافته‬
‫‪16‬‬
‫جلوگیری از بن بست – ادامه ‪3‬‬
‫‪Ordered Requests ‬‬
‫‪ ‬هر نوع منبع یک شماره سراسری انحصاری دارد‪ .‬هر بار یک‬
‫درخواست از طرف هر پردازه ولی درخواست برای منبعی با شماره‬
‫بزرگتر از آخرین منبع تخصیص یافته به آن پردازه و در حال‬
‫استفاده‪.‬‬
‫‪ ‬درخواست برای چند منبع از یک نوع باید یک جا داده شود‪.‬‬
‫‪17‬‬
‫جلوگیری از بن بست – ادامه ‪4‬‬
‫‪Preemption ‬‬
‫‪ ‬یک منبع ‪ preemption‬منبعی است که حالت آن بتواند ذخیره شود و‬
‫سپس بازیابی شود‪.‬‬
‫‪ -1‬اگر منبع مورد درخواست متقاض ی موجود نبود‪ ،‬منابع تخصیص یافته فعلی به آن نیز‬
‫گرفته شده و پردازه بلوکه می شود‪.‬‬
‫‪ -2‬اگر منبع درخواستی در اختیار پردازه بلوکه شده ای است از او گرفته شده و تخصیص‬
‫می یابد و در غیر این صورت ‪Wait‬‬
‫‪ ‬کاربرد ‪ Preemption‬محدود به منابع ‪ Preemptable‬است‪.‬‬
‫‪18‬‬
‫کشف بن بست ‪Deadlock Detection -‬‬
‫‪ ‬هدف کنترل بن بست و سپس راه حل هایی برای ترمیم آن است‪.‬‬
‫‪ ‬به طور کلی روش های تشخیص بن بست در سیستم های متمرکز و توزیع‬
‫شده یکی است و مبتنی است بر نگهداری منابع تخصیص یافته در قالب‬
‫‪ Resource Allocation Graph‬و سپس کنترل حلقه‪.‬‬
‫‪ ‬به دلیل سادگی فرض می کنیم که از هر نوع منبع تنها یک دانه وجود دارد‪.‬‬
‫‪ WFG‬معیار کار است‪.‬‬
‫‪19‬‬
‫کشف بن بست – ادامه‬
‫‪ ‬مراحل بنای ‪ WFG‬در یک سیستم توزیع شده‪:‬‬
‫‪ -1‬بنای یک ‪ RAG‬جداگانه برای کل منابع محلی هر سایت‪ .‬پردازه ها ممکن است محلی‬
‫و یا غیر محلی باشند‪.‬‬
‫‪ -2‬بنای ‪ WFG‬متناظر با حذف نود مربوط به منابع‬
‫‪ -3‬ترکیب ‪ WFG‬های محلی و بنای یک ‪ WFG‬سراسری‬
‫‪ ‬مشکل اصلی نگهداری ‪ WFG‬در یک سیستم توزیع شده است‪.‬‬
‫در مورد درستی الگوریتم های تشخیص بن بست نیز صفاتی تعریف شده است‪:‬‬
‫‪ ‬پیشرفت )‪ :(Progress‬بن بست باید در زمان متناهی تشخیص داده شود‪.‬‬
‫‪ ‬سالمت )‪ :(Safety‬اگر بن بست تشخیص داده شد‪ ،‬واقعا وجود داشته باشد‪ .‬تاخیر پیغامی و‬
‫یا ‪ WFG‬های کهنه باعث وجود حلقه های نادرست می شوند‪.‬‬
‫‪20‬‬
‫روش متمرکز برای تشخیص بن بست‬
‫‪ ‬یک هماهنگ کننده محلی برای مدیریت ‪ WFG‬محلی و یک هماهنگ کننده‬
‫مرکزی برای بنای ‪ WFG‬سراسری‬
‫‪ ‬تشخیص وجود حلقه در ‪ WFG‬محلی با هماهنگ کننده محلی‬
‫‪ ‬تشخیص وجود حلقه در ‪ WFG‬سراسری با هماهنگ کننده سراسری‬
‫‪ ‬ضرورت ارسال اطالعات هماهنگ کننده های محلی به یکی از روش های زیر‪:‬‬
‫‪ ‬هرگاه لبه ای اضافه یا حذف شد‪.‬‬
‫‪ ‬بطور پریودیک ارسال مابه التفاوت ‪ WFG‬جدید با آخرین حالت ارسال شده قبلی‬
‫‪ ‬حسب درخواست هماهنگ کننده مرکزی‬
‫‪ ‬عدم دریافت پیغام های هماهنگ کننده های محلی باعث رخداد بن بست کاذب‬
‫!!!‬
‫‪21‬‬
‫روش سلسله مراتبی برای تشخیص بن بست‬
‫‪ ‬تجربیات نشان می دهد که ‪ %90‬بن بست ها شامل فقط ‪ 2‬پردازه‬
‫هستند‪.‬‬
‫وجود یک سایت مرکزی سربار زیادی دارد چرا که پیغام‬
‫باید بین همه سایت ها مبادله شود‪.‬‬
‫مناسب است که بن بست در محدوده جغرافیایی‬
‫کوچکتری تشخیص داده شود‪.‬‬
‫‪22‬‬
‫روش سلسله مراتبی برای تشخیص بن بست ‪ -‬ادامه‬
‫‪ ‬درختی از تشخیص دهنده های بن بست (کنترلرها) تشکیل می شود و‬
‫سپس هر کنترلر مسئول تشخیص در ناحیه پایین دست خود است‪.‬‬
‫‪ ‬نودها برگ ‪ WFG‬محلی خود را دارند‪.‬‬
‫‪ ‬نودهای غیربرگ‪ ،‬اتحادی از ‪WFG‬های فرزندان خود را نگه می دارد‪.‬‬
‫‪23‬‬
‫روش کامال توزیع شده در تشخیص بن بست‬
‫‪ ‬هر سایت سهم یکسانی با دیگر سایت ها دارد‪ .‬روش های مختافی وجود‬
‫دارند که در این جا به دو روش زیر خواهیم پرداخت‪:‬‬
‫‪WFG-based ‬‬
‫‪Probe-based ‬‬
‫‪24‬‬
‫روش ‪WFG-based‬‬
‫‪ ‬ارائه شده توسط ‪ Silberschotz‬و ‪ Galvin‬در ‪1999‬‬
‫‪ ‬تغییر یافته ای از روش محلی نگهداری ‪ WFG‬که در آن یک نود ‪ Pex‬به‬
‫گراف اضافه شده است‪ .‬همچنین‪:‬‬
‫‪ ‬لبه )‪ (Pi,Pex‬به ‪ WFG‬اضافه می شود اگر ‪ Pi‬منتظر منبعی در دیگر‬
‫سایت ها باشد که توسط پردازه ای تخصیص یافته است‪.‬‬
‫‪ ‬لبه )‪ (Pex, Pj‬به ‪ WFG‬اضافه می شود اگر ‪( Pj‬پردازه خارجی) منتظر‬
‫منبعی باشد که توسط یک پردازه محلی در حال استفاده است‪.‬‬
‫‪25‬‬
‫مثال‪:‬‬
‫‪ P3‬پردازه ای مربوط به ‪ S2‬است که منتظر‬
‫منبعی است که در حال استفاده توسط ‪P2‬‬
‫(پردازه محلی) است‪.‬‬
‫‪Pex‬‬
‫’‪B‬‬
‫‪P5‬‬
‫‪ P1‬پردازه ای در‬
‫‪ S1‬است که‬
‫‪P1‬‬
‫‪P3‬‬
‫منتظر ‪P3‬‬
‫‪ WFG‬در سایت ‪S2‬‬
‫(پردازه محلی)‬
‫است‪.‬‬
‫‪ WFG‬پس از افزودن ‪Pex‬‬
‫‪ P3‬منتظر منبعی است که در ‪S1‬‬
‫(به وسیله ‪ )P2‬است‪.‬‬
‫‪26‬‬
‫’‪A‬‬
‫‪ P1‬منتظر منبعی در ‪ S2‬است‬
‫که بوسیله ‪ P3‬در حال استفاده‬
‫است‪.‬‬
‫‪B‬‬
‫‪A‬‬
‫‪Pex‬‬
‫‪P3‬‬
‫‪P1‬‬
‫‪P2‬‬
‫‪P4‬‬
‫‪ WFG‬در سایت ‪S1‬‬
‫‪ WFG‬پس از افزودن ‪Pex‬‬
‫روش ‪ – WFG-based‬روش تشخیص بن بست‬
‫‪ ‬اگر ‪ WFG‬محلی حلقه ای داشته باشد (بدون ‪ )Pex‬که بن بست محلی رخ داده‬
‫است‪.‬‬
‫‪ ‬اگر ‪ WFG‬محلی شامل حلقه ای با حضور ‪ Pex‬باشد احتمال دارد بن بست‬
‫توزیع شده داشته باشیم‪ .‬بدین منظور‪ ،‬الگوریتم تشخیص بن بست را آغاز می‬
‫کند‪.‬‬
‫‪ ‬در صورت وجود حلقه در سایت ‪ Si‬خواهیم داشت ‪:‬‬
‫)‪(Pex,Pi,Pj,…,Pk,Pex‬‬
‫که به معنای انتظار ‪ Pk‬برای منبعی خارجی (متعلق به سایت ‪ )Sj‬است‪ Si  .‬پیغام‬
‫تشخیص بن بست به ‪ Sj‬می فرستد‪ .‬پیغام حاوی بخش حلقه دار ‪ WFG‬خواهد بود‪ .‬مثال‬
‫)‪ (Pex,P3,P2,P1,Pex‬از ‪ S1‬به ‪.S2‬‬
‫‪27‬‬
‫روش ‪ – WFG-based‬روش تشخیص بن بست – ادامه ‪1‬‬
‫‪ ‬با رسیدن پیغام ‪ WFG ، Sj ،‬خود را به روز می آورد‪.‬‬
‫‪ ‬افزودن لبه های غیر از لبه های ‪Pex‬‬
‫‪ ‬در ‪ S2‬که حلقه ای بدون ‪ Pex‬دارد و لذا بن بست وجود دارد‪.‬‬
‫‪ ‬در عین حال حلقله ای وجود دارد شامل ‪! Pex‬‬
‫برای سایت مربوطه‬
‫و لذا ‪ Sj‬پیغامی را‬
‫می فرستد و رویه باال تکرار می شود‪.‬‬
‫‪P5‬‬
‫‪Pex‬‬
‫‪P3‬‬
‫پس از مدتی یا بن بست تشخیص داده‬
‫می شود ‪ .‬یا الگوریتم خاتمه می یابد‪.‬‬
‫‪P2‬‬
‫‪28‬‬
‫‪P1‬‬
‫روش ‪ – WFG-based‬روش تشخیص بن بست – ادامه ‪2‬‬
‫‪ ‬نکته‪ :‬دو سایت ممکن است بطور مستقل الگوریتم تشخیص بن بست را برای‬
‫پردازه های یکسانی آغاز کنند‪ .‬مثال ‪ S1‬و ‪ S2‬ممکن است حلقه های‬
‫)‪ (Pex,P3,P2,P1,Pex‬و‬
‫)‪(Pex,P1,P3,Pex‬‬
‫را در ‪ WFG‬محلی خود تشخیص دهند و پیغامی را سایت دیگر بفرستند‪.‬‬
‫هر دو ‪ WFG‬خود را بروز رسانیده و مکانیزم ترمیم را آغاز می کنند که‪:‬‬
‫ممکن است به کشته پردازه های زیادتر ازحد الزم بیانجامد ‪ +‬سربار پیغامی‬
‫‪ ‬یک راه حل‪ :‬اختصاص ‪ ID‬انحصاری به هر پردازه و سپس ارسال پیغام تشخیص بن بست‬
‫منوط به اینکه )‪ ID(Pk)<ID(Pi‬باشد در )‪(Pex,Pi,Pj,…,Pk,Pex‬‬
‫‪29‬‬
‫الگوریتم مبتنی بر ‪Probe‬‬
‫‪ ‬مشهور به ‪ (Chandy-Misra-Hass) CMH‬و مربوط به‬
‫سال ‪ 1983‬و شهرت به عنوان بهترین‪.‬‬
‫‪ ‬ارسال ‪ Probe‬به سایت دارنده منبع و انتشار آن به دیگر سایت ها‬
‫توسط گیرنده‪ .‬اگر پیغام به ارسال کننده اولیه ‪ Probe‬رسید معلوم‬
‫می شود که بن بست رخ داده است‪.‬‬
‫‪30‬‬
‫ترمیم از بن بست‬
‫‪ ‬درخواست از اپراتور برای دخالت‬
‫‪ ‬نا مناسب برای سیستم های امروزی (حتی متمرکز)‬
‫‪ ‬ختم یک یا چند پردازه )‪ (Termination‬و آزاد سازی منابع در اختیار‬
‫‪ ‬انتخاب قربانی‬
‫‪ ‬جلوگیری از قحطی‬
‫‪ ‬بازگشت پردازه ها )‪(Rollback‬‬
‫حداقل هزینه ترمیم‬
‫‪ ‬پردازه ها نقطه مقابله می سازند (تصویر حافظه پردازه و لیستی از منابع در اختیار) ‪ ‬به‬
‫جای اختتام‪ ،‬تا حدی به عقب برمی گردیم تا دیگر بن بست نباشد‪.‬‬
‫‪31‬‬