Erste Seite Zurück Weiter Letzte Seite Übersicht Grafik
Lockings
Durch die zur Durchsetzung der Isolationsstufen notwendigen Sperren können "Locking-Situationen" auftreten:
Ein Prozess wird verzögert und muss warten, bis ein anderer Prozess Sperren wieder aufhebt (eine Ressource wieder freigibt).
Notizen:
Deadlocks
Durch Sperren können sogenannte "Deadlocksituationen auftreten.
Beispiel: Dining Philosophers
5 Philosophen (Informatiker) sitzen vor einem runden Tisch mit 5 Tellern Spagetti. Zwischen den Tellern jeweils 1 Gabel. Jeder Informatiker bekommt folgende Arbeitsvorschrift ("Algorithmus") für den Fall, dass er hungrig wird:
Warte bis die Gabel zu Deiner Rechten frei wird
Nimm die Gabel zu Deiner Rechten
Warte, bis die Gabel zu Deiner Linken frei wird
Nimm die Gabel zu Deiner Linken
Iss, bis Du satt bist
Lege beide Gabeln zurück
Das funktioniert solange, bis einmal alle Gabeln auf dem Tisch liegen und alle Informatiker gleichzeitig hungrig werden: Jeder nimmt die Gabel zu seiner Rechten und wartet...
Einzige Lösung, damit nicht alle Informatiker verhungern: einen Informatiker erschießen (für ihn im Ergebnis ident, aber für alle anderen besser!)
Gute DBMS können Deadlock-Situationen erkennen, und brechen tatsächlich einen beteiligten Prozess unter Erzeugung einer Fehlermeldung ab ("Deadlock-Victim")