4. CIR CYBER- UND
INFORMATIONSRAUM
Wiederholung (2)
• Prozesse in einem Rechner arbeiten
nebenläufig ( Systemmodell)
• Grundidee ist das passive Warten
• Wartemechanismen führen zu
Verklemmungsproblemen
Verklemmung = Deadlock
- Öffentlich - Folie 4
5. CIR CYBER- UND
INFORMATIONSRAUM
„Systemmodell“
• betrachten wir ein System mit einer festen
Menge von Ressourcen, die unter gegenseitigem
Ausschluss von konkurrierenden Prozessen
genutzt werden.
• jeder Prozess
– reserviert eine Ressource, wartet dabei ggf., bis sie
frei wird
– nutzt die Ressource
– gibt die Ressource wieder frei
- Öffentlich - Folie 5
6. CIR CYBER- UND
INFORMATIONSRAUM
Gliederung
• Wiederholung
• Beispiele
• Verklemmungen von Prozessen
– konsumierbare und nicht-konsumierbare Betriebsmittel
– Modellierung durch Betriebsmittelbelegungsgraph
• Gegenmaßnahmen, Verklemmungsbekämpfung
– Vorbeugung
– Vermeidung
– Erkennung und Auflösung
– Diskussion
- Öffentlich - Folie 6
10. CIR CYBER- UND
INFORMATIONSRAUM
Gliederung
• Wiederholung
• Beispiele
• Verklemmungen von Prozessen
– konsumierbare und nicht-konsumierbare Betriebsmittel
– Modellierung durch Betriebsmittelbelegungsgraph
• Gegenmaßnahmen, Verklemmungsbekämpfung
– Vorbeugung
– Vermeidung
– Erkennung und Auflösung
– Diskussion
- Öffentlich - Folie 10
11. CIR CYBER- UND
INFORMATIONSRAUM
Verklemmung von Prozessen
• der Begriff bezeichnet (in der Informatik)
- Öffentlich - Folie 11
„ […] einen Zustand, in dem die beteiligten Prozesse
wechselseitig auf den Eintritt von Bedingungen warten, die nur
durch andere Prozesse in dieser Gruppe selbst hergestellt
werden können.“
Jürgen Nehmer und Peter Sturm
Systemsoftware: Grundlagen moderner Betriebssysteme
dpunkt Verlag GmbH, zweite Ausgabe, 2001
12. CIR CYBER- UND
INFORMATIONSRAUM
Bedingungen für eine Verklemmung (1)
• damit es zu einer Verklemmung kommen kann,
müssen alle folgenden Bedingungen erfüllt sein:
1. exklusive Belegung von Betriebsmitteln („mutual exclusion“)
- die umstrittenen Betriebsmittel sind nur unteilbar nutzbar
2. Nachforderung von Betriebsmitteln („hold and wait“)
- die umstrittenen Betriebsmittel werden erst nach der Nutzung
freigegeben
3. kein Entzug von Betriebsmitteln („no preemption“)
- die umstrittenen Betriebsmittel sind nicht rückforderbar
- Öffentlich - Folie 12
13. CIR CYBER- UND
INFORMATIONSRAUM
Bedingungen für eine Verklemmung (2)
• damit es zu einer Verklemmung kommen kann,
müssen alle folgenden Bedingungen erfüllt sein:
1. exklusive Belegung von Betriebsmitteln („mutual exclusion“)
2. Nachforderung von Betriebsmitteln („hold and wait“)
3. kein Entzug von Betriebsmitteln („no preemption“)
• erst wenn zur Laufzeit eine weitere Bedingung
eintritt, liegt tatsächlich eine Verklemmung vor:
4. zirkuläres Warten („circular wait“)
- eine geschlossene Kette wechselseitig wartender Prozesse
- mathematisch: es gibt eine Prozessmenge {P0, …, Pn}, so dass jeder
Pi auf eine Ressource wartet, die Pi+1 mod n reserviert hat
- Öffentlich - Folie 13
„notwendig“
„hinreichend“
14. CIR CYBER- UND
INFORMATIONSRAUM
Gliederung
• Wiederholung
• Beispiele
• Verklemmungen von Prozessen
– konsumierbare und nicht-konsumierbare Betriebsmittel
– Modellierung durch Betriebsmittelbelegungsgraph
• Gegenmaßnahmen, Verklemmungsbekämpfung
– Vorbeugung
– Vermeidung
– Erkennung und Auflösung
– Diskussion
- Öffentlich - Folie 14
15. CIR CYBER- UND
INFORMATIONSRAUM
Betriebsmittel …
• werden vom Betriebssystem verwaltet und den Prozessen
zugänglich gemacht. Man unterscheidet zwei Arten:
– wiederverwendbare Betriebsmittel
• werden von Prozessen für eine bestimmte Zeit belegt und anschließend
wieder freigegeben.
• Beispiele: CPU, Haupt- und Hintergrundspeicher, E/A-Geräte,
Systemdatenstrukturen wie Dateien, Prozesstabelleneinträge, ...
– konsumierbare Betriebsmittel
• werden im laufenden System erzeugt (produziert) und zerstört
(konsumiert)
• Beispiele: Unterbrechungsanforderungen, Signale, Nachrichten, Daten
von Eingabegeräten
- Öffentlich - Folie 15
16. CIR CYBER- UND
INFORMATIONSRAUM
Gliederung
• Wiederholung
• Beispiele
• Verklemmungen von Prozessen
– konsumierbare und nicht-konsumierbare Betriebsmittel
– Modellierung durch Betriebsmittelbelegungsgraph
• Gegenmaßnahmen, Verklemmungsbekämpfung
– Vorbeugung
– Vermeidung
– Erkennung und Auflösung
– Diskussion
- Öffentlich - Folie 16
17. CIR CYBER- UND
INFORMATIONSRAUM
Betriebsmittelbelegungsgraph (1)
(engl. resource allocation graph)
• ... wird benutzt, um Verklemmungssituationen zu
visualisieren und auch automatisch zu erkennen
– beschreiben einen aktuellen Systemzustand
– die Knoten sind Prozesse und Betriebsmittel
– die Kanten zeigen eine Belegung oder eine Anforderung an
Betriebsmittel B1 wird durch Prozess P2 belegt
Prozess P1 angefordert das Betriebsmittel B2
- Öffentlich - Folie 17
18. CIR CYBER- UND
INFORMATIONSRAUM
Betriebsmittelbelegungsgraph (2)
• Frage: Liegt zirkuläres Warten vor? Wer ist beteiligt?
– Es gibt 7 Prozesse A bis G und 6 Betriebsmittel R bis W
• aktueller Zustand:
– A belegt R und verlangt S
– B belegt nichts, verlangt aber T
– C belegt nichts, verlangt aber S
– D belegt U und S und verlangt T
– E belegt T und verlangt V
– F belegt W und verlangt S
– G belegt V und verlangt U
- Öffentlich - Folie 18
20. CIR CYBER- UND
INFORMATIONSRAUM
Gliederung
• Wiederholung
• Beispiele
• Verklemmungen von Prozessen
– konsumierbare und nicht-konsumierbare Betriebsmittel
– Modellierung durch Betriebsmittelbelegungsgraphen
• Gegenmaßnahmen, Verklemmungsbekämpfung
– Vorbeugung
– Vermeidung
– Erkennung und Auflösung
– Diskussion
- Öffentlich - Folie 20
21. CIR CYBER- UND
INFORMATIONSRAUM
Vorbeugung
(engl. deadlock prevention)
• indirekte Methoden entkräften eine der Bedingungen 1–3
1. nicht-blockierende Verfahren verwenden
2. Betriebsmittelanforderungen unteilbar (atomar) auslegen
3. Betriebsmittelentzug durch Virtualisierung ermöglichen - virtueller Speicher,
virtuelle Geräte, virtuelle Prozessoren
• direkte Methoden entkräften Bedingung 4
4. lineare/ totale Ordnung von Betriebsmittelklassen einführen:
- Betriebsmittel Bi ist nur dann erfolgreich vor Bj belegbar,
wenn i linear vor j angeordnet ist (d.h. i < j).
= Regeln, die das Eintreten von Verklemmungen verhindern ODER Methoden,
die zur Entwurfs- bzw. Implementierungszeit greifen
- Öffentlich - Folie 21
22. CIR CYBER- UND
INFORMATIONSRAUM
Gliederung
• Wiederholung
• Beispiele
• Verklemmungen von Prozessen
– konsumierbare und nicht-konsumierbare Betriebsmittel
– Modellierung durch Betriebsmittelbelegungsgraphen
• Gegenmaßnahmen, Verklemmungsbekämpfung
– Vorbeugung
– Vermeidung
– Erkennung und Auflösung
– Diskussion
- Öffentlich - Folie 22
23. CIR CYBER- UND
INFORMATIONSRAUM
Vermeidung
(engl. deadlock avoidance)
• Verhinderung von zirkulärem Warten (im laufenden System) durch
strategische Maßnahmen:
– keine der ersten drei notwendigen Bedingungen wird entkräftet
– fortlaufende Bedarfsanalyse schließt zirkuläres Warten aus
• Prozesse und ihre Betriebsmittelanforderungen sind zu steuern:
– zu jeder Zeit muss mindestens ein Prozess seinen maximalen
Betriebsmittelbedarf decken können → „sicherer Zustand“
– das System wird (laufend) auf „unsichere Zustände“ hin überprüft
- Zuteilungsablehnung im Falle nicht abgedeckten Betriebsmittelbedarfs
- anfordernde Prozesse nicht bedienen bzw. frühzeitig suspendieren
• À priori Wissen über den maximalen Betriebsmittelbedarf ist erforderlich.
- Öffentlich - Folie 23
24. CIR CYBER- UND
INFORMATIONSRAUM
Sicherer/ unsicherer Zustand
(am Beispiel der speisenden Philosophen)
• Ausgangspunkt: fünf Gabeln sind insgesamt
vorhanden
– jeder der fünf Philosophen braucht zwei Gabeln zum Essen
• Situation: P0 , P1 und P2 haben je eine Gabel und
zwei Gabeln sind frei
– P3 fordert eine Gabel an → eine Gabel wäre dann noch frei
• sicherer Zustand: einer von drei Philosophen könnte essen
– die Anforderung von P3 wird akzeptiert
– P4 fordert eine Gabel an → keine Gabel wäre dann mehr frei
• unsicherer Zustand: keiner der Philosophen könnte essen
• die Anforderung von P4 wird abgelehnt, P4 muss warten
– haben vier Philosophen je eine Gabel, wird der fünfte gestoppt
- Öffentlich - Folie 24
25. CIR CYBER- UND
INFORMATIONSRAUM
Gliederung
• Wiederholung
• Beispiele
• Verklemmungen von Prozessen
– konsumierbare und nicht-konsumierbare Betriebsmittel
– Modellierung durch Betriebsmittelbelegungsgraphen
• Gegenmaßnahmen, Verklemmungsbekämpfung
– Vorbeugung
– Vermeidung
– Erkennung und Auflösung
– Diskussion
- Öffentlich - Folie 25
26. CIR CYBER- UND
INFORMATIONSRAUM
Erkennung …
(engl. deadlock detection)
• Verklemmungen werden (stillschweigend) in Kauf genommen („Vogel-Strauß-
Algorithmus“) ...
– Nichts im System verhindert das Auftreten von Wartezyklen
– keine der vier Bedingungen wird entkräftet
• Ansatz: Wartegraph erstellen und auf Zyklen hin untersuchen
– zu häufige Űberprüfung verschwendet Betriebsmittel/ Rechenleistung
– zu seltene Űberprüfung lässt Betriebsmittel brach liegen
• Zyklensuche geschieht zumeist in großen Zeitabständen, wenn …
– Betriebsmittelanforderungen zu lange andauern
– die Auslastung der CPU trotz Prozesszunahme sinkt
– die CPU bereits über einen sehr langen Zeitraum untätig ist
- Öffentlich - Folie 26
27. CIR CYBER- UND
INFORMATIONSRAUM
… & Auflösung
• Erholungsphase nach der Erkennungsphase
• Prozesse abbrechen und dadurch Betriebsmittel frei bekommen
– verklemmte Prozesse schrittweise abbrechen (großer Aufwand)
• mit dem „effektivsten Opfer“ (?) beginnen
– alle verklemmten Prozesse terminieren (großer Schaden)
• Betriebsmittel entziehen und mit dem „effektivsten Opfer“ (?) beginnen
– betreffenden Prozess zurückfahren bzw. wieder aufsetzen
• Transaktionen, checkpointing/ recovery (großer Aufwand)
– ein Aushungern („starvation“) der zurückgefahrenen Prozesse ist zu vermeiden
• IMMER eine Gratwanderung zwischen Schaden und Aufwand:
– Schäden sind unvermeidbar und die Frage ist, wie sie sich auswirken
- Öffentlich - Folie 27
28. CIR CYBER- UND
INFORMATIONSRAUM
Gliederung
• Wiederholung
• Beispiele
• Verklemmungen von Prozessen
– konsumierbare und nicht-konsumierbare Betriebsmittel
– Modellierung durch Betriebsmittelbelegungsgraphen
• Gegenmaßnahmen, Verklemmungsbekämpfung
– Vorbeugung
– Vermeidung
– Erkennung und Auflösung
– Diskussion
- Öffentlich - Folie 28
29. CIR CYBER- UND
INFORMATIONSRAUM
Diskussion
• Verfahren zum Vermeiden/ Erkennen sind im Betriebssystemkontext
weniger praxisrelevant
– sie sind kaum umzusetzen, zu aufwändig und damit nicht einsetzbar
• Verklemmungsgefahr ist lösbar durch Virtualisierung von Betriebsmitteln
– Prozesse beanspruchen/ belegen ausschließlich logische Betriebsmittel
– hierbei wird den Prozessen in kritischen Momenten (ohne ihr „Wissen“) das
physische Betriebsmittel entzogen
– dadurch wird die Bedingung der Nichtentziehbarkeit entkräftet
➔ eher praxisrelevant/ verbreitet sind die Vorbeugungsmaßnahmen,
z.B die totale Ordnung von Betriebsmittelklassen!!!
- Öffentlich - Folie 29
31. CIR CYBER- UND
INFORMATIONSRAUM
Übung – Deadlocks (1)
Auf dem Bild ist ein Deadlock an einer Verkehrskreuzung gezeigt.
a. Zeigen Sie, dass alle 4 nötigen Bedingungen für ein Deadlock
erfüllt sind.
- Öffentlich - Folie 31
32. CIR CYBER- UND
INFORMATIONSRAUM
Übung – Deadlocks (1)
Auf dem Bild ist ein Deadlock an einer Verkehrskreuzung gezeigt.
a. Zeigen Sie, dass alle 4 nötigen Bedingungen für ein Deadlock
erfüllt sind.
b. Überlegen Sie sich eine einfache Regel, wie Deadlocks in dieser
Situation vermieden werden können.
- Öffentlich - Folie 32
33. CIR CYBER- UND
INFORMATIONSRAUM
Übung – Deadlocks (2)
Die Prozesse P, Q, R und S benötigen jeweils Ressourcen A, B, C und D.
Gegeben ist die folgende Situation:
· Prozess P hat A belegt und möchte B und C belegen.
· Prozess Q hat C belegt und möchte A belegen.
· Prozess R hat B belegt und möchte D belegen.
· Prozess S möchte A und B belegen.
a) Zeichnen Sie einen Betriebsmittelbelegungsgraphen der obigen Situation.
Befindet sich das System in einem Deadlock?
- Öffentlich - Folie 33
35. CIR CYBER- UND
INFORMATIONSRAUM
Übung – Deadlocks (2)
Die Prozesse P, Q, R und S benötigen jeweils Ressourcen A, B, C und D.
Gegeben ist die folgende Situation:
· Prozess P hat A belegt und möchte B und C belegen.
· Prozess Q hat C belegt und möchte A belegen.
· Prozess R hat B belegt und möchte D belegen.
· Prozess S möchte A und B belegen.
a) Zeichnen Sie einen Betriebsmittelbelegungsgraphen der obigen Situation.
Befindet sich das System in einem Deadlock?
b) Terminieren Sie Prozess Q und geben Sie alle von Q gehaltenen
Ressourcen frei. Wie entwickelt sich das System weiter? Entsteht dabei
ein Deadlock oder nicht?
- Öffentlich - Folie 35
37. CIR CYBER- UND
INFORMATIONSRAUM
Übung – Deadlocks (3)
Gegeben sei das folgende System paralleler Prozesse (bzw. von
Threads innerhalb eines Prozesses); s1 bis s4 bezeichnen dabei
binäre Semaphore:
- Öffentlich - Folie 37
Prozess A Prozess B Prozess C Prozess D
while (1) {
s1.P();
s2.P();
work();
s2.V();
s1.V();
}
while (1) {
s1.P();
s3.P();
work();
s3.V();
s1.V();
}
while (1) {
s4.P();
s1.P();
work();
s1.V();
s4.V();
}
while (1) {
s3.P();
s4.P();
work();
s4.V();
s3.V();
}
38. CIR CYBER- UND
INFORMATIONSRAUM
Übung – Deadlocks (3)
a) Welches ist die Maximalzahl von Prozessen, die sich gleichzeitig im
Zustand work() befinden können?
b) Was versteht man unter einem Deadlock? Erläutern Sie mit Bezug auf
obiges Beispiel die Bedingungen, die im Zusammenhang mit dem Auftreten
von Deadlocks stehen. Erklären Sie dabei auch den Begriff Prozess-
Betriebsmittel-Graph (BM-Belegungsgraph).
c) Ist das System verklemmungsfrei? Verwenden Sie zur Untersuchung der
Zyklus-Bedingung einen Prozess-Betriebsmittel-Graphen.
d) Welche Konsequenzen hat das Vertauschen
der beiden P-Operationen in Prozess A,
der beiden P-Operationen in Prozess B,
der beiden V-Operationen in Prozess B?
e) Geben Sie einen kurzen Überblick darüber, wie man dem Problem
„Verklemmungen“ begegnen kann.
- Öffentlich - Folie 38
Zusammenarbeit (Kollaborationsoftware) verursacht (Ressourcen-)Konflikte. Diese gilt es zwingend (softwaretechnisch) zu lösen.
Beispiel (wiederverwendbare BM):
Ein Rechnersystem hat 200 GByte Hauptspeicher. Zwei Prozesse belegen den Speicher schrittweise. Die Belegung erfolgt blockierend.
Wenn beide Prozesse ihre erste Anforderung ausführen bevor Speicher nachgefordert wird, ist eine Verklemmung unvermeidbar!!!
Beispiel (konsumierbare BM):
Beispiel: Synchronisationssignale werden mit Hilfe der Semaphoroperation WAIT und SIGNAL zwischen zwei Prozessen „verschickt“.
Jeder Prozess wartet auf ein Synchronisationssignal des anderen, das dieser aber nicht senden kann, da er selbst blockiert ist.
WARTEN bis Klick!!!
… Verfahren wenig praxisrelevant, ein seltenes Beispiel: Microsofts Driver Verifier (seit WinXP integriert) bietet die Option der Verklemmungserkennung
(https://developer.microsoft.com/de-de/windows/hardware … Microsofts Hardware Dev Center, hier Suchbegriff „Deadlock Detection“)
zu b) NUR in eine Kreuzung einfahren, wenn ich diese („umkämpfte“ Ressource) mit Sicherheit vollständig passieren kann.
(Animation)
zu b) … wie entwickelt sich das System weiter: Prozess R arbeitet sich ab, in der Folge kommt es zwischen Prozess S und Prozess P zu einer Konkurrenz um Ressource B, hier KANN (bei Zuordnung von B zu S) wiederum ein Deadlock („circular wait“) entstehen.
zu a) Maximalzahl von Prozessen, welche gleichzeitig im Zustand work() sind: -2-
- wenn A in work(), dann 1 und 2 gebunden, damit B und C unmöglich in work(), D benötigt 3 und 4, dies ist möglich
- wenn C in work(), dann … usw.
- Alternative: Bestimmung durch Belegungsmatrix, wie folgt:
1 2 3 4
A x x
B x x
C x x
D x x
zu b)
Definition Deadlock – Folie 11
Erläuterung der insgesamt drei notwendigen, sowie der einen hinreichenden, Bedingung – Folie 12 & 13
Erläuterung Prozess-Betriebsmittel-Graph – Folie 17
… (siehe nächste Folie)
zu e)
deadlock prevention – Folie 21
avoidance – Folie 23
detection – Folie 26
dissolution – Folie 27
zu c) Erläuterung SEMAPHORE (= „Signalgeber“) diese fordern eine Ressource für einen Prozess an, der Prozess wartet in der Folge, bis ihm die Ressource zugesprochen wird und läuft erst dann weiter; sobald die Ressource nicht mehr benötigt wird, wird sie durch den Semaphor wieder freigegeben und durch andere „wartende“ Prozesse belegt
das System ist nicht verklemmungsfrei
zu d) … Details siehe Tafelbild
Vertauschen von: P-Operationen in Prozess A - A kann durch die mögliche Verklemmung B-C-D ebenfalls „festhängen“ UND blockiert damit nun zusätzlich die Ressource 2 (!)
P-Operationen in Prozess B - keine Verklemmung möglich, da kein „circular wait“ (weil TOTALE ORDNUNG von Betriebsmittelklassen)
V-Operationen in Prozess B - keine Auswirkungen im Beispiel, jedoch man beachte Diskussion „lock ordering“
(http://stackoverflow.com/questions/1951275/would-you-explain-lock-ordering)
… Erläuterung (wikipedia): Die Nutzungsoperationen wurden von Dijkstra mit P und V bezeichnet. Dies sind Initialen niederländischer Wörter bzw. Kofferwörter für prolaag und verhoog. Weitere, verbreitete Erklärungen sind passeer (passieren), probeeren (überprüfen) und vrijgeven (freigeben), verhogen (erhöhen). Programmierschnittstellen verwenden mnemonisch deutlichere Bezeichnungen wie wait (warten), acquire (erlangen) oder down (unten) für die P-Operation und signal (signalisieren), release (freigeben), post (abschicken) oder up (oben) für die V-Operation.