RockBottom
Experte
(offline)
Dabei seit 01.2003
1033
Beiträge
|
|
Geschrieben am: 01.05.2011 um 22:49 Uhr
|
|
Hi. Sorry für die doofe Frage, aber kann mir dabei vllt jemand kurz helfen?
![[verlinkte Grafik wurde nicht gefunden]](http://inf3-www.informatik.unibw-muenchen.de/lehre/vorlesungen/wt2002/betrsys1/html/atoms/fig2-20-alternation.png)
Geht eigentlich nur um dieses simple Stück code. Eigentlich ist das Prinzip dahinter auch gar nicht so schwer.
Allerdings verstehe ich die Realisierung der beiden while Schleifen nicht.
Wenn Prozess a turn = 1; stellt, dann kann Prozess b doch den While Block gar nicht betreten, da die Bedingung while (turn != 1) gar nicht erfüllt wird?!
Danke
Freundschaft vor Vaterland - And I thought my jokes were bad
|
|
Ketzu - 39
Experte
(offline)
Dabei seit 11.2008
1535
Beiträge
|
Geschrieben am: 01.05.2011 um 23:11 Uhr
Zuletzt editiert am: 01.05.2011 um 23:12 Uhr
|
|
Wenn Prozess a turn = 1 setzt, kann Prozess b die Schleife nicht weiter ausführen und geht zum kritischen Teil "critical_region()" über.
Die while( turn != x) /* loop */ ; // beachte ; am Ende der Zeile!
sind leere Schleifen, d.h. sie überprüfen nur immer wieder ob sie nun dran sind mit Ausführen, was durch das turn signalisiert wird.
Ist Initial turn = 0, kann Prozess a den While teil nicht ausführen, und geht zum "critical_region" teil.
Währenddessen ist Prozess b im Schleifenteil gefangen, da turn = 0 != 1 und überprüft nur immer wieder ob turn nun schon 1 ist.
(Funktioniert natürlich nur, solange kein anderer Prozess turn umsetzen kann)
Eine Meinung vertreten, heißt nicht sie zu teilen, sondern versuchen sie zu verstehen.
|
|
RockBottom
Experte
(offline)
Dabei seit 01.2003
1033
Beiträge
|
|
Geschrieben am: 01.05.2011 um 23:15 Uhr
|
|
Ohh damn...jetzt fällt der Groschen.
Ich hab die zwei Semikolons hinter dem loop total verplant. Damn wie dämlich!
Danke sehr, an beide!
Freundschaft vor Vaterland - And I thought my jokes were bad
|
|
Pratsch - 31
Champion
(offline)
Dabei seit 07.2009
2821
Beiträge
|
|
Geschrieben am: 01.05.2011 um 23:19 Uhr
|
|
Ich weis zwar nicht warum meine Antwort weg ist aber mmmm..... o.O
awa
|
|
Ketzu - 39
Experte
(offline)
Dabei seit 11.2008
1535
Beiträge
|
|
Geschrieben am: 01.05.2011 um 23:20 Uhr
|
|
Gerne, ich hab sie auch erst gesehen als ich mich gefragt habe warum man bitte die kritische Region endlos wiederholen wollen sollte ;)
Eine Meinung vertreten, heißt nicht sie zu teilen, sondern versuchen sie zu verstehen.
|
|
RockBottom
Experte
(offline)
Dabei seit 01.2003
1033
Beiträge
|
|
Geschrieben am: 01.05.2011 um 23:38 Uhr
|
|
Mir sind die gerade zu ins Auge gesprungen, als ich deinen Satz gelesen habe, obwohl das Semikolon auf der linken Seite sogar noch halbwegs auffällig ist. Dass ein Kommentar innerhalb einer Anweisung steht, ist mir allerdings total neu.
@-ZebRa-
kann ich auch nicht sagen, aber ich hatte es ja dennoch gelesen. ;)
Wie schon gesagt, danke an beide!
Freundschaft vor Vaterland - And I thought my jokes were bad
|
|
Pratsch - 31
Champion
(offline)
Dabei seit 07.2009
2821
Beiträge
|
Geschrieben am: 01.05.2011 um 23:44 Uhr
Zuletzt editiert am: 01.05.2011 um 23:45 Uhr
|
|
Zitat von RockBottom: Mir sind die gerade zu ins Auge gesprungen, als ich deinen Satz gelesen habe, obwohl das Semikolon auf der linken Seite sogar noch halbwegs auffällig ist. Dass ein Kommentar innerhalb einer Anweisung steht, ist mir allerdings total neu.
@-ZebRa-
kann ich auch nicht sagen, aber ich hatte es ja dennoch gelesen. ;)
Wie schon gesagt, danke an beide!
Alles klar. 
Das mit dem Kommentar ist schon blöd. o.O
Naja...
Also wenn das ein TUler liest, dann kann er ja schließen?!?!
Ist ja geklärt.
awa
|
|