Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

سیستم های عامل توزیع شده

Ähnliche Präsentationen


Präsentation zum Thema: "سیستم های عامل توزیع شده"—  Präsentation transkript:

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

2 مقدمه رقابت پردازه های همروند در اختصاص یک منبع
دنباله وقایع لازم برای استفاده یک پردازنده از یک منبع: محدودیت منبع 1- درخواست: ارائه درخواست، در صورت اختصاص قبلی منبع به پردازنده دیگر، قرار گرفتن در صف انتظار .... تا آزادی یکی از نوع منبع درخواستی 2- اختصاص در اولین فرصت ممکن: نگهداری جدولی از وضعیت منبع 3- آزاد سازی: بروز آوری ساختمان داده های مدیریتی

3 مقدمه – ادامه 1 اختصاص توسط سیستم و دو فراخوانی request و release توسط پردازنده ها انجام می شود. چون تعداد منابع محدود است، باید مواظبت شود سناریوهای درستی از اختصاص انجام شود. چنین سناریوهایی ممکن است منجر به بن بست شود. شرایطی که هر کس متقاضی تعداد محدودی از کل منابع است ولی پردازه های رقیب مانع پیشرفت دو جانبه هستند :: بلوکه دا ئمی

4 مقدمه – ادامه 2 منظور از منبع
فیزیکی منطقی : رکورد فایل – سمافور - ...) منبع بایستی در هر لحظه توسط یک پردازه استفاده شود و non-preemptable باشد. منبع اختصاص یافته را نمی توان آزاد کرد مگر با درخواست استفاده کننده فعلی آن.

5 شرایط لازم برای بن بست شرط ممانعت دوجانبه: متقاضی بعدی باید منتظر بماند. شرط Hold & Wait: درخواست منبع جدید بدون آزادی منابع فعلی که در اختیار دارد. شرط No-Preemption: مالک مختارانه منبع را آزاد کند تا بتواند تخصیص یابد. شرط انتظار حلقوی در صورت برقرار بودن 4 شرط بالا بن بست رخ می دهد.

6 مدل کردن بن بست استفاده از یک گراف جهت دار - دارای دو نوع نود و لبه
Resource Allocation Graph نود پردازه ها نود منابع لبه اختصاص لبه درخواست این گراف بصورت پویا تغییر می کند و در واقع به عنوان ابزاری برای کنترل بن بست استفاده می شود.

7 شرایط لازم و کافی برای بن بست
شرط لازم، وجود یک سیکل در گراف اختصاص منابع است، معهذا شرط کافی نیست. یعنی وجود سیکل شرط لازم است ولی کافی نیست. مطابق شکل وجود P1,R1,P2,R2,P1 یک حلقه است اما معرف حالت بن بست نیست.

8 شرایط لازم و کافی برای بن بست - ادامه
شرط کافی در موارد مختلف متفاوت است: اگر از هر منبع تنها یکی وجود داشته باشد وجود حلقه شرط لازم و کافی است. اگر از هر منبع یکی یا بیشتر داشته باشیم شرط کافی برای بن بست یک Knot است. فرم ساده شده گراف تخصیص منابع این است که منابع را از گراف حذف کنیم WFG وقتی از هر منبع تنها یکی داریم، می توان WFG و وجود حلقه در آن را شرط لازم و کافی دانست. مجموعه K نودی که در آن مجموعه قابل دسترس همه نودهای کل مجموعه باشد.

9 بن بست در سیستم توزیع شده
مفهوم همان است که در محیط متمرکز ولی پیچیده تر سه استراتژی اجتناب: اختصاص دقیق منابع پیش گیری: اعمال محدودیت در روش درخواست منابع توسط پردازه ها تشخیص و ترمیم در مواردی تمایز بین: Resource Deadlock Communication Deadlock: انتظار در بلاک برای رسیدن پیغام حالت ساده ای از بن بست منابع است. WFG

10 اجتناب از بن بست این دسته از روش ها، دانش قبلی از مصرف منابع توسط پردازه ها را برای پیش بینی استفاده می کنند. مراحل مختلف با رسیدن درخواست، حتی اگر منبع موجود است بلافاصله تخصیص نمی یابد. سیستم فرض می کند که منبع اختصاص یافته است. بررسی می شود که آیا تخصیص ”امن“ یا ”نا امن“ است. (با توجه به اطلاع از روند کار پردازه) نتیجه بررسی می گوید که اگر امن است، تخصیص انجام شود و در غیر این صورت، (زمانی که نا امن است) به تعویق افتد.

11 اجتناب از بن بست - ادامه 1 اوضاع امن:
اوضاع عاری از بن بست و وجود دنباله ای از منابع و تخصیص به پردازه ها وجود دارد که همه پردازه ها می توانند کار خود را تکمیل کنند. ممکن است دنباله های مختلفی چنین شرطی را برآورده سازند. بنابراین : دنباله امن (Safe Sequence) داریم. شرط امن بودن دنباله: منابعی که Pi می تواند درخواست کند، با منابع موجود و منابع در اختیار پردازه های موجود در دنباله (قبل از Pi) می تواند برآورده شود. مثال در کتاب Sinha

12 اجتناب از بن بست - ادامه 2 موارد:
حالت اولیه امن است. (همه منبع آزاد هستند) از یک حالت امن سیستم می تواند تضمین کند که همه پردازه ها می توانند تکمیل شوند. یک حالت نا امن، یک حالت بن بست نیست بلکه ممکن است به بن بست بیانجامد. تضمینی وجود ندارد. هدف از اجتناب از بن بست، نگهداری و اطمینان از حالت ایمن سیستم است.

13 اجتناب از بن بست - ادامه 3 از نظر تئوری جذاب ولی در مواردی غیر عملی!
نبود اطلاع از نیاز پردازه ها به منابع ثابت نبودن تعداد پردازه های رقابت کننده برای منابع ثابت نبودن تعداد منابع و امکان تغییر پویا بر اساس بدترین حالت تصمیم گرفته می شود که در خیلی از موارد اتفاق نمی افتد. محدودیت های عملی+پیچیدگی های اضافه سیستم های توزیع شده استراتژی اجتناب از بن بست در محیط توزیع شده نداریم.

14 جلوگیری از بن بست طراحی سیستم به گونه ای که بن بست غیر ممکن شود. هیچ گونه تست زمان اجرا لازم نیست. شرط بن بست اجتماع 4 شرط: Mutual-Exclusion Hold & Wait No-Preemption Circular-Wait است. اگر یکی از این ها نباشد بن بست ممکن نیست. بنابراین تلاش در عدم وجود یکی از این شرایط.

15 جلوگیری از بن بست – ادامه 1
سه روش جلوگیری از بن بست: Collective Requests: نقض Hold & Wait Ordered Requests: نقض Circular Wait Preemption Requests: نقض No-Preemption

16 جلوگیری از بن بست – ادامه 2
Collective Requests وقتی پردازه ای درخواست یک منبع می کند، منبع دیگری در اختیار ندارد. 1- وقتی پردازه ای شروع می شود باید همه منابع مورد نیازش را یکجا دریافت نماید. (یا همه و یا هیچ[wait]) 2- به تدریج برحسب نیاز، ولی هرگاه یک منبع می خواهد: آزاد سازی منابع در اختیار و سپس درخواست مجدد برای قبلی ها به اضافه منبع جدید مزایای این روش (2): سازگار با طبیعت پردازه ها در عدم اطلاع از کل منابع مورد نیاز در ابتدا تخصیص منابع در موقع نیاز – مثلا در انتهای کار پردازه سادگی معایب این روش (2): بهره وری کم از منابع قحطی برای پردازه هایی که منابع زیادی لازم دارند. بالا رفتن هزینه پردازه: Accounting بر حسب منابع تخصیص یافته

17 جلوگیری از بن بست – ادامه 3
Ordered Requests هر نوع منبع یک شماره سراسری انحصاری دارد. هر بار یک درخواست از طرف هر پردازه ولی درخواست برای منبعی با شماره بزرگتر از آخرین منبع تخصیص یافته به آن پردازه و در حال استفاده. درخواست برای چند منبع از یک نوع باید یک جا داده شود.

18 جلوگیری از بن بست – ادامه 4
Preemption یک منبع مداخله پذير (preemptable) منبعی است که حالت آن بتواند ذخیره شود و سپس بازیابی شود. 1- اگر منبع مورد درخواست متقاضی موجود نبود، منابع تخصیص یافته فعلی به آن نیز گرفته شده و پردازه بلوکه می شود. 2- اگر منبع درخواستی در اختیار پردازه بلوکه شده ای است از او گرفته شده و تخصیص می یابد و در غیر این صورت Wait کاربرد Preemption محدود به منابع Preemptable است.

19 کشف بن بست - Deadlock Detection
هدف کنترل بن بست و سپس راه حل هایی برای ترمیم آن است. به طور کلی روش های تشخیص بن بست در سیستم های متمرکز و توزیع شده یکی است و مبتنی است بر نگهداری منابع تخصیص یافته در قالب Resource Allocation Graph و سپس کنترل حلقه. به دلیل سادگی فرض می کنیم که از هر نوع منبع تنها یک دانه وجود دارد WFG معیار کار است.

20 کشف بن بست – ادامه مراحل بنای WFG در یک سیستم توزیع شده:
در مورد درستی الگوریتم های تشخیص بن بست نیز صفاتی تعریف شده است: پیشرفت (Progress): بن بست باید در زمان متناهی تشخیص داده شود. سلامت (Safety): اگر بن بست تشخیص داده شد، واقعا وجود داشته باشد. تاخیر پیغامی و یا WFG های کهنه باعث وجود حلقه های نادرست می شوند. 1- بنای یک RAG جداگانه برای کل منابع محلی هر سایت. پردازه ها ممکن است محلی و یا غیر محلی باشند. 2- بنای WFG متناظر با حذف نود مربوط به منابع 3- ترکیب WFG های محلی و بنای یک WFG سراسری

21 روش متمرکز برای تشخیص بن بست
یک هماهنگ کننده محلی برای مدیریت WFG محلی و یک هماهنگ کننده مرکزی برای بنای WFG سراسری تشخیص وجود حلقه در WFG محلی با هماهنگ کننده محلی تشخیص وجود حلقه در WFG سراسری با هماهنگ کننده سراسری ضرورت ارسال اطلاعات هماهنگ کننده های محلی به یکی از روش های زیر: هرگاه لبه ای اضافه یا حذف شد. بطور پریودیک ارسال مابه التفاوت WFG جدید با آخرین حالت ارسال شده قبلی حسب درخواست هماهنگ کننده مرکزی عدم دریافت پیغام های هماهنگ کننده های محلی باعث رخداد بن بست کاذب !!!

22 روش سلسله مراتبی برای تشخیص بن بست
تجربیات نشان می دهد که 90% بن بست ها شامل فقط 2 پردازه هستند. وجود یک سایت مرکزی سربار زیادی دارد چرا که پیغام باید بین همه سایت ها مبادله شود. مناسب است که بن بست در محدوده جغرافیایی کوچکتری تشخیص داده شود.

23 روش سلسله مراتبی برای تشخیص بن بست - ادامه
درختی از تشخیص دهنده های بن بست (کنترلرها) تشکیل می شود و سپس هر کنترلر مسئول تشخیص در ناحیه پایین دست خود است. نودهای برگ WFG محلی خود را دارند. نودهای غیربرگ، اتحادی از WFGهای فرزندان خود را نگه می دارد.

24 روش کاملا توزیع شده در تشخیص بن بست
هر سایت سهم یکسانی با دیگر سایت ها دارد. روش های مختلفی وجود دارند که در این جا به دو روش زیر خواهیم پرداخت: WFG-based Probe-based

25 روش WFG-based ارائه شده توسط Silberschotz و Galvin در 1999
تغییر یافته ای از روش محلی نگهداری WFG که در آن یک نود Pex به گراف اضافه شده است. همچنین: لبه (Pi,Pex) به WFG اضافه می شود اگر Pi منتظر منبعی در دیگر سایت ها باشد که توسط پردازه ای تخصیص یافته است. لبه (Pex, Pj) به WFG اضافه می شود اگر Pj (پردازه خارجی) منتظر منبعی باشد که توسط یک پردازه محلی در حال استفاده است.

26 P1 منتظر منبعی در S2 است که بوسیله P3 در حال استفاده است.
مثال: Pex Pex A B A’ B’ P1 پردازه ای در S1 است که منتظر P3 (پردازه محلی) است. P1 P3 P1 P3 P5 WFG در سایت S2 WFG پس از افزودن Pex P4 P2 P3 منتظر منبعی است که در S1 (به وسیله P2) است. WFG در سایت S1 WFG پس از افزودن Pex

27 روش WFG-based – روش تشخیص بن بست
اگر WFG محلی حلقه ای داشته باشد (بدون Pex) که بن بست محلی رخ داده است. اگر WFG محلی شامل حلقه ای با حضور Pex باشد احتمال دارد بن بست توزیع شده داشته باشیم. بدین منظور، الگوریتم تشخیص بن بست را آغاز می کند. در صورت وجود حلقه در سایت Si خواهیم داشت : (Pex,Pi,Pj,…,Pk,Pex) که به معنای انتظار Pk برای منبعی خارجی (متعلق به سایت Sj) است.  Si پیغام تشخیص بن بست به Sj می فرستد. پیغام حاوی بخش حلقه دار WFG خواهد بود. مثلا (Pex,P3,P2,P1,Pex) از S1 به S2.

28 روش WFG-based – روش تشخیص بن بست – ادامه 1
با رسیدن پیغام ، Sj ، WFG خود را به روز می آورد. افزودن لبه های غیر از لبه های Pex در S2 که حلقه ای بدون Pex دارد و لذا بن بست وجود دارد. در عین حال حلقله ای وجود دارد شامل Pex ! و لذا Sj پیغامی را برای سایت مربوطه می فرستد و رویه بالا تکرار می شود. پس از مدتی یا بن بست تشخیص داده می شود . یا الگوریتم خاتمه می یابد. Pex P1 P3 P5 P2

29 روش 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)

30 الگوریتم مبتنی بر Probe
مشهور به CMH (Chandy-Misra-Hass) و مربوط به سال 1983 و شهرت به عنوان بهترین. ارسال Probe به سایت دارنده منبع و انتشار آن به دیگر سایت ها توسط گیرنده. اگر پیغام به ارسال کننده اولیه Probe رسید معلوم می شود که بن بست رخ داده است.

31 ترمیم از بن بست درخواست از اپراتور برای دخالت
نا مناسب برای سیستم های امروزی (حتی متمرکز) ختم یک یا چند پردازه (Termination) و آزاد سازی منابع در اختیار انتخاب قربانی جلوگیری از قحطی بازگشت پردازه ها (Rollback) پردازه ها نقطه مقابله می سازند (تصویر حافظه پردازه و لیستی از منابع در اختیار)  به جای اختتام، تا حدی به عقب برمی گردیم تا دیگر بن بست نباشد. حداقل هزینه ترمیم


Herunterladen ppt "سیستم های عامل توزیع شده"

Ähnliche Präsentationen


Google-Anzeigen