Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenDienstag, 15. Oktober 2019 

Deadlock


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.


Diagramm

Ein Deadlock (auch Verklemmung genannt) ist in der Informatik ein Zustand von Prozessen bei dem mindestens zwei Prozesse untereinander Betriebsmittel warten die dem jeweils anderen Prozess sind. Z. B. Kann einem Prozess π1 Bildschirm zugeteilt worden sein. Gleichzeitig benötigt π1 den Drucker. Auf der Gegenseite ist der dem Prozess π2 zugeteilt der wiederum den fordert.

Ein solcher Zustand kann nur unter Voraussetzungen zu Stande kommen:

  1. Die Betriebsmittel werden ausschließlich durch die freigegeben (No Preemption).
  2. Die Prozesse fordern zwar Betriebsmittel geben keine ab (Hold and Wait).
  3. Der Zugriff auf die Betriebsmittel ist (Mutual Exclusion).
  4. Nicht weniger als zwei Prozesse warten einem geschlossenen System (Circular Wait).

Deadlocks können bei Systemen eintreten die sind mehrere Prozesse parallel ablaufen zu lassen und bei denen die Reihenfolge der Betriebsmittelvergabe festgelegt ist.

Verhindern einer Verklemmung

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

Treten Verklemmungen ein so können diese der Regel nicht normal beseitigt werden. Statt sollte die Betriebsmittelverwaltung versuchen präventive Maßnahmen anzuwenden. spricht von einer Verhinderung wenn mindestens eine der vier Bedingungen einen Deadlock nicht erfüllt werden. So könnten B. Betriebsmittel einem Prozess entzogen und gezielt anderen Prozess zugeteilt werden (betrifft Non Preemption ).

Weitere Möglichkeiten:

  • Mutual Exclusion: Die benötigten Betriebsmittel für alle Prozesse zu machen in dem man den exklusiven auflöst.
  • Hold and Wait: Ein Prozess gibt alle Betriebsmittel frei kann erst danach auf andere benötigte Betriebsmittel
  • Circular Wait: Betriebsmittel werden durchnummeriert und in aufsteigender vergeben.

Vermeidung

Zusätzlich kann man versuchen den Deadlock vermeiden. Dadurch sind Verklemmungen zwar theoretisch möglich; System versucht jedoch die Prozesse so zu dass diese nicht verklemmen. Dieses Vorgehen basiert der Methode des sicheren Zustands . Ein Zustand gilt dann als sicher alle Prozesse ohne Deadlock zu einem Ende werden.

Bei einer Vermeidung müssen alle folgenden Vorgänge bekannt sein. wird häufig der Bankiersalgorithmus angewandt bei dem die Betriebsmittel nur einem Prozess zugeteilt werden wenn sie vollständig werden. Z. B. hat ein Prozess π1 5 Betriebsmittel und er benötigt noch 3 Betriebsmittel zur vollständigen Ausführung. Das Betriebssystem stellt 3 weitere Betriebsmittel zu Verfügung. Ein Prozess besitzt 2 Betriebsmittel und fordert noch 8 Dem zu Folge erhält Prozess π1 die Betriebsmittel. Damit besitzt er alle Ressourcen um verarbeitet zu werden worauf dem Betriebssystem nach Verarbeitung 8 Betriebsmittel frei zu Verfügung stehen nun Prozess π2 zugeteilt werden können.

Eine Vermeidung ist oft sehr schwierig man schlecht abschätzen kann welcher Prozess genügend wieder freigibt.

Beseitigung

Die einfachste Art eine Verklemmung zu besteht im Neustart des Systems. Besser ist jedoch wenn man nur einzelne Prozesse vernichtet. kann das System jedoch instabil werden.

Ebenfalls kann man einen oder mehrere auf frühere Zustände zurücksetzten ( Rollback ). Wenn er ständig zurückgestellt wird und nie die benötigten Betriebsmittel erhält kann der jedoch verhungern .



Bücher zum Thema Deadlock

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/Deadlock.html">Deadlock </a>