Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).
CAB Deadlocks Betriebsmittelgraph
Das Wichtigste aus dem Video
Tipp auf eine Zeit – das Video springt genau dorthin.
Transkriptautomatisch erstellt · 62 Zeilen
- wir sehen hier die definition für einen netlock zustand nämlich eine menge von prozessen befindet sich in einem zustand wenn jeder prozess aus dieser menge auf
- ein ereignis wartet was nur ein anderer prozess aus dieser menge auslösen kann das ist eine unangenehme sache und das ist etwas was man sich überhaupt nicht
- haben möchte innerhalb des betriebssystems und es geht jetzt im grunde um die frage wie kann man so einen deadlock zustand erkennen woran
- kann man erkennen zunächst einmal gibt es ja die forschung von müsste kaufmann der hier insgesamt vier bedingungen einmal zusammengetragen
- hat und es gilt ja die aussage wenn alle vier bedingungen zur selben zeit zu treffen dann liegt ein der lok vor dh wenn wir
- auf einem jetzt gerade laufenden betriebs system verschiedene prozesse haben die jeweils unterschiedliche ressourcen an sich gebunden haben oder
- eben auch nicht so oft jetzt über darauf warten diese ressourcen bekommen zu können dann liegt eben genau ein der block vor
- wenn alle diese vier bedingungen jetzt eben hier zur selben zeit zu treffen und wir richten unser augenmerk jetzt mal hier unten auf diese vierte bedingung
- auf die sogenannte surge weight condition und daraus lässt sich jetzt etwas ableiten mit dessen hilfe man dead loks erkennen kann
- es geht um den sogenannten betriebsmittel grafen oder auch bewegungs anforderungs graf wie der alternativ genannt werden kann und wir
- haben hier zunächst einmal eine menge von prozessen so die nennen wir mal p1 p2 p3 das sollte ein ps3 und so weiter und wir
- haben ressourcen wir haben ressourcen und die nennen wir mal r1 und r2 und r3 und so weiter ja also prozesse auf der einen seite
- ressourcen auf der anderen seite und jetzt gehen wir mal eine geschickte anordnung im rahmen eines grafen und da machen wir aber folgendes wir haben den
- prozess p1 und das ist ein prozess ist erkennen wir an dem kreis der darum ist und wir haben eine ressource er einst und dass es sich
- um eine ressource wann wird das erkennen wir an einem viereck oder was wiederum malen so können wir also alle prozesse die wir
- haben hier auf malen wir 123 r1 r2 und air 3 so und jetzt geht es darum wie es der aktuelle zustand in unserem
- betriebssystem also wir stellen uns vor wir haben ohne betriebssystem das läuft gerade verschiedenste prozesse nämlich p1 p2 p3 sind aktiv also sind gestartet
- auf diesem system und es gibt eben auch unserem rechnersystem verschiedene ressourcen hier also mal r1 r2 r3 und die einzelnen prozesse benötigen jetzt
- verschiedene ressourcen es kann jetzt also folgende situation vorliegen der prozess p1 könnte also bereits die ressource er einst an sich
- gebunden haben und wir sehen hier einen pfeil der geht von r1 also von der ressource zu den prozessen und genau diese richtung ist entscheidend die
- ressource ist bereits an den prozess gebunden das sagt hier diese fallrichtung aus so auf der anderen seite könnte es natürlich sein dass wir
- eine ressource er drei haben und diese ressource r3 ist jetzt bereits an den prozess p2 gebunden das heißt der prozess b2 hat die ressource er drei
- jetzt und darf mit ihr arbeiten sofern das eben möglich ist nichts anders dagegen spricht jetzt könnte es genauso sein dass unsere prozess p1 aber auch
- auf diese ressource r3 zugreifen möchte ja eher der prozess b1 möchte in zukunft also auf diese ressourcen zu 33 zugreifen er hat sie aber jetzt noch
- nicht an sich gebunden und da kommt jetzt wieder hier unsere fallrichtung ins spiel wir haben also einen pfeil der b1
- startet und bei r3 endet die pfeilspitze ist also bei r3 und diese richtung des falles sagt also aus der prozess p1 möchte gerne
- die ressource r3 zugewiesen bekommen aber er hat sie halt noch nicht okay und wenn wir jetzt im grunde großes pech haben dann könnte der aktuelle zustand
- unseres systems also auch noch so aussehen dass der prozess p2 gerne auf diese ressource er einst zugreifen möchte aber p2 hat die ressource er
- einst doch nicht also jetzt im moment ist das noch nicht zugegeben so wenn wir jetzt diese situation hier so haben und wenn das jetzt gerade die aktuelle
- situation in unserem betriebssystem ist zum jetzigen zeitpunkt dann sehen wir auch p3 hatten hunde keine ressourcen r2 sun niemanden gefunden also es kann
- beliebig viele prozesse beliebig viele ressourcen geben mit denen man diesen grafen hier aufbauen kann und jetzt aber wieder mal hier geschaut circle weight
- condition ja es gibt eine zyklische kette von prozessen die bereits ressourcen an sich gebunden hat und gleichzeitig auf
- weitere ressourcen warten alles was wir jetzt noch machen müssen wenn wir so einen betriebsmittel grafen hier haben ist dass wir schauen müssen
- ab jetzt hier ein typische kette vorliegt und das mache ich im grunde ja als mensch im grunde ganz einfach ich starte hierbei prozess 1 und gehe in
- fallrichtung da komme ich hier zur ressource 3g in fallrichtung weiter kommt zuerst zweig in fallrichtung weiterkommen hier in die falle tappt und
- dabei schon mal okay und damit dass ich immer in diese richtung gegangen bin habe ich also ihr gezeigt dass eine zyklische kette vorliegt und damit habe
- ich gezeigt dass hier diese bedingung für zutrifft diese weight condition trifft zu und wenn man sich die anderen drei bedingungen nachkauf mit anschaut
- dann treffen die im grunde auch alle zu damit dieses hier überhaupt zu existieren kann also alle vier bedingungen treffen gleichzeitig zu und
- das heißt wir haben hier an dieser stelle keinen deadlock der nicht vor naja und klar ist er per prozess 1 ist an diesem tag noch beteiligt die
- ressource 3 ist daran beteiligt der prozess zwei ist beteiligt und die ressource 1 ist daran beteiligt denn wenn man diese vier jetzt hier
- jeweils in fallrichtung durchläuft dann liegt also ein der block vor damit ist das nachgewiesen und das was wir jetzt hier als menschen
- gemacht haben dass wir also hier gezeichnet haben und dann im grunde ja mit unserem verstand mit unserem augen den verrichtungen gefolgt sind und eben
- festgestellt haben dass wir dadurch in einen zyklus geraten sind so dass wir am ende wieder am anfang an kommen das kann man auch maschinell ausführen lassen das
- heißt es gibt algorithmen auf graphen und diese algorithmen auf graphen können eben einen zyklus testen innerhalb seines gerichteten grafen und wenn man
- das jetzt in einem betriebssystem einbauen würde also zu einem beliebigen zeitpunkt wird im betriebssystem praktisch ja die ausführung der prozesse
- mal kurzzeitig ich meine wirklich sehr kurzzeitig gestoppt dann baut intern das betriebssystem so einen graphen auf dh es werden alle prozesse genommen die
- gerade laufen es werdende ressourcen genommen die da sind es werden jetzt hier bildlich gesprochen diese pfeile ja symbolisiert und dann
- prüft der algorithmus ob man die pfeile in richtung in der jeweiligen fachrichtung durchläuft ein zyklus da ist und wenn ja hat man einen blog und
- dann weiß man anhand des zyklus ist auch welche ressourcen welche prozesse daran beteiligt sind und wenn man eben keinen zyklus hat dann weiß man dass eben nicht
- okay das wäre also etwas was durch ein computerprogramm abzubilden wäre die problematik dabei ist allerdings dieses computerprogramm wird wahnsinnig
- aufwendig und zwar umso aufwendiger je mehr prozesse und je mehr ressourcen insgesamt auf dem system gerade vorhanden sind und es ist also keine
- seltenheit dass da mehr als 100 prozesse irgendwie gleichzeitig laufen und gestartet sind und wenn ich dann noch mal so viele ressourcen habe und so das
- wird wahnsinnig aufwendig da einen zyklus zu testen auch zu nieren zu testen und diese dieser aufwand ja der sorgt dafür dass es sehr sehr schwierig
- ist und dass es vor allen dingen sehr lange dauert das alles raus zu finden ja und wie oft will man wenn man auf der lok testen
- wenn ich jetzt der hersteller des betriebssystems wäre was muss ich denn sagen wenn ich einmal pro stunde testen haben obwohl liegt ein mal pro minute
- ein mal pro sekunde 1000 mal pro sekunde ja ich muss ja irgendeine irgendeine festlegung treffen und die problematik ist ein einziger
- test ob in den gesamten gefüge ein zyklus vorliegt dauert schon sehr lange und wenn ich das da noch oft testen will dann habe ich wahnsinnig viel
- arbeitszeit was endlich diese der enox test verloren geht von der eigentlichen cpu zeit die prozesse ja viel besser nutzen würden
- und wenn dann eben die situation ist dass ein eintreten eines der klaus relativ unwahrscheinlich ist dann verzichten betriebssystem hersteller
- eben gerne darauf solche der loks zu testen denn dann bleibt mehr zeit für die prozesse auf der cpu und wenn dann tatsächlich mal ein der doch passiert
- ist es halt pech da hat der user immer noch die we set taste an seinem computer und kann dadurch den der block auflösen obwohl das das würde ich gerne mal mit
- datenverlust verbunden ist
Zum Nachlesen
Deadlock (Informatik)Deadlock oder Verklemmung bezeichnet in der Informatik einen Zustand, bei dem eine zyklische Wartesituation zwischen mehreren Prozessen auftritt, …
DeadlockEin Deadlock in der Informatik bezeichnet eine ausweglose Situation, bei dem sich mehrere Prozesse blockieren, weil sie gegenseitig aufeinander warten. Ein …
Betriebsmittel (Informatik)Bei wechselseitiger Abhängigkeit von Ressourcen führt ein Versagen der Zugriffsregelung zu einer sogenannten Verklemmung (deadlock). Manche Ressourcen wie z …
PhilosophenproblemBeim Philosophenproblem (englisch dining philosophers problem) handelt es sich um ein Fallbeispiel aus dem Bereich der theoretischen Informatik.