INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Pausieren von parallel ablaufenden Producer/Consumer Schleifen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

16.06.2010, 10:05
Beitrag #1

Aleph1 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 51
Registriert seit: Sep 2005

7.1 + 8.6.1
2005
de_en

69120
Deutschland
Pausieren von parallel ablaufenden Producer/Consumer Schleifen
Hallo miteinander,
in den nächsten Tagen werde ich mit einem Producer/Consumer-Projekt beginne und plane gerade meine Programmstruktur mittels Multicoreprozessor.
Folgendes wird prgrammiert:
Über Prozessor 1 nehme ich Daten auf, die ich in eine Queue schreiben werde (werden große Datenmengen)
Prozessor 2 muss diese Daten zwischenverarbeiten
Prozessor 3 soll für die abspeicherung in Binärfiles zuständig sein.
Dafür möchte ich 3 parallel ablaufende Timed-loops verwenden, um die unterschiedlichen Prozessorkerne verwenden zu können.

Die Messungen sollen dabei ohne personelle Überwachung prakatisch beliebig lange ablaufen können (über Nacht ist standard).
Jetzt sehe ich ein Problem auf mich zukommen:
Tendenziell kann Prozessor 1 schneller Daten aufnehmen, als Prozessor 2 verarbeiten kann - zumindest ist das im Bereich des Möglichen - und damit kann über lange Zeiträume gesehen die Queue langsam vollaufen. Genau das möchte ich nun vermeiden und hier kommt nun meine Frage:
Wie schaffe ich es, abhängig von der Anzahl der Queueelemente bzw. Speicherbelegung der Queue (in MB) , Prozess 1 (Datenaufnahme) pausieren zu lassen so dass Prozess 2 erstmal die Daten weiter verarbeiten kann? Ich würde auch, sobald die Pause-Bedingung eintritt, solange warten wollen, bis Prozess 2 die Queue vollständig abgearbeitet hat. Das ganze am besten ohne lokale Variablen oder an ähnlichen Quatsch. Ich will das richtig sauber programmieren.
Leider hab ich noch keine Codefragmente erstellt und kann daher nix mit anhängen.
Hat jemand eine Idee? Sehe ich den Wald vor lauter Bäumen nicht?

Dank und Gruß
Karl
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
Pausieren von parallel ablaufenden Producer/Consumer Schleifen - Aleph1 - 16.06.2010 10:05

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Rainbow Programm pausieren Kaya 14 6.770 11.09.2023 12:15
Letzter Beitrag: GerdW
  Queue verwendung in komplexer Producer/Consumer Abhängigkeit Ksanto 8 5.170 03.04.2017 20:14
Letzter Beitrag: Ksanto
  2 Schleifen parallel bedienen HTL_HL 3 4.061 12.02.2016 13:05
Letzter Beitrag: Lucki
  Mehrere Schleifen parallel ausführen! houss 7 12.248 06.08.2013 14:41
Letzter Beitrag: houss
  Producer/Consumer? Neon88 2 4.777 12.09.2012 17:07
Letzter Beitrag: Neon88
  VI pausieren ohne Blockdiagramm anzuzeigen 052ftemu 4 4.499 27.06.2012 16:34
Letzter Beitrag: 052ftemu

Gehe zu: