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

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
HEINZ NIXDORF INSTITUT Universität Paderborn Fachbereich Mathematik/Informatik Algorithmische Probleme in Funknetzwerken X 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.
Vorlesung 10 Mutual Exclusion Peter B. Ladkin Sommersemester 2001 Universität Bielefeld Technische Fakultät.
Technische Informatik II Rechnerarchitektur und Betriebssysteme Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter.
15.1 Synchronisation nebenläufiger Prozesse
Effizientere psychotherapeutische Versorgung: Simulationsstudien auf Basis von Symptomverlaufsmodellen Robert Perčević April 2007.
Gottfried Vossen 5. Auflage 2008 Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme Kapitel 21: Concurrency Control.
Grundelemente der Dependenzsyntax
TWS/Graph HORIZONT Produkt-Präsentation Software für Rechenzentren
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.
VHDL 3: Sequential Statements (Process)
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #7 Mehrbenutzersynchronisation (Teil 1)
MetaproteomeAnalyser Ziele: ID Pipeline für Proteomprojekte Statistische Auswertung Spektrensuche über Ähnlichkeit Ansprüche Flexibel aber einfach Funktional.
Thread Synchronisation in JAVA
Vorlesung #12 Mehrbenutzersynchronisation
Referent: Stephan Metzler
Betriebssysteme Übung 2. Tutorium. Task 1 – Locks (1) Wozu Locks? Dienen dazu, exklusiven Zugriff auf eine Ressource sicherzustellen Lock = binäre Semaphore.

Ex_1: Cannabis induziert Schizophrenie? Fakten: 1. Cannabis Konsum korreliert mit doppeltem Risiko im späteren Leben mit Schikzophrenie diagnostiziert.
Xiaojie Ding, Andreas Kreiml, Maria Modly
MetaproteomAnalyser Ziele: ID Pipeline für Proteomprojekte Statistische Auswertung Spektrensuche über Ähnlichkeit.
Seminar: Economies of P2P-Networks
Transaktionen Dr. Heidrun Bethge Datenbanken II.
German First Level Die Farben!.
© M. Fischer & G.Magschok Netzwerkapplikationen1 Netzwerkapplikationen Klausur an der Hochschule für Technik - Fachhochschule Karlsruhe Sommersemester.
Research-guided Teaching Representation in the Biology Curriculum.
Präsentiert von Riccardo Fuda.  Klassische (symmetrische) Kryptographie  Der weg zur modernen Kryptographie  Message Authentification Codes  Asymmetrische.
GWDG – Kurs Parallelrechner-Programmierung mit MPI MPI-Praxis Punkt-zu-Punkt-Kommunikation Oswald Haan
Eine kurze Geschichte der Graphentheorie
4.4 Sperrsynchronisation
Mechanismus der V(D)J Rekombination
..
1.3 Verklemmungen Synchronisation löst Probleme – ist aber auch Gefahrenquelle: Prozeß wartet an Synchronisationspunkt – ist gesichert, daß er irgendwann.
Seminarvortrag über LOG-SPACE von Rasmus Krause
93 Das Monitorkonzept (nach Hoare/Brinch-Hansen 1974) Nur ein Prozess bzw. Thread kann zu einem bestimmten Zeitpunkt im Monitor aktiv sein => gegenseitiger.
IPv6 in der Praxis Vortragsreihe von Michael Dirska Hasso-Plattner-Institut Potsdam
Otto-von-Guericke-Universität MagdeburgThomas Schulze ARENA Tutorial -1.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #12 Mehrbenutzersynchronisation.
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.
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.
Master Betriebswirtschaft
Vorlesung Echtzeitbetriebssysteme VII
Approximative Queryevaluierung
VOLKSHOCHSCHULE ALSERGRUND  WÄHRING  DÖBLING
Cryo-Test LESER Test Bench
Frank Schneede Senior Berater ORACLE Deutschland GmbH.
Der Dijkstra-Algorithmus
Punkt-in-Landkarte II
Prof. Dr. Olga Popova, OVGU Prof. Dr. Jörg Jablinski, OWL
سیستم های عامل توزیع شده
Aufgaben Semaphore Übersicht (Dijkstra)
Wiederholung TexPoint fonts used in EMF.
سیستم های عامل توزیع شده
Verhalten eines Graphen im Unendlichen: der limes
§ 27 Permutationen Zur Beschreibung von alternierenden multilinearen Abbildungen und insbesondere für den begriff der Determinante benötigen wir die Permutationen.
Prof. Dr. Olga Popova, OVGU Prof. Dr. Jörg Jablinski, OWL
 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 یک منبع مداخله پذير (preemptable) منبعی است که حالت آن بتواند ذخیره شود و سپس بازیابی شود. 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) پردازه ها نقطه مقابله می سازند (تصویر حافظه پردازه و لیستی از منابع در اختیار)  به جای اختتام، تا حدی به عقب برمی گردیم تا دیگر بن بست نباشد. حداقل هزینه ترمیم