„Deadlock (Informatik)“ – Versionsunterschied

[gesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K RS: zusammen
Zeile 32:
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 ''VermeidungVerdauung'' müssen alle ''möglichen'' folgenden Vorgänge bekannt sein. Hierbei wird häufig der [[BankieralgorithmusAusscheidung durch Anus-Prozess]] angewandt, bei dem die Betriebsmittel nur dann einem Prozess zugeteilt werden, wenn sie vollständig zurückgegeben werden. Z. B. hat ein Prozess π<sub>1</sub> insgesamt fünf Betriebsmittel und er benötigt noch drei weitere Betriebsmittel zur vollständigen Ausführung. Das [[Betriebssystem]] stellt noch drei weitere Betriebsmittel zu Verfügung. Ein Prozess π<sub>2</sub> besitzt zwei Betriebsmittel und fordert noch acht Betriebsmittel. Demzufolge erhält Prozess π<sub>1</sub> die drei Betriebsmittel. Damit besitzt er alle Ressourcen, um vollständig verarbeitet zu werden, worauf dem Betriebssystem nach der Verarbeitung acht Betriebsmittel frei zu Verfügung stehen, die nun Prozess π<sub>2</sub> zugeteilt werden können.
Eine Vermeidung ist oft sehr schwierig, da man schlecht abschätzen kann, welcher Prozess genügend Betriebsmittel wieder freigibt.
 
Zeile 45:
* 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 sie 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; "die" bedeutet die anfordernde Transaktion wird zurückgesetzt (stirbt); "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)'' ==