Prozess synchronisierung
Ich habe folgende Aufgabe bekommen und kann es nicht lösen.
2 resourcen r1,r2
bufferpools: drinnen bestimmte anzahl an elementen die verfügbar sind
obj die drinnen sind: n1,n2
p1,....pm : prozesse
diese holen sich von den beiden resourcen spezifizierte anzahl von objekten raus: zb get1(x1),get2(x2) -- compute -- put(x1,x2)
0 <= x, <= ni
es kann passieren dass es zu wenige objekte gibt, muss warten bis es wieder genug davon gibt.
Problem: x1 erfolgreich, aber x2 wird aufgehängt, oder umgekehrt
der porzess braucht von 2 typen von objekten eine gewisse anzahl und sie werden nach der reihe angefordert und irgend
wann mal wieder zurückgegeben
Angeblich kann man das mit semaphores lösen aber ich weiß nicht was der Grund dafür ist, dass sich 2 Prpozesse aufhängen. x1 und x2 sollen hintereinander erfolgen weil das zusammenhängende daten sind, ohne, dass sich einer davon aufhängt
thx
|