هدش عیزوت لماع یاه متسیس – 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