Deadlock (Informatik)

Deadlock oder Verklemmung bezeichnet in der Informatik einen Zustand, bei dem eine zyklische Wartesituation zwischen mehreren Prozessen auftritt, wobei jeder beteiligte Prozess auf die Freigabe von mindestens einem Betriebsmittel (einer Ressource) wartet, das ein anderer beteiligter Prozess bereits exklusiv belegt hat. Eine andere Form der Blockierung von Prozessen ist der Livelock.

Der Zustand eines Deadlocks kann als eine Menge von Prozessen definiert werden, in dem sich ein Deadlock befindet, sofern jeder dieser Prozesse auf ein Ereignis wartet, das nur ein anderer Prozess aus dieser Menge verursachen kann.[1]

Vier Prozesse (Fahrzeuge auf blauen Linien) konkurrieren um ein Betriebsmittel (Kreuzung = grauer Kreis). Es gilt die Rechts-vor-Links-Regel. Ein Deadlock tritt auf, wenn alle vier Prozesse das Betriebsmittel gleichzeitig belegen bzw. sperren (schwarze Linien). Die Verklemmung kann aufgelöst werden, indem man die Symmetrie bricht.

Allgemeines

Beispielsweise kann einem Prozess π1 der Bildschirm zugeteilt worden sein. Gleichzeitig benötigt π1 allerdings den Drucker. Auf der anderen Seite ist der Drucker dem Prozess π2 zugeteilt, der wiederum den Bildschirm fordert. Ein Beispiel für eine Verklemmung aus dem realen Leben ist eine Straßenkreuzung, an der von allen vier Seiten Autos gekommen sind und nun (die Regel rechts vor links vorausgesetzt) darauf warten, dass das jeweils rechts wartende Auto zuerst fährt. Ein weiteres Beispiel ist das Philosophenproblem.

Nach Coffman et al.[2] sind die folgenden vier Bedingungen hinreichend für die Möglichkeit einer Verklemmung:

  1. Die Betriebsmittel werden ausschließlich durch die Prozesse freigegeben (Da Ressourcenzugriff eines Prozesses nicht unterbrochen werden kann. No Preemption).
  2. Die Prozesse fordern Betriebsmittel an, behalten aber zugleich den Zugriff auf andere (Hold and Wait).
  3. Der Zugriff auf ein Betriebsmittel ist exklusiv, d. h. nur einem einzigen Prozess wird der Zugriff auf ein Betriebsmittel gestattet (Mutual Exclusion).
  4. Mindestens zwei Prozesse besitzen bezüglich der Betriebsmittel eine zirkuläre Abhängigkeit (Circular Wait).

Verklemmungen können bei Systemen eintreten, die fähig sind, mehrere Prozesse parallel ablaufen zu lassen (Multitasksysteme) und bei denen die Reihenfolge der Betriebsmittelvergabe nicht festgelegt ist. Liegen die Ausführungszeiten der zirkulär abhängigen Prozesse weit genug auseinander, kommt es nicht zum Deadlock. Besteht aber die Möglichkeit einer Verklemmung und will man über den Vogel-Strauß-Algorithmus hinausgehen, so muss man sie verhindern oder vermeiden, ggf. beseitigen.

Die Definitionen von Verklemmungsverhinderung und Verklemmungsvermeidung werden auch öfter vertauscht in der Literatur gefunden.

Verklemmungsprävention (deadlock prevention)

Grundsätzlich gilt: Existiert nur ein Prozess in einem geschlossenen System, so kann dieser niemals verklemmen. Ebenso kann ein Prozess, der nur ein Betriebsmittel benötigt, nicht verklemmen.

Treten Verklemmungen ein, so können diese in der Regel nicht normal beseitigt werden. Stattdessen sollte die Betriebsmittelverwaltung versuchen, präventive Maßnahmen anzuwenden, um eine geeignete Sequentialisierung zu erreichen. Man spricht von einer Verhinderung, wenn mindestens eine der vier Bedingungen für eine Verklemmung nicht erfüllt wird.

Preemption durchführen
Einem Prozess werden Betriebsmittel entzogen, um sie einem anderen zuzuteilen.
Hold and Wait verhindern
Jeder Prozess gibt zu Beginn an, welche Betriebsmittel er benötigt. Falls alle benötigten Betriebsmittel gleichzeitig frei sind, bekommt sie ein Prozess auf einmal zugeteilt.
Mutual Exclusion beseitigen
Die benötigten Betriebsmittel für alle Prozesse zugänglich zu machen, indem man den exklusiven Zugriff auflöst. Alternativ Spooling (Beispiel: Drucker) oder Virtualisierung von Betriebsmitteln (Beispiel: CPU).
Circular Wait ausschließen
Die Betriebsmittel werden linear geordnet und nur in dieser definierten Reihenfolge angefordert oder zugeteilt.

Verklemmungsvermeidung (deadlock avoidance)

Zusätzlich kann man versuchen, die Verklemmung zu vermeiden (stellenweise auch Verklemmungsverhütung genannt). Dadurch sind Verklemmungen zwar theoretisch möglich; das System versucht jedoch die Prozesse so zu überwachen, dass diese nicht verklemmen. Dieses Vorgehen basiert auf der Methode des sicheren Zustands. Ein Zustand gilt dann als sicher, wenn mindestens eine Scheduling-Reihenfolge existiert, in welcher alle vorhandenen Prozesse beendet werden können, selbst wenn diese noch ihre maximalen Ressourcenanforderungen stellen sollten.

Bei einer Vermeidung müssen alle möglichen folgenden Vorgänge bekannt sein. Hierbei wird häufig der Bankieralgorithmus angewandt, bei dem die Betriebsmittel nur dann einem Prozess zugeteilt werden, wenn sie vollständig zurückgegeben werden. Beispielsweise hat ein Prozess π1 insgesamt fünf Betriebsmittel und er benötigt noch drei weitere Betriebsmittel zur vollständigen Ausführung. Das Betriebssystem stellt noch drei weitere Betriebsmittel zur Verfügung. Ein Prozess π2 besitzt zwei Betriebsmittel und fordert noch acht Betriebsmittel. Demzufolge erhält Prozess π1 die drei Betriebsmittel. Damit besitzt er alle Ressourcen, um vollständig verarbeitet zu werden, worauf dem Betriebssystem nach der Verarbeitung acht Betriebsmittel frei zur Verfügung stehen, die nun Prozess π2 zugeteilt werden können. Eine Vermeidung ist oft sehr schwierig, da man schlecht abschätzen kann, welcher Prozess genügend Betriebsmittel wieder freigibt.

Zwei einfache Verfahren zur Vermeidung stellen wait/die und wound/wait dar. Hierbei werden zyklische Abhängigkeiten vermieden, indem es feste Regeln gibt, wer ein Mittel behalten darf und welchen es entzogen werden kann. Dieses Verfahren wird vor allem in Datenbanksystemen in Bezug auf Schreib- und Lesesperren genutzt, daher wird im Folgenden auch der Terminus Transaktionen und nicht Prozesse verwendet:
Bei beiden Verfahren wird jeder Transaktion ein Zeitstempel bei seiner Instanziierung zugewiesen.

wait/die:

  • Fordert eine Transaktion eine Sperre an, die von einer jüngeren gehalten wird, so wartet die ältere, bis die Sperre von der jüngeren freigegeben wird.
  • Fordert eine Transaktion eine Sperre an, die von einer älteren gehalten wird, so bricht sie sich selber ab (genauer: sie startet neu, allerdings behält sie ihren alten Zeitstempel bei, um so „älter“ zu wirken und ihre Chancen zu erhöhen, diesmal komplett durchlaufen zu können)

wound/wait:

  • Fordert eine Transaktion eine Sperre an, die von einer jüngeren gehalten wird, so wird die jüngere abgebrochen (genauer: neu gestartet) und die ältere bekommt die Sperre zugewiesen.
  • Fordert eine Transaktion eine Sperre an, die von einer älteren gehalten wird, so wartet sie, bis die Sperre von der älteren wieder freigegeben wird.

Die Terminologie ist wie folgt zu verstehen. wait/die bzw. wound/wait geben an, wie sich die anfordernde Transaktion verhält, wenn ein Sperrkonflikt auftritt. Der erste Terminus gibt jeweils an, was passiert, wenn die anfordernde Transaktion die ältere ist, der zweite Terminus gibt an, was passiert, wenn die anfordernde Transaktion die jüngere ist. „Wait“ bedeutet jeweils: die anfordernde Transaktion wartet auf die Freigabe der Sperre; englisch die ‚stirbt‘ bedeutet die anfordernde Transaktion wird zurückgesetzt; „wound“ (verwundet) bedeutet die anfordernde Transaktion „verwundet“ den Sperrbesitzer, d. h. die anfordernde Transaktion versucht den Sperrbesitzer zurückzusetzen. Um unnötige Rücksetzungen zu vermeiden, kann beim „wound“ auf die Rücksetzung dann verzichtet werden, wenn sich der Sperrbesitzer bereits in der Freigabe befindet. In diesem Fall wartet die anfordernde Transaktion entgegen der Regel, weil sichergestellt ist, dass der Sperrbesitzer an keinem Deadlock beteiligt ist.

Verklemmungsbeseitigung (recovery from deadlocks)

Beseitigung durch Prozessabbruch
Die einfachste Art eine Verklemmung zu beseitigen ist das gezielte Abbrechen von Prozessen. Hierbei sollte nach Möglichkeit ein Prozess gewählt werden, der die Verklemmung sicher löst. Ansonsten muss das Verfahren wiederholt werden, bis alle Konflikte beseitigt wurden. Der meist unvermeidliche Datenverlust kann bei geschickter Prozessauswahl minimiert werden, wodurch dieses Verfahren nur sehr schlecht automatisiert werden kann.
Beseitigung durch Preemption
Eine etwas elegantere Lösung, um Verklemmungen zu beseitigen, ist einen Prozess, der eine Ressource belegt, zu suspendieren und erst zu einem späteren Zeitpunkt dessen Ausführung fortzusetzen. In der Zwischenzeit können die blockierten Prozesse ihre Aufgabe vollenden, wodurch die Verklemmung beseitigt wird. Allerdings ist es für diese Vorgehensweise entscheidend, genau über die Tätigkeit des zu unterbrechenden Prozesses Bescheid zu wissen, um Fehler ausschließen zu können. Es ist meist praktisch nicht möglich, Deadlocks durch dieses Verfahren automatisch zu beseitigen.
Beseitigung durch Rollback
Eine weitere Möglichkeit ist das Ausführen eines Rollback auf einem ausgewählten Prozess, der für die Verklemmung verantwortlich gemacht werden kann. Hierzu werden von jedem Prozess in vorher festgelegten zeitlichen Abständen Sicherungen angelegt, zu denen bei Bedarf zurückgesprungen werden kann. Tritt eine Verklemmung auf, wird ein Prozess ausgewählt, auf den zuletzt gesicherten Zustand zurückgesetzt und suspendiert, um die Verklemmung zu beseitigen. Nicht alle Arten von Prozessen können problemlos auf diese Weise zurückgesetzt werden. Beispielsweise eignet sich ein Festplatten-Schreibvorgang in den meisten Fällen besser als ein CD/DVD-Brennvorgang. Der unterbrochene Prozess wird seine Ausführung erst fortsetzen, wenn die benötigten Betriebsmittel bereitstehen, wodurch dieser in ungünstigen Fällen verhungern kann.

Livelock

Eine andere Form der Blockierung von Prozessen, die wie ein Deadlock die weitere Ausführung des Programms verhindert, ist der Livelock. Er bezeichnet eine Form der Blockierung zweier oder mehrerer Prozesse, die im Unterschied zum Deadlock nicht in einem Zustand verharren, sondern ständig zwischen mehreren Zuständen wechseln, aus denen sie nicht mehr entkommen können. Jeder einzelne Prozess verharrt also nicht für immer im Wartezustand, sondern ist weiterhin aktiv, kann aber auch nicht seine Aufgabe abarbeiten.[3]

Anschaulich kann man sich zum Livelock zwei Personen vorstellen, die sich in einem Gang entgegenkommen und fortwährend versuchen, einander in der gleichen (Absolut-)Richtung auszuweichen, und sich gerade dadurch immer gegenseitig blockieren. Beim Deadlock würden sich – in dieser Veranschaulichung bleibend – die zwei Personen nur gegenüberstehen und jeweils darauf warten, dass die andere beiseite geht, was nicht geschieht.

Bahnbetrieb

Im Bahnbetrieb bezeichnet Deadlock eine Betriebssituation, in der zwei oder mehrere Züge sich gegenseitig so blockieren, dass die Sicherungstechnik keine regulären Zugfahrten mehr zulässt.[4] Hier besteht eine Analogie zur Informatik: Jeder Zug blockiert einen Zugfolgeabschnitt und wartet darauf, in den nächsten Abschnitt einfahren zu können. Ein Deadlock lässt sich in Algorithmen zur Steuerung von Stellwerken dadurch erkennen, dass durch das Stellen einer Fahrstraße ein Zirkelbezug auftritt.[5][6]

Siehe auch

Wiktionary: Deadlock – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Einzelnachweise

  1. Andrew S. Tanenbaum: Modern Operating Systems. Prentice Hall International, 2008, ISBN 978-0-13-813459-4.
  2. E. C. Coffman, Michael John Elphick, A. Shoshani: System Deadlocks. In: Computing Surveys. Band 3, Nr. 2, 1971, S. 67–78 (cs.umass.edu [PDF; 896 kB]).
  3. Andrew S. Tanenbaum: Moderne Betriebssysteme. Pearson Studium, 2009, ISBN 978-3-8273-7342-7, S. 539 (eingeschränkte Vorschau in der Google-Buchsuche).
  4. Streckenblock auf eingleisiger Strecke. Stellwerke.de; abgerufen am 25. Juli 2013.
  5. Jacob Kohlruss: Untersuchung von Methoden zur Vermeidung von Deadlocks in synchronen Eisenbahnsimulationsprogrammen. Diplomarbeit, Institut für Verkehrsmanagement, Fachhochschule Braunschweig/Wolfenbüttel, 2007.
  6. Yong Cui: Simulation-Based Hybrid Model for a Partially-Automatic Dispatching of Railway Operation. Dissertation, Universität Stuttgart, 2009, S. 55ff.

Read other articles:

يورغن كلينسمان Jürgen Klinsmann معلومات شخصية الميلاد 30 يوليو 1964 (العمر 59 سنة)غوبينغن، ألمانيا الغربية الطول 1.81 م (5 قدم 11 بوصة) مركز اللعب مهاجم الجنسية ألماني مسيرة الشباب سنوات فريق 1972–1974 غينغن 1974–1978 غايزلينغن 1978–1981 شتوتغارت كيكرز المسيرة الاحترافية1 سنوات فريق م. (هـ....

 

 

Engagement during the war of 1812 Skirmish at Farnham ChurchPart of War of 1812North Farnham Church, site of the battleDateDecember 6, 1814LocationFarnham, Virginia37°53′11″N 76°37′31″W / 37.88639°N 76.62528°W / 37.88639; -76.62528Result American victory British withdrawalBelligerents United Kingdom  United StatesCommanders and leaders Sir George Cockburn UnknownStrength 4 Royal Marines10 Regulars Around 30-40 MilitiaCasualties and losses 12 Killed6 Wo...

 

 

LavabitURLlavabit.comTipeSurat webBahasa pemrogramanC PemilikLadar Levison[1]PembuatLadar Levison (en) Service entry (en)2004NegaraAmerika Serikat Peringkat Alexa 31.640 (November 2013[update])[2]Alamat IP72.249.41.52KeadaanDihentikan Lavabit adalah layanan surat web terenkripsi yang dibuat pada tahun 2004. Layanan ini dihentikan pada 8 Agustus 2013 setelah pemerintah Amerika Serikat meminta Lavabit menyerahkan kunci pribadi Secure Sockets Layer-nya (SSL). Lavabit dimi...

Process which created the domestic dog The dog diverged from a now-extinct population of wolves 27,000–40,000 years ago immediately before the Last Glacial Maximum,[1][2] when much of the mammoth steppe was cold and dry. The domestication of the dog was the process which led to the domestic dog. This included the dog's genetic divergence from the wolf, its domestication, and the emergence of the first dogs. Genetic studies suggest that all ancient and modern dogs share a com...

 

 

Idolslogo IdolsPembuatSimon FullerPemeranDede MabiakuAbrewa NanaDan FosterNegara asalNigeriaProduksiDurasiVariasiRilis asliJaringanM-NetRilis2007 –Finalis(beserta tanggal eliminasi) Timi Dakolo Pemenang Omawumi Megbele 27 Mei Temitayo George 21 Mei Eric Arubayi 14 Mei Jerrilyn Mulbah 7 Mei Jodie Odiete 30 April Mercy Nwanko 23 April Uche Ume 16 April Joan Ekpai 9 April Omodele Fatoki 2 April Idols adalah rangkaian kontes bernyanyi Idol Series yang diselenggarakan di benua Afrika bagia...

 

 

Duta Besar Uruguay untuk IndonesiaPetahanaCristina Gonzálezsejak 2024 Berikut adalah daftar duta besar Republik Oriental Uruguay untuk Republik Indonesia. Nama Kredensial Selesai tugas Ref. Nicolas Moreno Rabino 21 Mei 1997 [1] Carlos Maria Irigaray Santana 8 Agustus 2012 [2][cat. 1] Gerardo Prato 9 November 2018 [3] Cristina González 15 Februari 2024 Petahana [4] Catatan ^ Berkedudukan di Hanoi. Lihat pula Daftar Duta Besar Indonesia untuk Urugu...

この項目には、一部のコンピュータや閲覧ソフトで表示できない文字が含まれています(詳細)。 数字の大字(だいじ)は、漢数字の一種。通常用いる単純な字形の漢数字(小字)の代わりに同じ音の別の漢字を用いるものである。 概要 壱万円日本銀行券(「壱」が大字) 弐千円日本銀行券(「弐」が大字) 漢数字には「一」「二」「三」と続く小字と、「壱」「�...

 

 

هذه المقالة عن المجموعة العرقية الأتراك وليس عن من يحملون جنسية الجمهورية التركية أتراكTürkler (بالتركية) التعداد الكليالتعداد 70~83 مليون نسمةمناطق الوجود المميزةالبلد  القائمة ... تركياألمانياسورياالعراقبلغارياالولايات المتحدةفرنساالمملكة المتحدةهولنداالنمساأسترالي�...

 

 

李光耀逝世及葬礼李光耀(1923年-2015年)日期2015年3月23日-2015年3月29日地点新加坡斯里淡马锡(私人守灵)新加坡国会大厦(民众瞻仰)新加坡国立大学文化中心(国葬)万礼火葬场(英语:Mandai Crematorium and Columbarium)(火葬)网站www.rememberingleekuanyew.sg 2015年3月23日凌晨3時18分(新加坡標準時間),新加坡建国后首任总理、前內閣资政和执政人民行动党首任秘书长李光�...

2016年美國總統選舉 ← 2012 2016年11月8日 2020 → 538個選舉人團席位獲勝需270票民意調查投票率55.7%[1][2] ▲ 0.8 %   获提名人 唐納·川普 希拉莉·克林頓 政党 共和黨 民主党 家鄉州 紐約州 紐約州 竞选搭档 迈克·彭斯 蒂姆·凱恩 选举人票 304[3][4][註 1] 227[5] 胜出州/省 30 + 緬-2 20 + DC 民選得票 62,984,828[6] 65,853,514[6]...

 

 

Belgian mounted police. Crime in Belgium is countered by the Belgian Police and other agencies. Crime by type Murder Further information: List of countries by intentional homicide rate In 2012, Belgium had a murder rate of 1.8 per 100,000 population.[1] There were a total of 182 murders in Belgium in 2012.[1] Theft Muggings, purse snatchings, and pocket picking occur frequently, particularly in major cities. Thieves often loiter in transportation hubs like the Metro (subway) ...

 

 

1980s William Gibson short story For the film, see Johnny Mnemonic (film). Johnny MnemonicShort story by William GibsonStandalone edition coverLanguageEnglishGenre(s)CyberpunkPublicationPublished inOmni Burning Chrome (1986)Media typeMagazinePublication dateMay 1981Chronology  Fragments of a Hologram Rose   The Gernsback Continuum Johnny Mnemonic is a science fiction short story by American-Canadian writer William Gibson. It first appeared in Omni magazine in May 1981,[1] an...

Biografi ini tidak memiliki referensi atau sumber sehingga isinya tidak dapat dipastikan. Bantu memperbaiki artikel ini dengan menambahkan sumber tepercaya. Materi kontroversial atau trivial yang sumbernya tidak memadai atau tidak bisa dipercaya harus segera dihapus.Cari sumber: Al-Hadi – berita · surat kabar · buku · cendekiawan · JSTOR (Pelajari cara dan kapan saatnya untuk menghapus pesan templat ini) Biografi ini memerlukan lebih banyak catatan kak...

 

 

American Civil War battlefields in Virginia Fredericksburg and Spotsylvania National Military ParkThe stone wall along Sunken Road, in FredericksburgShow map of VirginiaShow map of the United StatesLocationSpotsylvania County and Fredericksburg counties, U.S.Nearest cityFredericksburg, Virginia, U.S.Coordinates38°17′35″N 77°28′09″W / 38.29306°N 77.46917°W / 38.29306; -77.46917Area8,405 acres (34.01 km2)[1]EstablishedFebruary 14, 1927[2...

 

 

Artikel ini memerlukan pemutakhiran informasi. Harap perbarui artikel dengan menambahkan informasi terbaru yang tersedia. Proxima Centauri Citra Proxima Centauri Data pengamatan Epos J2000.0      Ekuinoks J2000.0 (ICRS) Rasi bintang Centaurus Asensio rekta  14j 29m 42.9487d[1] Deklinasi  −62° 40′ 46.141″[1] Magnitudo tampak (V) 11,05[1] Ciri-ciri Kelas spektrum M5.5 Ve[1] Ind...

American college basketball season 2012–13 Michigan Wolverines men's basketballNCAA tournament, Runner-upNIT Season Tip-Off championsNational Championship Game, L 76-82 vs. LouisvilleConferenceBig Ten ConferenceRankingCoachesNo. 2APNo. 10-tRecord31–8 (12–6 Big Ten)Head coachJohn Beilein (6th season)Assistant coaches Jeff Meyer LaVall Jordan Bacari Alexander MVPTrey BurkeCaptainJosh BartelsteinHome arenaCrisler CenterSeasons← 2011–122013–14 →...

 

 

19°52′S 94°40′W / 19.87°S 94.67°W / -19.87; -94.67 البحر الشرقيصورة للبحر الشرقيالقطر327 كـم (203 ميل)[1]Colongitude{{{colong}}}° at sunriseالتسميةMare Orientale البحار القمرية على سطح القمر. البحر الشرقي وهو أحد أكبر البحار القمرية الصدمية كبراً ويقع في أقصى الحافة الغربية من الجانب القريب م�...

 

 

FaenzaKomuneCittà di FaenzaNegaraItaliaWilayahEmilia-RomagnaProvinsiRavenna (RA)FrazioniAlbereto, Borgo Tuliero, Cosina, Granarolo, Mezzeno, Pieve Cesato, Pieve Ponte, Prada, Reda, Sant'AndreaPemerintahan • Wali kotaGiovanni Malpezzi (Democratic Party)Luas • Total215,72 km2 (8,329 sq mi)Ketinggian34 m (112 ft)Populasi (31 Mei 2007) • Total55.708 • Kepadatan2,6/km2 (6,7/sq mi)DemonimFaentiniZona waktuUTC+1 (CET...

2003 resolution on the Democratic Republic of the Congo United Nations resolution adopted in 2003 UN Security CouncilResolution 1493Democratic Republic of the CongoDate28 July 2003Meeting no.4,797CodeS/RES/1493 (Document)SubjectThe situation concerning the Democratic Republic of the CongoVoting summary15 voted forNone voted againstNone abstainedResultAdoptedSecurity Council compositionPermanent members China France Russia United Kingdom United StatesNon-permanent...

 

 

Family of gastropods JuliidaeTemporal range: Paleocene?/Eocene–recent PreꞒ Ꞓ O S D C P T J K Pg N Julia exquisita A drawing of the shell (the exterior of the right valve) of a taxon named Julia borbonica Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Mollusca Class: Gastropoda Subclass: Heterobranchia Infraclass: Euthyneura Superorder: Sacoglossa Superfamily: Oxynooidea Family: JuliidaeE. A. Smith, 1885[1] Synonyms Prasinidae Stoliczka, 1871 (Prasinidae is...