![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Newbie
![]() Registriert seit: 26.02.2008
Beiträge: 4
|
![]() 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 |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 13.06.2001
Beiträge: 1.830
|
![]() 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
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona) Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing. \"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra) |
![]() |
![]() |
![]() |
#3 |
Elite
![]() Registriert seit: 07.02.2003
Beiträge: 1.037
|
![]() 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). |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|