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

Slides:



Advertisements
Ähnliche Präsentationen
Algorithm Engineering
Advertisements

Kapitel 11 Deadlocks RW-Systemarchitekur Kap. 11.
C Tutorium – B*-Baum Index Manager –
Nsp Semaphore sind einfache Synchronisationsobjekte, ähnlich wie Ereignisse, aber unabhängig von Monitoren: (das) Semaphor: altes Flügelsignal.
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken IX Christian Schindelhauer
Systeme 1 Kapitel 7 Deadlocks WS 2009/10.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Layout Algorithmen.
15.1 Synchronisation nebenläufiger Prozesse
Effizientere psychotherapeutische Versorgung: Simulationsstudien auf Basis von Symptomverlaufsmodellen Robert Perčević April 2007.
© Omikron Data Quality GmbH | | Carsten Kraus Semantik Hype oder Trend?
Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.
Social network analysis Maike Streit HKI II; SoSe 2010.
RATEME 2.0 Pirmin Schürmann, Thomas Junghans, HSZ-T.
Prof. Dr. Petra Mutzel Animation Planarisierungsverfahren Lehrstuhl für Algorithm Engineering LS11 Universität Dortmund Automatisches Zeichnen von Graphen.
MetaproteomeAnalyser Ziele: ID Pipeline für Proteomprojekte Statistische Auswertung Spektrensuche über Ähnlichkeit Ansprüche Flexibel aber einfach Funktional.
Betriebssysteme Übung 2. Tutorium. Task 1 – Locks (1) Wozu Locks? Dienen dazu, exklusiven Zugriff auf eine Ressource sicherzustellen Lock = binäre Semaphore.

Seminar: Economies of P2P-Networks
Transaktionen Dr. Heidrun Bethge Datenbanken II.
اردوان طاهری عضو هیأت رئیسه و ستاد نظارت بر سلامت باشگاه ‌ های استان گلستان.
Eine kurze Geschichte der Graphentheorie
..
1.3 Verklemmungen Synchronisation löst Probleme – ist aber auch Gefahrenquelle: Prozeß wartet an Synchronisationspunkt – ist gesichert, daß er irgendwann.
آشنايي با مديريت كيفيت و استاندارد ISO 9001 بيوگرافي مدرس: محمد پيشوا متولد 1324 در تهران فوق ليسانس متالورژي از دانشگاه فني برلين متاهل و داراي.
Seminarvortrag über LOG-SPACE von Rasmus Krause
IPv6 in der Praxis Vortragsreihe von Michael Dirska Hasso-Plattner-Institut Potsdam
GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI Punkt-zu-Punkt-Kommunikation Oswald Haan
Übung 1 Bestimme ein Erzeugendensystem für die
Theory of Programming Prof. Dr. W. Reisig Was heißt „Korrektheit“? W. Reisig Workshop Modellierung Hamburg, März 2015.
 GZD Wer tröstet, stellt keine Fragen -He, who comforts, does not ask questions -انه ، الذين وسائل الراحة ، لا طرح الأسئلة -او که آرامش می کند،
Flüchtlinge Woher sie kommen, wovor sie fliehen
18. Januar 2005Paralleles Färben von Graphen1 Thomas Holleczek Erlangen, 18. Januar 2005.
Technische Universität München Alexander Neidhardt Forschungseinrichtung Satellitengeodäsie 1 Concepts for remote control of VLBI-telescopes: on the way.
Ein Glaubenskurs mit Menschen verschiedener Sprache und Herkunft.
Ein Glaubenskurs mit Menschen verschiedener Sprache und Herkunft.
Christen in Deutschland Christians in Germany
Ein Glaubenskurs mit Menschen verschiedener Sprache und Herkunft.
Vorlesung Echtzeitbetriebssysteme VII
Prof. Dr. Heidrun Stoeger, University of Regensburg, Germany
Die Taufe – Zeichen des Glaubens Baptism - the Sign of Faith
Approximative Queryevaluierung
Das Abendmahl Holy Communion
VOLKSHOCHSCHULE ALSERGRUND  WÄHRING  DÖBLING
Cryo-Test LESER Test Bench
Jesus – sein Leben und seine Botschaft Jésus – sa vie et son message
Christen in Deutschland Les chrétiens en Allemagne
Ein Glaubenskurs mit Menschen verschiedener Sprache und Herkunft.
Frank Schneede Senior Berater ORACLE Deutschland GmbH.
Die Taufe – Zeichen des Glaubens Le baptême – Signe de la foi
Ein Glaubenskurs mit Menschen verschiedener Sprache und Herkunft.
Ein Glaubenskurs mit Menschen verschiedener Sprache und Herkunft.
Punkt-in-Landkarte II
مولفه های علم سنجی شهربانو صادقی گورجی دانشگاه فردوسی مشهد.
كمك هاي اوليه احياء مصدوم برق زده. كمك هاي اوليه احياء مصدوم برق زده.
Aufgaben Semaphore Übersicht (Dijkstra)
ارائه دهنده: دکتر کيارش آرامش مرکز تحقيقات اخلاق و تاريخ پزشکی
انجمن امداد پزشکی به پناه جویان در شهر بوخوم- آلمان
عنوان: معرفی آئروژل‌ها (Aero gels)
پنجشنبه 24 تیرماه 95 دانشگاه پیام نور
مهندسی ارزش.
ارمغانهاي ايران بجهان معماري گنبد
سیستم های عامل توزیع شده
ماهية الاستراتيجية المرونة والبقاء الاستراتيجي
بسم الله الرحمن الرحیم موضوع تحقیق : زیر نظر استاد محترم : گردآورنده :
بسم الله الرحمن الرحیم.
سیستم های عامل توزیع شده
دانشگاه آزاد اسلامی واحد تهران جنوب تحليل ديناميکی کيفيت زندگی کاری
§ 27 Permutationen Zur Beschreibung von alternierenden multilinearen Abbildungen und insbesondere für den begriff der Determinante benötigen wir die Permutationen.
Informationsseminar information seminar ندوة إعلامية ενημερωτικό σεμινάριο سمینار اطلاعات séminaire d'information информационный семинар bilgi seminer.
 Präsentation transkript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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