' schrieb:Also Allgemein kann man ja sagen bekommt Labview vom Betriebsystem einen virtuellen Speicher zugeteilt ... ist dieser voll beginnt Labview auszulagern und endet daher meist in einem Absturz.
Bist du sicher, dass LV auslagert und nicht das Betriebssystem?
LV hat nur einen einzigen linearen Speicherbereich. Den organisiert LV selbstverständlich selbst. Abstürze entstehen weniger wegen Anwenderfehlern, vielmehr glaube ich in deinem Falle an einen mangelhaften Speichermanager in LV.
Zitat:Betrachtet man nun nur mal einzeln die Producerschleife d.h wo sich auch die DAQ befindet so wird ein Block an Daten in eine Queue geschrieben während dessen läuft jedoch die Datenaufnahme weiter d.h die Daten werden in einen Buffer der DAQ geschrieben.
Ja.
Zitat:Wenn die Daten jedoch jetzt z.b nicht vom Consumer abgeholt werden ... wird die Queue voll geschrieben ... was passiert mit dem Buffer der DAQ ... ? Bzw. wird der Buffer nicht so und so immer mehr vollgeschrieben ... ?
Der Puffer im DAQ kann schon voll werden. Das kann aber - normalerweise - nicht zu einem Absturz, vielmehr nur zu Datenverlust führen. Das selbe gilt selbstverständlich auch für den Puffer der Queue - voll ja, abstürzen deswegen nicht.
Was du natürlich so wie so machen musst, ist eine Daumenpeilung, ob dir alle Puffer groß genug sind. Ich würde alle Puffer, also auch die der Queue, auf ein Maximum setzen. Wird das überschritten, müssen Daten überschrieben, also verloren gehen. Um letzterem vorzubeugen, muss man natürlich das Programm so schreiben, dass die Datenverarbeitung (also das Lesen aus den Puffern) schneller geht als das Daten-Zur-Verfügung stellen.