2010-03-21 20 views

Antwort

18

Man könnte es betrachten wie:

vermeiden: Verwenden Sie keine Ressourcen gemeinsam nutzen über Prozesse/mulitple Themen

verhindern: Beim gemeinsamen Ressourcen accsessing, eine Semaphore verwenden. Wenn Sie mehrere Semaphore sperren, müssen Sie sie in der umgekehrten Reihenfolge der Sperrung entsperren. Achten Sie immer darauf, Fehler innerhalb der kritischen Abschnitte zu behandeln, damit der Semaphor unter allen Bedingungen freigegeben wird.

3

Deadlock Vermeidung: Mittel, wann immer eine Anforderung für eine bestimmte Ressource, die von einem bestimmten Verfahren hergestellt wird, schauen Sie auf den zur Verfügung stehenden Ressourcen, wenn die Zukunft Ressource für Prozess benötigt Bereits verwendete Ressourcen bestimmen die Möglichkeit eines Deadlocks für den Fall, dass die Ressource gewährt wird. Wenn möglich, gewähren Sie die Ressource nicht, wenn nicht, dann erteilen Sie die Ressource.

Deadlock-Schutz: Stellen Sie sicher, dass mindestens eine der Bedingungen für einen Deadlock nicht erfüllt ist. Dies kann in der Weise erreicht werden, wie Ressourcen im System angefordert und gewährt werden.

20

Deadlock:

Ein Deadlock ist eine Situation, in der zwei oder mehr konkurrierende Aktionen jeder darauf wartet, dass der andere, zu beenden und somit weder jemals der Fall ist. Es kann auch als eine Gruppe von blockierten Prozessen definiert werden, die jeweils eine Ressource enthalten und darauf warten, eine Ressource zu erhalten, die von einem anderen Prozess in der Menge gehalten wird.

Zum Beispiel, wenn es ein System mit zwei Plattenlaufwerken gibt. Wenn es zwei Prozesse P1 und P2 gibt, die jeweils ein Laufwerk halten und jedes das andere benötigt, tritt die Situation des Deadlocks auf. Die folgenden Bedingungen werden gleichzeitig bei Stillstand gehalten:

• Gegenseitige Ausschluss: nur ein Prozess zu einer Zeit

• Halten Sie eine Ressource verwenden können und warten: ein Prozess, zumindest hält eine Ressource wartet zusätzliche Ressourcen durch andere Prozesse erwerben

• Kein Vorkaufsrecht gehalten: eine Ressource nur auf freiwilliger Basis durch den Prozess freigegeben werden kann, es zu halten, nachdem dieser Prozess seine Aufgabe

• Kreiswarte abgeschlossen hat: es gibt eine Menge {P0, P1, ..., Pn} von wartenden Prozessen suc h, dass P0 auf eine Ressource wartet, die von P1 gehalten wird, P1 auf eine Ressource wartet, die von P2 gehalten wird, ..., Pn-1 auf eine Ressource wartet, die von Pn gehalten wird, und Pn auf eine Ressource wartet, die wird von P0 gehalten.

Unterschiede zwischen Deadlock Prävention, Vermeidung und Erkennung sind wie folgt:

Prävention:

• Das Ziel, dass mindestens eine der notwendigen Bedingungen für Deadlock halten kann nie zu gewährleisten ist.

• Eine Deadlock-Vorbeugung ist oft nicht möglich.

• Das System benötigt keine zusätzlichen Apriori-Informationen über den gesamten potenziellen Nutzen jeder Ressource für jeden Prozess.

• Damit das System die Deadlock-Bedingung verhindert, muss es nicht alle Details aller verfügbaren, verfügbaren und angeforderten Ressourcen kennen.

• Deadlock Prävention Techniken umfassen Synchronisationsalgorithmen non-blocking, Token Serialisierung, Dijkstras Algorithmus usw.

• Ressourcenallokationsstrategie für Deadlock Prävention konservativ ist, es unter die Ressourcen verpflichtet.

• Alle Ressourcen werden gleichzeitig angefordert.

• In einigen Fällen sind Vorversuche mehr als nötig.

Vermeidung:

• Das Ziel für Deadlock Vermeidung ist an das System darf nicht zu einem unsicheren Zustand eintreten.

• Eine Deadlock-Vermeidung ist oft nicht möglich.

• Das System benötigt zusätzliche Apriori-Informationen über den gesamten potenziellen Nutzen jeder Ressource für jeden Prozess.

• Damit das System herausfinden kann, ob der nächste Zustand sicher oder unsicher ist, muss es jederzeit die Anzahl und den Typ aller existierenden, verfügbaren und angeforderten Ressourcen im Voraus wissen.

• Deadlock Vermeidungstechniken umfassen Banker-Algorithmus, Warten/Die, Wound/Warten usw.

• Ressourcenzuweisungsstrategie für Deadlock Vermeidung auf halben Weg zwischen dem von Erkennung und Verhinderung auswählt.

• Muss manipuliert werden, bis mindestens ein sicherer Pfad gefunden wurde.

• Es gibt keine Vorkaufsrechte.

Detektion:

• Das Ziel ist es, den Stillstand zu erkennen, nachdem er oder vor kommt es auftritt.

• Die Möglichkeit eines Deadlocks zu erkennen, bevor es auftritt, ist viel schwieriger und in der Tat im Allgemeinen unentscheidbar. In bestimmten Umgebungen kann die Deadlock-Erkennung jedoch unter Verwendung bestimmter Mittel zum Sperren von Ressourcen entscheidbar sein.

• Das System benötigt keine zusätzlichen Apriori-Informationen über den möglichen Gesamtnutzen jeder Ressource für jeden Prozess in allen Fällen.

• Damit das System die Deadlock-Bedingung erkennt, muss es nicht alle Details aller verfügbaren und verfügbaren Ressourcen kennen.

• Eine Deadlock-Erkennungstechnik umfasst, ist aber nicht beschränkt auf, Modellprüfung. Dieser Ansatz konstruiert ein Finite-State-Modell, in dem er eine Fortschrittsanalyse durchführt und alle möglichen Terminal-Sets im Modell findet.

• Die Ressourcenzuweisungsstrategie für die Deadlock-Erkennung ist sehr liberal. Ressourcen werden wie gewünscht vergeben.

• Muss regelmäßig aufgerufen werden, um auf Deadlock zu prüfen.

• Vorbelegung wird gesehen.

0

Der Unterschied zwischen Deadlock Prävention und Verklemmungsvermeidung

Deadlock Prävention:
Verhindern von Deadlocks durch Zwänge wie Anforderungen für Ressourcen im System vorgenommen werden und wie sie (Systemdesign) behandelt werden. Das Ziel ist es, sicherzustellen, dass mindestens eine der notwendigen Bedingungen für Deadlock nie halten kann.

Verklemmungsvermeidung:
Das System berücksichtigt dynamisch auf jede Anfrage und entscheidet, ob es sicher ist es an dieser Stelle zu gewähren, Das System erfordert zusätzliche apriori Informationen in Bezug auf die Gesamtpotenzial Verwendung jeder Ressource für jeden Prozess. Ermöglicht mehr Nebenläufigkeit. Ähnlich dem Unterschied zwischen einer Ampel und einem Polizeibeamten, der den Verkehr leitet.

Verwandte Themen