4.6 Verklemmung (engl. Deadlock) Ingo Bartling https://www.youtube.com/watch?v=XHE7yfsndNw Transkript (automatisch erstellt) 0:00 hallo in diesem video möchte ich die sogenannte verklemmung oder englisch auch dead locker klären eine verklemmung oder ein date lockt 0:11 kann immer dann eintreten wenn ich zum einen mehrere prozesse habe und diese prozesse wiederum auf mehrere ressourcen zugreifen 0:20 dabei kann es nämlich passieren dass diese prozesse sich gegenseitig so blockieren dass mindestens einer von diesen prozessen nie fertig wird bzw 0:30 die rechten zeit bekommt in der regel sind es natürlich mehr als nur dieser eine prozess das ganze möchte ich jetzt wieder mit einem beispiel verdeutlichen 0:39 in dem fall ist dass wieder das beispiel aus dem kindergarten mit den kindern die spielen ich habe jetzt hier die entsprechenden 0:48 betriebsmittel graphen dargestellt in dem fall ohne die symbolik mit kreisen und quadraten sondern wieder als figuren und symbole dass ich habe hier mal ein 0:58 prozess 1 man eines kind prozess zwei habe ich hier dargestellt prozess 1 und 2 die würden gerne im sandkasten spielen dazu benötigen sie sowohl die ressource 1:10 1 also die schaufel als auch die ressorts 2 und jetzt ist folgendes passiert das kind p1 prozess b1 hat sich bereits die ressource r1 gesichert das 1:22 heißt sie ist ein zuordnungsfehler 1 wird den prozess p1 zugeordnet und ebenso wurde er zwei jetzt schon den prozess p2 zugeordnet und damit aber 1:33 sowohl p1 als auch p2 sozusagen im sandkasten spielen können benötigt p1 jetzt noch die ressource p 2 die hat allerdings schon p2 und die ressource p2 1:45 benötigt nicht nur die ressource r2 dies schon hat den eimer sondern auch noch die schaufel r1 was hier entstanden ist ein deadlock denn sowohl p1 kann nicht 1:57 im sandkasten spielen weil es dafür schaufel und einmal benötigt und p2 kann auch nicht spielen weil es tatsächlich ja auch einmal und schaufel benötigt 2:05 aber momentan nur den heimat ganz anders hingegen kind nummer 3 also prozess drei kind nummer drei gesagt gut dann nehme ich mir halt den 2:14 ball ressourcen nummer drei und damit kann das kind spielen ist also nicht in eine verklemmung warum ist dass jetzt ausgerechnet bei den oberen beiden 2:23 kindern zu dieser verklemmung gekommen dafür gibt es genau vier bedingungen die eintreten müssen die dann aber auch jeweils in dem fall finde ich manchmal 2:33 schon erzieherisch wirken können damit überhaupt ein date look eintreten kann ist wichtig dass die sogenannte der sogenannte wechselseitige ausschluss 2:45 eintritt das heißt eine ressource ist entweder frei oder ist verfügbar ein eimer ist entweder frei oder er ist einem prozess zugeordneten ebenfalls 2:55 dazu geordnet oder die schaufel ist entweder verfügbar oder ist halt ein prozess zugeordnet wenn dem nicht so ist dann kann auch kein deadlock entstehen 3:06 wenn ich beispielsweise mehrere eimer habe dann sind das auch mehr ressourcen und dann werde ich auch tatsächlich kein deadlock bekommen als zweiter 3:19 anforderung ist natürlich das problem oder bedingung für ein deadlock ist natürlich dass ein prozess nicht nur eine ressource braucht wie hier die 3:27 schaufel sondern auch wird zweiter oder mindestens eine zweite ressource in dem fall den eimer das kind unten das kind 3 das hat kein problem das ist in keinem 3:36 deadlock bei ist benötigt tatsächlich nur eine einzige ressource die hat es bekommen und damit läuft alles wunderbar das heißt wenn ich dafür sorge 3:45 beispielsweise eines kindergartens dass auch ein spielzeug immer ausreicht zum spiel dann wird auch nie ein date block auftreten 3:53 die dritte bedingung ist die unterbrechung dieses date glock wird im oberen fall nicht eintreten wenn es zum beispiel einfach p2 hingehen wird und 4:04 sagen würde ok ich 40 da einfach auf meiner ressource r2 gebe also den 13 und damit kann p1 sozusagen denn einmal auch 4:14 bekommen dann kann er ein spiel das wäre im grunde die einfachste lösung und da ist es einfach wichtig dass ein prozess der bereits eine ressource hat die nur 4:25 von sich aus frei geben kann also das kann jetzt keiner kommune wie einfach wegnehmen das ist das was man leider dann manchen 4:30 beobachtet dass quasi prozess 1 kommt und dem anderen dann quasi einfach den einmal in dem vorwegnimmt und dann so nach damit die jetzt habe ich bei 4:38 touristen jetzt spiele ich das ist nicht nett deswegen macht man das nicht und deswegen ist das eine dritte bedingung für einen deadlock demzufolge ist es 4:48 halt auch möglich bei betriebssystem beispielsweise da kann das betriebssystem auch nicht einfach eine ressource von dem prozess wieder 4:54 wegnehmen so und das reicht noch nicht damit ich dann auch wirklich anschlüssen deadlock habt gibt es noch die vierte bedingung das ist nämlich die zyklische 5:03 werte bedingungen und das kann man hier ganz gut erkennen das mache ich noch mal deutlich wenn ich nämlich genau in so einem betriebsmittel graf mir jetzt die 5:11 zahlen anschaut dann sehe ich kann hier einmal im kreis umher gehen und kommen wieder am anfang an das ist genau der zyklus und wenn ich einen solchen zyklus 5:19 habe in meinem betriebsmittel grafen dann habe ich tatsächlich auch das problem dass ich jetzt ein deadlock habe in unserem fall gibt es keinen zyklus 5:27 deswegen ist das kind drei auch glücklich und kein deadlock und kann spielen soweit zum thema medlocks bis zum 5:36 nächsten video