![]() |
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 |
Um welche Sprache geht's überhaupt?
Was heißt "aufhängen" - stürzt das Programm ab oder bleibt es hängen (deadlock o.ä.). Was versucht du zu machen? Kannst du Beispielcode posten? jak |
Wo oben schon erwähnt, vlt. ein Deadlock.
Ich hab mit Mutexen gute Erfahrungen gemacht ( da kannst dich im eigenen Thread zumindest nicht selber "ausperren" ;-) --> bei Semaphoren schon). |
Alle Zeitangaben in WEZ +2. Es ist jetzt 00:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag