Verklemmungen

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Verklemmungen
Hi Leuts!

Also ich hab net Probleme mit den Verklemmungen an sich aber mit folgender Aussage auf Folie H-13:

“bei neuer Belegung werden alle gehaltenen Betriebsmittel freigegeben und mit der neuen Anforderung zusammen wieder angefordert”

Was genau ist hier gemeint ?

And btw: Wie interpretiert man das Diagram auf H-15 ??? Ich werd daraus einfach net schlau.


Aerger bekommt man potentiell ja nur, wenn man Betriebsmittel 1 hat und ein Betriebsmittel 2
anfordert (das eventuell ein anderer hat, der grade auf BM 1 wartet) - das ist die Situation
vereinfacht mit 2 Betriebsmitteln dargestellt.

Wenn man aber BM 1 freigibt und dann BM1 + BM2 zusammen neu anfordert, dann
deblockiert man ja erst mal den anderen, der grade auf BM1 wartet und der Knoten
loest sich auf.
Es ist aber klar, dass es nicht in allen Faellen problemlos geht, ein Betriebsmittel
mal kurz wieder freizugeben (z.B. den Drucker, auf dem man grade schon 'ne
halbe Seite gedruckt hat).

Der fette Treppenbalken symbolisiert den zeitlichen Ablauf der Prozesse 1 und 2 -
Balken nach rechts = Prozess 1 laeuft, Balken nach oben = Prozess 2 laeuft.

Proz. 1 ist so programmiert, dass er zuerst Sem A belegt, dann B (PA und PB)
und danach zuerst A freibigt und dann B (VA und VB).
Proz. 2 ist so gebaut, dass er zuerst B belegt und dann A…

Wenn nun 1 so laufen wuerde, dass er PA und PB durchbekommt (Balken wuerde sich
im unteren weissen Bereich bewegen), dann waere alles ok.
Analog, wenn Prozess 2 PB und PA durchbekommt (linker weisser Bereich).

Kritisch wird’s aber, wenn 1 PA macht (Balken ueberschreitet vertikale PA-Linie
nach rechts) und dann 2 PB macht (Balken ueberschreitet horizontale PB-Linie nach oben).
Jetzt koennen zwar beide noch laufen, aber das Unheil ist nicht mehr aufzuhalten
wenn nicht einer von beiden wieder was freigibt. Sonst versucht z.B.
2 ein PA und blockiert sich dran (Balken stoesst an die
horizontale PA-Linie) - das fuehrt dazu, dass 1 weitermacht - 2 kann ja nicht mehr -
bis er an die vertikale PB-Linie anstoesst - und dann ist’s aus.

Die Moral daraus:
bei PB von Prozess 2 (Balken ueberschreitet horizontale PB-Linie nach oben)
koennte man erkennen, dass man in einen unsicheren Zustand kommt und duerfte
das PB nicht zulassen (obwohl es an dieser Stelle fuer sich alleine betrachtet
ja ok waere). Damit wuerde dich 2 am PB blockieren und 1 wuerde weiterlaufen, koennte
sein PB machen und es wuerde alles im unteren weissen Bereich ablaufen. Sobald
1 dann VA gemacht hat, duerfte 2 PB machen (die grauen Flaechen mit dem
„unmoeglichen Zustand“ passen auf diese Szenario dann aber nicht - die
beziehen sich nur auf den eingezeichneten Balkenverlauf).


ich glaube nicht, dass die grauen flaechen zu diesem szenarion nicht passen, sondern dass diese immer passen.
prozess 2 duerfte zwar ohne probleme PB machen, kann es aber nicht, da prozess 1 die semaphore noch nicht mit VB freigegeben hat. insofern KANN der graphenverlauf NIE durch die grauen unmoeglichen zustaende gehen… oder?


hast recht - dass 2 kein PB machen kann solange 1 nicht VB gemacht hat ist ja
eigentlich klar - aber ich hab’ bloss noch an Verklemmungen gedacht und vor dem
Hintergrund war das wohl etwas zu trivial