Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

CAB Deadlocks Betriebsmittelgraph

Andreas Wilkens9:47 3.392 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 62 Zeilen
Herunterladen
  1. 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
  2. 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
  3. haben möchte innerhalb des betriebssystems und es geht jetzt im grunde um die frage wie kann man so einen deadlock zustand erkennen woran
  4. kann man erkennen zunächst einmal gibt es ja die forschung von müsste kaufmann der hier insgesamt vier bedingungen einmal zusammengetragen
  5. 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
  6. auf einem jetzt gerade laufenden betriebs system verschiedene prozesse haben die jeweils unterschiedliche ressourcen an sich gebunden haben oder
  7. eben auch nicht so oft jetzt über darauf warten diese ressourcen bekommen zu können dann liegt eben genau ein der block vor
  8. 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
  9. auf die sogenannte surge weight condition und daraus lässt sich jetzt etwas ableiten mit dessen hilfe man dead loks erkennen kann
  10. es geht um den sogenannten betriebsmittel grafen oder auch bewegungs anforderungs graf wie der alternativ genannt werden kann und wir
  11. 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
  12. 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
  13. 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
  14. 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
  15. um eine ressource wann wird das erkennen wir an einem viereck oder was wiederum malen so können wir also alle prozesse die wir
  16. haben hier auf malen wir 123 r1 r2 und air 3 so und jetzt geht es darum wie es der aktuelle zustand in unserem
  17. 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
  18. 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
  19. verschiedene ressourcen es kann jetzt also folgende situation vorliegen der prozess p1 könnte also bereits die ressource er einst an sich
  20. 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
  21. 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
  22. 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
  23. 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
  24. 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
  25. nicht an sich gebunden und da kommt jetzt wieder hier unsere fallrichtung ins spiel wir haben also einen pfeil der b1
  26. 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
  27. 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
  28. 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
  29. 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
  30. situation in unserem betriebssystem ist zum jetzigen zeitpunkt dann sehen wir auch p3 hatten hunde keine ressourcen r2 sun niemanden gefunden also es kann
  31. beliebig viele prozesse beliebig viele ressourcen geben mit denen man diesen grafen hier aufbauen kann und jetzt aber wieder mal hier geschaut circle weight
  32. condition ja es gibt eine zyklische kette von prozessen die bereits ressourcen an sich gebunden hat und gleichzeitig auf
  33. 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
  34. 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
  35. fallrichtung da komme ich hier zur ressource 3g in fallrichtung weiter kommt zuerst zweig in fallrichtung weiterkommen hier in die falle tappt und
  36. 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
  37. 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
  38. dann treffen die im grunde auch alle zu damit dieses hier überhaupt zu existieren kann also alle vier bedingungen treffen gleichzeitig zu und
  39. 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
  40. ressource 3 ist daran beteiligt der prozess zwei ist beteiligt und die ressource 1 ist daran beteiligt denn wenn man diese vier jetzt hier
  41. jeweils in fallrichtung durchläuft dann liegt also ein der block vor damit ist das nachgewiesen und das was wir jetzt hier als menschen
  42. 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
  43. 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
  44. 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
  45. das jetzt in einem betriebssystem einbauen würde also zu einem beliebigen zeitpunkt wird im betriebssystem praktisch ja die ausführung der prozesse
  46. mal kurzzeitig ich meine wirklich sehr kurzzeitig gestoppt dann baut intern das betriebssystem so einen graphen auf dh es werden alle prozesse genommen die
  47. gerade laufen es werdende ressourcen genommen die da sind es werden jetzt hier bildlich gesprochen diese pfeile ja symbolisiert und dann
  48. 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
  49. 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
  50. okay das wäre also etwas was durch ein computerprogramm abzubilden wäre die problematik dabei ist allerdings dieses computerprogramm wird wahnsinnig
  51. aufwendig und zwar umso aufwendiger je mehr prozesse und je mehr ressourcen insgesamt auf dem system gerade vorhanden sind und es ist also keine
  52. 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
  53. 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
  54. 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
  55. 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
  56. ein mal pro sekunde 1000 mal pro sekunde ja ich muss ja irgendeine irgendeine festlegung treffen und die problematik ist ein einziger
  57. 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
  58. arbeitszeit was endlich diese der enox test verloren geht von der eigentlichen cpu zeit die prozesse ja viel besser nutzen würden
  59. und wenn dann eben die situation ist dass ein eintreten eines der klaus relativ unwahrscheinlich ist dann verzichten betriebssystem hersteller
  60. 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
  61. 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
  62. datenverlust verbunden ist

Zum Nachlesen