Betriebssysteme #4 - Deadlocks | Verklemmungen | Bankieralgorithmus deutsch IT BREAK https://www.youtube.com/watch?v=t_YAxYeg8QY Transkript (automatisch erstellt) 0:00 [Musik] logan heute zum thema medlocks und verklemmungen bei prozessen und in 0:09 diesem zuge schauen wir auch den banker oder bank hier rhythmus an zunächst mal was sind sogenannte dead loks wir haben prozesse und diese prozesse brauchen 0:19 bestimmte ressourcen um durchgeführt werden zu können nun kann es der fall sein dass ein prozess gerade eine ressource hält während er parallel dazu 0:28 eine andere an fordert deshalb macht ein zweiter prozess nur umgekehrt also nehme mal an meinem prozess p1 und einem prozess p2 der ressourcen ressource b 0:37 wir haben es nun folgenden fall prozess p1 hält ressource b während p2 ressource b anfordert und wartet gleichzeitig auf ressource a während die aber von prozess 0:50 p2 gehalten werde das heißt es kann nicht funktionieren solange zum beispiel nicht eine von den ressourcen frei gegeben wird oder alle ressourcen frei 0:57 gegeben werden es gibt bestimmte bedingungen die zu treffen müssen damit es eben zu solchen jobs kommt das ist zum einen die exklusive belegung also 1:06 zum beispiel prozess per 1 belegt exklusiv ressource b dazu kommt eine zusätzliche bewegung bedeutet dass wir mehr ressourcen gleichzeitig belegen 1:15 können in dem fall würden wir in dem fall würden wir ressourcen a und b haben wollen wir beide prozesse das dritte wäre dass wir keine erzwungene rückgabe 1:23 haben zum beispiel dass die ressource nach einer gewissen zeit die verstrichen ist zurückgegeben werden muss und was auch noch zutreffen muss damit ein 1:32 verklärungen steht ist ein sogenanntes erklärt also ein gegenseitiges warten auf eine ressource prozess vereins sie zum beispiel auch jahres usa wird gerade 1:42 von prozess zwei belegt dann warte ich mal kurz bis 12 die ressource freigibt aber kurz s1 sieht in diesem fall nicht dass prozess p2 die ressource erst 1:53 freigeben kann so für eine ressource b bekommen hat daher als es mal zur verklemmung kommt gibt es verschiedene strategien zur behandlung von blogs 2:02 haben wir einmal das ignorieren das ist so ziemlich die einfachste methode die man wählen kann die wird tatsächlich auch teilweise genutzt weil der blogs in 2:11 der regel selten vorkommen eine weitere möglichkeit wäre das automatische erkennen und dann gegebenenfalls zum beispiel freigeben von den ressourcen 2:18 das könnte man machen mit betriebsmittel grafen in denen wären dann nämlich zyklen drin das dritte wäre verhindern von verklemmungen durch zb das vermeiden 2:27 von exklusiven belegungen könnte man schon der blogs verhindern und das letzte womit man es noch genauer beschäftigen wäre die vermeidung von 2:35 verklemmungen durch einen bestimmten algorithmus und wieder funktioniert schauen wir uns jetzt an bei diesem algorithmus geht es darum eine ausführe 2:42 eine folge zu finden bei der die prozesse durchlaufen können und genug ressourcen haben um sich nicht gegenseitig zu behindern müssen immer 2:50 zwei schritte erstens müssen einem prozess finden der mit den verfügbaren ressourcen kann wenn es nicht gibt dann beenden wir das sollte im normalfall 2:58 natürlich dann auch das ende und alternativ wäre die rückgabe den ressourcen und weitermachen mit schritt 1 das heißt wir haben einen prozess der 3:07 fordert ressourcen an die werden ihm zugeteilt anschließend wenn der prozess beendet ist wird er wieder die ressourcen zurückgeben und wir finden 3:14 einen neuen prozess der mit den verfügbaren ressourcen laufen kann das ganze machen eben so lange bis alle prozesse abgearbeitet sind haben wir uns 3:21 dazu mal ein beispiel zunächst brauchen wir eine location matrix und das sind die gerade den prozessen zugewiesenen ressourcen also wir haben hier jetzt zum 3:30 beispiel fünf prozesse drei ressourcen und in der location matrix sehen wir die ressourcen die zum jeweiligen prozess gerade zu gewesen sind oder die den 3:39 prozess gerade hält dann haben wir noch einen tricks die ändert sich im laufe des ganzen algorithmus nicht die gibt uns an wie viel wissen benötigt werden 3:49 und zuletzt haben wir noch eine valable tabelle das sind die ressourcen die gerade zur verfügung stehen in dem fall hätten wir drei von regisseur drei von 3:57 ressourcen b und zweifel ressource sie so wenn wir jetzt einfach mal beginnen dann sehen wir prozess 1 würde fünf ressourcen verbrauchen das haben wir 4:07 nicht wir haben gerade nur drei das heißt überspringen 41 und schauen können wir prozess zwei mit dem benötigten ressourcen 4:14 bestücken da sehen wir wir brauchen drei 22 das haben wir ergänzen jeweils eine ressource von a und 2 für beyoncé und haben dann nach diesen prozess noch zwei 4:26 von a1 von bären keine mehr von zehn dann überprüfen wir weiter ob wir vielleicht noch im gleichen zuge einen anderen prozess ausführen können und 4:34 genug ressourcen haben da sehen wir schon höchstens würde prozess vier noch in frage kommen allerdings haben wir zu wenig von ressource ziel deswegen können 4:43 wir hier nur prozess zwei beenden und dann gehen wir den nächsten zyklus über nach beenden des zweiten durchlauf haben wir natürlich wieder die ressourcen die 4:52 uns prozess 2 zurück gibt das wären dann insgesamt fünf von a3 von bmc damit können wir jetzt prozess 1 laufen lassen und wir schauen ob wir noch einen 5:02 prozess damit verfolgt hängen können diesmal funktioniert ist wir können prozess vier noch ressourcen geben sodass auch diese im selben schritt 5:09 laufen kann anschließend werden diese ressourcen vor dem prozess wieder zurückgegeben nachdem die abgeschlossen wurden und wir haben jetzt sieben von a6 5:18 von b und drei von zehn das machen wir jetzt noch mal in einem schritt ihr prozess 3 kann nur durch laufen die ressourcen reichen nicht mehr für den 5:26 prozess sind deshalb brauchen wir noch einen weiteren durchgang bis dann letztendlich alle prozesse durchlaufen sind und damit wäre dann der algorithmus 5:34 beendet und wir sehen so kann es überhaupt nicht erst zu verklemmungen kommen und jeder prozess kommt sicher andere das war es mit diesem video ich 5:42 hoffe ich habe euch geholfen [Musik]