Was ist die Definition von Deadlocks?
Permanentes Blockieren einer Menge von Prozessen, die um Ressourcen konkurrieren oder miteinander kommunizieren
Zyklischer Ressourcenkonflikt zwischen zwei oder mehreren Prozessen
Es gibt keine universelle Lösung des Problems
Gib ein Beispielt für Deadlocks bei Mutual Exclusion
Wie lauten die 4 Deadlock Bedingungen und welche davon sind die drei Vorraussetzungen des System?
Die drei Voraussetzungen des Systems:
Mutual Exclusion
– exklusiver Zugriff auf Ressourcen
Hold and Wait
– Prozess kann Ressourcen halten, während er auf andere Ressourcen wartet
No Preemption
– zugewiesene Ressourcen werden den Prozessen nicht weggenommen
Auftreten einer bestimmten Ereignisfolge:
Circular Wait
– Geschlossene Kette von Prozessen, von denen jeder Prozess mindestens eine Ressource hält, die von einem anderen Prozess benötigt wird
Wann kann ein Circular Wait nicht aufgelöst werden und was ist dessen Folge?
Wenn Bedingungen 1 bis 3 gelten, kann es nicht aufgelöst werden.
Folge => Deadlock
Welche 3 Arten von Behandlung von Deadlocks gibt es?
Deadlock Prevention
Deadlock Avoidance
Deadlock Detection
Was passiert bei der Deadlock Prevention?
Das verhindern einer der 4 Deadlock-Bedingungen:
-> Betriebssystemdesign, das Deadlocks ausschließt
Was passiert bei einer Deadlock Avoidance?
Ressourcenreservierungen, die zu Deadlock führen könnten, werden nicht gewährt
Was passiert bei der Deadlock Detection?
Ressourcenanforderungen werden immer gewährt, sofern Ressourcen vorhanden sind
Periodisches Überprüfen, ob ein Deadlock vorliegt und ggf. Recovery
Welche Arten von Deadlock Prevention gibt es?
Indirect Deadlock Prevention:
Verhinderung einer der Bedingungen 1 bis 3
Direct Deadlock Prevention:
Verhinderung des Circular Wait
Welche Vorgehensweisen gibt es für Indirect Deadlock Prevention?
Was ist die Zielsetzung der Mutual Exclusion bei der Indirect Deadlock Prevention?
Sie kann nicht unterbunden werden
Was passiert beim Hold and Wait bei der Indirect Deadlock Prevention?
Prozesse fordern alle Ressourcen auf einmal an
Blockieren, bis alle Ressourcen vorhanden sind
➭ Lange Verzögerungen der Prozesse möglich
➭ Schlechte Nutzung allokierter Ressourcen
➭ Prozess braucht Wissen über Ressourcen, die er verwenden wird
Was passiert bei No Preemption bei der Indirect Deadlock Prevention?
Prozess gibt Ressourcen frei, wenn er eine weitere Ressource nicht bekommt.
-> fordert Ressourcen zu einem späteren Zeitpunkt wieder an
Anforderung eines Prozesses führt dazu, dass ein anderer Prozess Ressourcen freigeben muss
(Anwendbar für Ressourcen, deren Zustand leicht gespeichert und später wieder hergestellt werden kann (z.B. Prozessor, beim Blockieren bei wait))
Wie geht die Direct Deadlock Prevention vor?
Strikte lineare Ordnung O für Ressourcenarten
z.B. O(Tape Drives) = 2, O(Disk Drives) = 4
Erste Anforderung: Prozess fordert eine Anzahl von Ressourcen der Art Ri an (alle müssen in einem Schritt angefordert werden)
In der Folge werden für den Prozess nur Anforderungen von Ressourcen der Art Rk mit O(Rk) > O(Ri) zugelassen
Was passiert bei Process Initiation Denial?
ein Prozess wird nicht gestartet, wenn seine Anforderungen zu einem Deadlock führen könnten, d.h wenn:
Was passiert bei Resource Allocation Denial?
eine Ressourcenanforderung eines Prozesses wird verwehrt, wenn dadurch ein Deadlock entstehen könnte
Welche Vorrausetzungen gibt es für Deadlock Avoidance?
Ressourcenbedarf der Prozesse muss bekannt sein
Welche Nachteile hat Process Initiation Denial?
Annahme, dass alle Prozesse ihre Ressourcen gleichzeitig anfordern
=> Einschränkung der Parallelität
Part 1
Part 2
Was ist ein State bei Resource Allocation Denial - Banker ́s Algorithm?
Eine Ressourcenbelegung der Prozesse, charakterisiert durch Vektoren u. Matrizen
Was ist der Unterschied zwischen einem Safe State und einem Unsafe state?
Safe State:
es existiert eine Folge von Schritten, mit der der Algorithmus alle Prozesse als “finished” markiert in den Endzustand bringt.
Unsafe State:
es existiert keine solche Schrittfolge.
Part 3
Wie funktioniert Banker ́s Algorithm?
Wie wird Banker ́s Algorithm angewendet?
Mit Tests, ob aktuelle Ressourcenanforderungen Q_ki von Prozess Pk erfüllt werden sollen:
Was passiert beim Deadlock Detection Algorithmus?
(Deadlocküberprüfung z.B. bei jeder Ressourcenanforderung => CPU-intensiv)
Wie funktioniert der Deadlock Detection Algorithm?
Von welcher annahme geht der Deadlock Detection Algorithm aus?
Vo der Optimistischen Annahme, dass Prozesse keine zusätzlichen Ressourcen für ihre Fertigstellung benötigen
Wenn diese Annahme nicht stimmt, kann es später zu einem Deadlock kommen
dieser Deadlock wird beim nächsten Aufruf des Deadlock Detection Algorithmus erkannt
Welche Strategien gibt es für eine Deadlock Recovery?
Abbrechen aller betroffenen Prozesse (häufig angewandte Strategie)
Rollback aller beteiligten Prozesse bis zu einem definierten Aufsetzpunkt (Deadlock kann sich wiederholen)
Abbrechen einzelner beteiligter Prozesse, solange bis der Deadlock beseitigt ist (wiederholtes Aufrufen des Detection Alg.)
Ressourcen werden Prozessen schrittweise entzogen und an andere Prozesse vergeben, bis kein Deadlock mehr vorliegt
Last changeda year ago