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 

Race Conditions



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!

25.08.2010, 19:14
Beitrag #32

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.704
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Race Conditions
' schrieb:Aber kann das wirklch passieren, wenn die For-Schleife gar kein Wait enthält? In einem Buch habe ich gelesen - und so etwas steht auch in der Hilfe zum Wait-VI - daß, wenn man wünscht, daß die CPU während der Ausführung einer Schleife gegebenenfalls die Kontrolle abgeben soll, man ein Wait mit Time=0 in die Schleife platzieren soll.
In Büchern steht viel.

"Dass die CPU ..." impliziert, dass der Prozess, der die FOR-Schleife enthält, die CPU für sich beansprucht. Dem sollte aber nicht so sein. Die CPU sollte alleine dem Betriebssystem unterliegen. Wenn das Betriebssystem also meint, es müsste jetzt ein Timesharing machen, wird der aktuelle Prozess unterbrochen, wo er gerade steht. Und steht der innerhalb einer FOR-Schleife, so wird die FOR-Schleife unterbrochen. (Diese meine Aussage impliziert nun aber, dass LV sich nicht so weit in das Betriebssystem gebohrt hat, dass es das Timesharing des Betriebssystems nicht unterdrückt. Und auch Seiteneffekte durch Multicore lass ich jetzt mal weg).

Was für die CPU gilt, gilt natürlich auch für die parallelen Tasks innerhalb von LabVIEW: Laufen mehrere Tasks parallel, macht hier das "LV-Timesharing-System" mit den Tasks genau das selbe wie das BS mit den Prozessen auf der CPU: While-Schleifen können an beliebigen Stellen unterbrochen werden.

Die Frage ist nun tatsächlich, ob dieses "Timesharing" auch für "parallele Datenflüsse" innerhalb eines Blockes gilt, also z.B. für eine FOR-Schleife, der eine CASE-Struktur parallel ist. Es anzunehmen, schadet nicht.

Das Problem bei diesem Beispiel für RaceCondition liegt in der Wahrscheinlichkeit, dass FOR-Schleife und Case-Sequenz tatsächlich zur gleichen Zeit zur Ausführung kommen. Nur dann, wenn der "Compiler" das Programm genau so übersetzt, dass beide zur gleichen Zeit zur Ausführung kämen, würde der RaceCondition-Effekt sichtbar werden. Und diese Wahrscheinlichkeit ist in dem vorliegenden Beispiel eher klein.

Zitat:Im Umkehrschluß würde das aber heißen: Wenn kein Wait oder sonstige Wartezeit in der Schleife ist, dann ist die Schleife während ihrer Ausführung nicht bereit, die Programmausführung zwischenzeitlich abzugeben.
Umkehrschlüsse haben einen Nachteil: Sie sind nur gültig für Systeme, die zu 100% bekannt sind. Und wer weis schon genau, was unter BD und FP so alles passiert - außer RolfK, der das mit der FOR_Schleifenunterbrechbarkeit bestimmt genauer weis.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
Race Conditions - eg - 22.07.2008, 09:59
Race Conditions - Y-P - 22.07.2008, 12:15
Race Conditions - eg - 22.07.2008, 12:39
Race Conditions - Y-P - 22.07.2008, 13:40
Race Conditions - eg - 22.07.2008, 13:47
Race Conditions - Y-P - 22.07.2008, 13:52
Race Conditions - eg - 22.07.2008, 14:12
Race Conditions - Y-P - 22.07.2008, 14:55
Race Conditions - eg - 22.07.2008, 15:02
Race Conditions - Y-P - 22.07.2008, 15:11
Race Conditions - eg - 22.07.2008, 15:15
Race Conditions - Y-P - 22.07.2008, 15:38
Race Conditions - IchSelbst - 23.07.2008, 08:06
Race Conditions - eg - 23.07.2008, 09:40
Race Conditions - IchSelbst - 23.07.2008, 09:55
Race Conditions - deicebear - 25.08.2010, 08:30
Race Conditions - IchSelbst - 25.08.2010, 09:08
Race Conditions - Lucki - 25.08.2010, 11:01
Race Conditions - dimitri84 - 25.08.2010, 11:32
Race Conditions - deicebear - 25.08.2010, 14:10
Race Conditions - dimitri84 - 25.08.2010, 14:13
Race Conditions - Lucki - 25.08.2010, 14:57
Race Conditions - jg - 25.08.2010, 15:04
Race Conditions - IchSelbst - 25.08.2010, 15:49
Race Conditions - Lucki - 25.08.2010, 17:16
Race Conditions - TSC - 25.08.2010, 17:25
Race Conditions - Lucki - 25.08.2010, 18:19
Race Conditions - TSC - 25.08.2010, 18:36
Race Conditions - schrotti - 25.08.2010, 19:03
Race Conditions - TSC - 25.08.2010, 19:06
Race Conditions - schrotti - 25.08.2010, 19:12
Race Conditions - IchSelbst - 25.08.2010 19:14
Race Conditions - TSC - 25.08.2010, 19:23
Race Conditions - schrotti - 25.08.2010, 20:11
Race Conditions - deicebear - 26.08.2010, 09:13
Race Conditions - TSC - 26.08.2010, 09:21
Race Conditions - Lucki - 26.08.2010, 09:58

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Question Schalter deaktivieren führt zu race condition, wie umgeht man das? TpunktN 4 3.977 12.05.2021 09:18
Letzter Beitrag: TpunktN
  Race Condition Eisbär 8 6.592 02.01.2016 20:22
Letzter Beitrag: Lucki
  UDP-Steuerung (Race Condition) nurso 4 4.485 01.09.2015 14:17
Letzter Beitrag: nurso
  "Race-Conditions"?! vermeiden/beheben TSC 12 11.898 24.04.2009 14:48
Letzter Beitrag: TSC

Gehe zu: