Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Langzeitstabilität der CC2-Station? Kategorie: CC2-Unit & Appl.Board / CC2-Station (von Ralf - 25.02.2004 0:01)
Als Antwort auf Re: Langzeitstabilität der CC2-Station? von Frank - 23.02.2004 11:50

Hallo Frank

( sun ist eine globale long-Variable )
      capture glob.cFlag;
      glob.sun = 0;
      release;

Nach einem capture mu� mit release das Multitasking so schnell wie möglich wieder frei gegeben
werden.
Dieses Verfahren ist erforderlich, wenn über globale Variablen Daten zwischen Threads ausgetauscht
werden. Wenn es möglich ist, dass zwei Threads gleichzeitig auf die Variable zugreifen, einer zum
lesen, der andere zum schreiben, dann tun sie das auch irgend wann mal, das ist sicher.  
Bei so einem Fehler hat z.B Thread xy gerade in  Byte 3 und Byte 2 der Variable einen Teil
vom neuen Wert eingetragen und dann wird umgeschaltet auf Thread z. Von Thread z wird gerade
jetzt die Variable gelesen, und schon existiert ein Wert, den es so gar nicht geben dürfte.

Eins von beiden mu� dann geschützt werden: Die Lese- oder die Schreibzugriffe. Man wird
die Schreibzugriffe schützen, wenn sie von verschiedenen Threads ausgeführt werden und/oder
wenn die Zahl der Lesezugriffe grö�er ist als die der Schreibzugriffe. Nur wenn von einem Thread
relativ wenig Lesezugriffe erfolgen und viele Schreibzugriffe in EINEM Thread (nacheinander)
ausgeführt werden, wird man den/die Lesezugriffe schützen.  

Bei Hardwarezugriffen ist es ähnlich (wenn die Treiber nicht schon gecapturet sind, da muss Du
Dir die Funktionen mal genau ansehen).

Beim Fehlersuchen kannst Du capture/release ruhig verstreuen wie Salz. Noch besser ist: Andere
Threads erstmal abzuschalten um zu gucken, was passiert dann.

Viele Grü�e
Ralf



> Hallo Ralf!
>
> Vielleicht löst das ja auch mein Problem, wäre zu schön um wahr zu sein. Du hast wirklich jeden
> Zugriff auf eine globale Variable geschützt? Könntest Du mir vielleicht mal Auszüge Deines
>  Programms zeigen? Würd mich mal interessieren, wie die das nun genau gemacht hast? Will ja nun
> auch keine capture/release verstreuen wie das Salz in der Suppe.
>
> Besten Dank im Voraus,
> Frank


    Antwort schreiben


Antworten:

Re: Langzeitstabilität der CC2-Station? (von Olaf - 26.02.2004 12:25)
    Re: Langzeitstabilität der CC2-Station? (von Frank - 26.02.2004 13:47)
Re: Langzeitstabilität der CC2-Station? (von Frank - 25.02.2004 10:10)
    Re: Langzeitstabilität der CC2-Station? (von Ralf - 26.02.2004 0:16)