02.12.2012, 23:23
Hallo,
ich habe ein VI erstellt (siehe VI2.png). Dort gibt es zwei Indicators.
Jeder der beiden Indicators ist in einer while Schleife. Der aktuelle i Wert
wird im Indicator ausgegeben.
Ich habe eine Intel Core 2 Duo CPU. Das bedeutet ich einen einen Prozessor mit zwei Kernen.
Wenn ich nun die beiden while Schleifen starte beträgt die CPU Auslastung 100 Prozent.
Wenn ich nur eine der beiden while Schlefen starte beträgt die CPU Auslastung 50 Prozent.
Das bedeutet jede Schleife stellt einen Thread dar. Jeder Thread bekommt einen Prozessorkern zugewiesen.
Das passt also soweit alles.
Nun habe ich ein weiteres VI erstellt (siehe VI1.png). Darin habe ich eine while
Schleife mit einem Signalverlaufsdiagramm. Die Werte bezieht das Diagramm aus
der i Varialben der while Schleife.
Wenn ich nun das Programm starte, dann beträgt die CPU Auslastung ungefähr 75%.
Das verstehe ich nun nicht. Ich hätte jetzt erwartet, dass die while Schleife einen
einzigen Thread wieder darstellt. Das heißt nur einer der beiden Prozessorkerne dürfte
mit der Abarbeitung des Programms beschäftigt sein. Wie kann es sein dass ein
Thread auf zwei Kernen arbeitet? Nach meinem Verständnis dürfte die CPU Auslastung nur
50% betragen. Es müsste nämlich einer der beiden Prozessorkerne zu 100% ausgelastet sein
und der zweite Prozessorkern zu 0%. Wieso ist dem nicht so?
ich habe ein VI erstellt (siehe VI2.png). Dort gibt es zwei Indicators.
Jeder der beiden Indicators ist in einer while Schleife. Der aktuelle i Wert
wird im Indicator ausgegeben.
Ich habe eine Intel Core 2 Duo CPU. Das bedeutet ich einen einen Prozessor mit zwei Kernen.
Wenn ich nun die beiden while Schleifen starte beträgt die CPU Auslastung 100 Prozent.
Wenn ich nur eine der beiden while Schlefen starte beträgt die CPU Auslastung 50 Prozent.
Das bedeutet jede Schleife stellt einen Thread dar. Jeder Thread bekommt einen Prozessorkern zugewiesen.
Das passt also soweit alles.
Nun habe ich ein weiteres VI erstellt (siehe VI1.png). Darin habe ich eine while
Schleife mit einem Signalverlaufsdiagramm. Die Werte bezieht das Diagramm aus
der i Varialben der while Schleife.
Wenn ich nun das Programm starte, dann beträgt die CPU Auslastung ungefähr 75%.
Das verstehe ich nun nicht. Ich hätte jetzt erwartet, dass die while Schleife einen
einzigen Thread wieder darstellt. Das heißt nur einer der beiden Prozessorkerne dürfte
mit der Abarbeitung des Programms beschäftigt sein. Wie kann es sein dass ein
Thread auf zwei Kernen arbeitet? Nach meinem Verständnis dürfte die CPU Auslastung nur
50% betragen. Es müsste nämlich einer der beiden Prozessorkerne zu 100% ausgelastet sein
und der zweite Prozessorkern zu 0%. Wieso ist dem nicht so?