Hi
ich könnte dringend Hilfe gebrauchen bei der folgenden Aufgabe:
<-----L1--------___________________<------X--------- o <------R1------
____________o<----------A---------->o
------L2------>____________________------Y---------> o ------R2------->
____________Beginn Brücke______________________Ende Brücke
Bei der Zeichnung handelt es sich um 7 Streckenabschnitte, von denen A, X und Y auf einer Brücke liegen. Diese darf nur von 2 FAhrzeugen gleichzeitig befahren werden. Die Abschnitte A, X und Y können immer nur ein Fahrzeug aufnehmen.
Synchronisieren sie mittels Semahoren.
Beachte: Keine Kollisionen (auch keine Auffahrunfälle), Sperrphasen möglichst kurz halten, keine Verklemmungen dürfen auftreten.
Zu Beginn ist alles frei, L1, L2, R1, R2 müssen nicht synchronisiert werden.
So. jetzt hab ich mal versucht das in Java zu schreiben, bin mir aber ganz und gar nicht sicher ob das so stimmt und bin für jeden Kommentar äußerst dankbar!
package semaphore;
public class Bridge {
Semaphor xfrei = new Semaphor(1);
Semaphor yfrei = new Semaphor(1);
Semaphor afrei = new Semaphor(1);
Semaphor brueckefrei = new Semaphor(2);
public void Rfahrzeug {
while (1 == 1) {
brueckefrei.P();
xfrei.P();
// R1 -> X
afrei.P();
// X -> A
xfrei.V();
// A -> L1
brueckefrei.V();
afrei.V();
}
}
public void Lfahrzeug {
while (1 == 1) {
brueckefrei.P();
afrei.P();
// L2 -> A
yfrei.P();
// A -> Y
afrei.V();
// Y -> R2
brueckefrei.V();
yfrei.V();
}
}
}