Lade Inhalt...

Umgang mit Deadlocks

Seminararbeit 2009 9 Seiten

Informatik - Angewandte Informatik

Leseprobe

Umgang mit Deadlocks

Sascha Bluhme

Zusammenfassung: In dieser Seminararbeit wird der Umgang mit Deadlocks behandelt. Zuerst geht es um die Definition und Beschreibung von Deadlocks und Ressourcen. Was ist ein Deadlock, wie entstehen sie, wie können diese vermieden, verhindert, erkannt und behoben werden. Welche Bedingungen müssen erfüllt sein, damit sie überhaupt entstehen können und wie modelliert man Abhängigkeiten, um Deadlock-Situationen erkennen oder darstellen zu können. Zum Schluss werden noch kurz mit Deadlocks verwandte Probleme beschrieben.

1 Einleitung

Deadlocks können in verschiedenen Situationen und in verschiedenen Umgebungen auftreten. Manchmal merken wir gar nicht, wie wir Deadlock-Situationen meistern. Wenn vier Autos gleichzeitig an einer gleichrangigen Straßenkreuzung ankommen, entsteht bereits ein Deadlock, weil jedes Auto das Vorfahrtsrecht gegenüber dem linken Auto hat und dem rechten Auto Vorfahrt gewähren muss. Diesen Deadlock lösen wir im Alltag, indem wir uns durch Zeichen mit den anderen Verkehrsteilnehmern abstimmen. In Maschinen, Automaten, Computern o.ä. ist es derzeit mangels Kreativität selten möglich, eigene Lösungen erarbeiten zu lassen. Wie man mit Deadlocks umgeht, wie man sie vermeidet, unmöglich macht, verhindert oder auflöst, wird in dieser Seminararbeit behandelt werden.

Am Ende wird sich die Frage stellen, ob sich für Deadlocks in Computern ebenso Lösungen finden lassen, wie an der Autokreuzung.

Um den Umfang der Seminararbeit in Grenzen zu halten, betrachte ich nur die grundlegenden Algorithmen und klammere diejenigen aus, welche Lösungsansätze liefern, wenn es für einen Typ von Ressourcen mehrere Instanzen gibt.

Bei meiner Recherche ist mir aufgefallen, dass ein sehr großer Teil an Veröffentlichungen, welche sich mit diesem Thema auseinandersetzen, auf den Ausführungen von Andrew S. Tanenbaum basieren. So bin ich auch der Literaturempfehlung meines Dozenten gefolgt und halte mich ebenfalls überwiegend an die Ausführungen der Originalquelle, „Moderne Betriebssysteme“ von Andrew S. Tanenbaum.

2 Ressourcen und Deadlocks

2.1 Definition und Beschreibung von Deadlocks

„Deadlocks entstehen, wenn Prozessen das alleinige Zugriffsrecht auf Geräte, Dateien oder Ähnliches[, allgemein Ressourcen,] erteilt wird.“1

Durch den exklusiven Zugriff auf Ressourcen kann die Situation entstehen, dass ein Prozess A Ressourcen exklusiv anfordert und bindet und eine weitere Ressource anfordert, welche aber bereits durch Prozess B verwendet wird. Wenn Prozess B fertig ist, gibt er die Ressource wieder frei und Prozess A kann weiterarbeiten. Ein Deadlock entsteht erst, wenn der Prozess B an der Abarbeitung und damit der Freigabe seiner gebundenen Ressourcen gehindert wird, weil Prozess A eine für ihn benötigte Ressource bindet. Prozess A wiederum wartet auf eine durch Prozess B belegte Ressource. Somit warten beide Prozesse jeweils auf die Freigabe der Ressource durch den anderen Prozess, um jeweils weiterarbeiten zu können. Mit diesem Beispiel kann die einfachste Deadlock-Situation beschrieben werden, weil die Prozesse in direkter Abhängigkeit zueinander stehen. In einer formalen Definition beschreibt Tanenbaum Deadlocks wie folgt:

„Eine Menge von Prozessen befindet sich in einem Deadlock-Zustand, wenn jeder Prozess aus der Menge auf ein Ereignis wartet, das nur ein anderer Prozess aus der Menge auslösen kann.“2

Schließlich können auch Deadlocks in indirekter Abhängigkeit entstehen, also durch eine Kette von Abhängigkeiten, wie in Abbildung 1.

Natürlich ließen sich noch viel kompliziertere Abhängigkeiten darstellen.

2.2 Unterbrechbare/ununterbrechbare Ressourcen

Bei der Entstehung und Behandlung von Deadlocks muss man zuerst die Ressourcen in unterbrechbare und ununterbrechbare Ressourcen unterteilen. Unterbrechbare Ressourcen sind z.B. der Prozessor und der Hauptspeicher. Ununterbrechbare Ressourcen sind z.B. Drucker, Scanner, CD-Brenner, deren Unterbrechung bzw. das Entziehen der Ressource nicht möglich ist, ohne das Arbeitsergebnis, z.B. einen CD-Rohling, zu zerstören. Deadlocks stehen immer im Zusammenhang mit ununterbrechbaren Ressourcen, denn wenn unterbrechbare Ressourcen an einem Deadlock beteiligt wären, ließe sich dieser normalerweise durch eine Neuzuweisung der Ressource beheben.3

2.3 Anforderung von Ressourcen

Wenn Ressourcen verwendet werden, besteht] deren Nutzung immer aus den Teilschritten:

1. anfordern
2. benutzen
3. freigeben.4

Benötigt ein Prozess Ressourcen, wird er immer alle drei Teilschritte ausführen, insbesondere Schritt 3 darf nicht vergessen werden. Benötigen mehrere Prozesse(P1, P2) mehrere Ressourcen(R1, R2) und allokieren diese in derselben Reihenfolge P1(R1, R2), P2(R1,R2), kann es nicht zu einer Verklemmung kommen, da die Ressourcen hintereinander allokiert werden. Der Tabelle 1 kann man entnehmen, wie durch die gleiche Reihenfolge eine wechselseitige Allokierung beider Ressourcen verhindert wird, da R1 und R2 immer nur von einem der beiden Prozesse gleichzeitig allokiert werden kann.

[...]


1 Tanenbaum, A. (2002), S. 178.

2 Tanenbaum, A. (2002), S. 181.

3 Vgl. ebenda, S. 178.

4 Vgl. ebenda, S.179.

Details

Seiten
9
Jahr
2009
ISBN (eBook)
9783640363711
ISBN (Buch)
9783656406143
Dateigröße
549 KB
Sprache
Deutsch
Katalognummer
v129923
Institution / Hochschule
FOM Hochschule für Oekonomie & Management gemeinnützige GmbH, Nürnberg früher Fachhochschule
Note
1,3
Schlagworte
Deadlock Betriebssysteme

Autor

Teilen

Zurück

Titel: Umgang mit Deadlocks