Verklemmungen - Deadlocks Betriebsmittel Verklemmung Vogelstrauss Algorithmus Erkennung und Auflösung Vermeidung SS2001 Prof. H.D. Clausen - unisal 1 Kritische Betriebsmittel Beispiele Drucker Magnetbandgeräte (tape drives) Tabellen Prozesses benötigen Zugriff auf Betriebsmittel in einer vertretbaren Reihenfolge Angenommen Prozess_1 besitzt bereits Ressource A und verlangt Ressource B zur selben Zeit besitzt Prozess-2 bereits B und verlangt A beide sind blockiert und bleiben dies auf Dauer - Verklemmung SS2001 Prof. H.D. Clausen - unisal 2 1
Ressourcen (1) Verklemmeungen (deadlocks) entstehen wenn Prozesse exklusiven Zugriff auf Geräte oder Betriebsmittel besitzen allgemein spricht man von Ressourcen Entziehbare Ressourcen - (preemptable) können dem Prozess ohne schädliche Auswirkungen vom System entzogen werden Nicht-entziehbare Ressourcen - (nonpreemptable) führen zu einem Fehler, falls sie dem Prozess entzogen werden SS2001 Prof. H.D. Clausen - unisal 3 Ressourcen (2) Ablauf der Nutzung eines Ressource: Ánforderung (request the resource) Nutzung (use of the resource) Freigabe (release the resource) Anforderung kann abgelehnt werden: anfordernder Prozess wird blockiert oder Fehlerabbruch SS2001 Prof. H.D. Clausen - unisal 4 2
Verklemmungen - Deadlocks Formale Definition : Eine Menge von Prozessen ist verklemmt falls jeder Prozess auf ein Ereignis wartet, das nur von einem anderen Prozess dieser Menge ausgelöst werden kann. Üblicherweise wird solch ein Ereignis durch die Freigabe einea Betriebsmittels ausgelöst. Keiner der Prozessee kann weiterlaufen Betriebsmittel freigeben aus einem Wartezustand aufgeweckt werden SS2001 Prof. H.D. Clausen - unisal 5 Vier Bedingungen für Deadlock Gegenseitiger Ausschluss (mutual exclusion) jeder Ressource ist 1 Prozess zugeordnet oder verfügbar hold and wait Bedingung Prozesse die Ressourcen besitzen können weitere anfordern Kein Entzug - no preemption bereits vergebene Ressourcen können nicht entzogen werden Warteschleife - circular wait condition 2 oder mehr Prozesse warten in einer geschlossenen Kette jeder Prozess wartet auf Ressourcen die der nächste Prozess in der Kette bereits besitzt SS2001 Prof. H.D. Clausen - unisal 6 3
Deadlock Modeling Gerichteter Graph resource R assigned to process A process B is requesting/waiting for resource S process C and D are in deadlock over resources T and U SS2001 Prof. H.D. Clausen - unisal 7 Deadlock Modeling (2) Strategien zur Deadlock Behandlung einfach vergessen ---??? (Vogel Strauss) Entdeckung und Auflösung (recovery) dynamische Vermeidung (avoidance) sorgfältig geplante Ressourcen Zuteilung Verhütung (prevention) Sicherstellen, dass eine der vier Bedingungen nicht auftreten kann SS2001 Prof. H.D. Clausen - unisal 8 4
Deadlock Modeling (3) A B C Wie Deadlocks entstehen SS2001 Prof. H.D. Clausen - unisal 9 Deadlock Modeling (5) (o) (p) (q) Wie Deadlocks vermieden werden können SS2001 Prof. H.D. Clausen - unisal 10 5
Vogelstrauss Algorithmus Vorgeben es existiere kein Problem Vertretbare Strategie falls Deadlocks nur sehr sehr selten auftreten Kosten für die Verhinderung hoch Kosten für die Auflösung vertretbar UNIX und Windows wählen diese Strategie Abwägung (trade off) zwischen Bequemlichkeit Effizienz Korrektheit SS2001 Prof. H.D. Clausen - unisal 11 Entdeckung mittels Betriebsmittelgraph resource allocation graph (1) Jeweils eine Ressource eines Typs verfügbar Besitz und Anforderung von Ressourcen Ein Zyklus im Graph zeigt eine mögliche Verklemmung an SS2001 Prof. H.D. Clausen - unisal 12 6
Entdeckung mittels Ressourcegraph (2) Jeweils eine Ressource eines Typs verfügbar Datenstrukturen für Deadlock Erkennung SS2001 Prof. H.D. Clausen - unisal 13 Entdeckung mittels Ressourcegraph (3) Ein Beispiel für den deadlock detection Algorithmus SS2001 Prof. H.D. Clausen - unisal 14 7
Auflösung - Recovery (1) Durch Entzug (preemption) eine Ressource eines anderen Prozesses entziehen hängt von der Art des Betriebsmittels und der Natur des Prozesses ab Rollback Prozesse setzen regelmässig Wiederanlaufpunkte (checkpoints) diese gespeicherte Zustandsinformation wird verwendet um gegebenenfalls einen verklemmten Prozess wiederanlaufen zu lassen (restart) SS2001 Prof. H.D. Clausen - unisal 15 Recovery (2) Abbruch eines Prozesses grobe aber einfache Methode um eine Verklemmung aufzubrechen einer der verklemmten Prozesse wird abgebrochen die anderen Prozesses erhalten die angeforderten Betriebsmittel Auswahl eines geeigneten Prozesses für den Wiederanlauf SS2001 Prof. H.D. Clausen - unisal 16 8
Deadlock Avoidance Resource Trajectories Two process resource trajectories SS2001 Prof. H.D. Clausen - unisal 17 Deadlock Verhütung Attacking the Mutual Exclusion Condition Bestimmte Ressourcen (z.b. Drucker) können im Spooling betrieben werden nur der Drucker Daemon nutzt die Ressource dadurch ist die Möglichkeit eines Deadlocks für den Drucker eliminiert Nicht alle Geräte können so behandelt werden Prinzip: Betriebsmittel nur zuteilen wenn dies absolut notwendig ist achten, dass nur wenige Prozesse auf diese Ressourcen zugreifen SS2001 Prof. H.D. Clausen - unisal 18 9
Other Issues Two-Phase Locking Phase One process tries to lock all records it needs, one at a time if needed record found locked, start over (no real work done in phase one) If phase one succeeds, it starts second phase, performing updates releasing locks Note similarity to requesting all resources at once Algorithm works where programmer can arrange program can be stopped, restarted SS2001 Prof. H.D. Clausen - unisal 19 Betriebsmittelfreie Verklemmungen - Nonresource Deadlocks zwei Prozesse können sich verklemmen jeder wartet auf den jeweils anderen ein bestimmtes Ereignis auszulösen kann leich bei Verwendung von Semaphoren auftreten jeder Prozess muss ein p() auf zwei Semaphore ausführen (mutex und ein weiteres) falls dies in der falschen Reihenfolge geschieht, tritte ein Deadlock auf SS2001 Prof. H.D. Clausen - unisal 20 10
Verhungern - Starvation Algorithm to allocate a resource may be to give to shortest job first Works great for multiple short jobs in a system May cause long job to be postponed indefinitely even though not blocked Solution: First-come, first-serve policy SS2001 Prof. H.D. Clausen - unisal 21 11