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

Re: Synchronisierung Kategorie: Programmierung (von KlaRa - 26.10.2005 13:37)
Als Antwort auf Synchronisierung von Christian Jost - 26.10.2005 10:37
Ich nutze:
C-Control II Unit, CC2-Application-Board, original OS
Hallo,
ich Denke, so lang Du nur einen Wert auf False setzt, wird nichts negatives passieren. Im extremsten
Fall wird der Variablenwert zweimal hintereinander gesetzt. Ich denke nicht das die Variablenverwaltung
der CC2 so verfeinert ist, dass sie eine Variable zum Ă?ndern sperrt. Es wird wohl nur der Zeiger auf den
Speicherplatz geholt und dort hineingeschrieben.
Anders ist es wenn man Werte zuverlässig inkremieren möchte. Dann muss man sicher mit capture
arbeiten.

Gruss Klaus.

> Hallo,
>
> Ich hätte ein paar Fragen zur Synchronisierung:
>
> 1)
> Ich habe 4 Worker-Threads. Sobald einer fertig ist, soll dieser ein globales Flag setzen:
>
> int ready;
> ...
> ready = TRUE;
>

> Ein anderer Thread fĂĽhrt folgendes aus:
>
> loop
> {
>   wait ready;
>   ready = FALSE;
>   ...
> }
>

> Kann die virtuelle Maschine durcheinander geraten (=Absturz), wenn zwei Threads "gleichzeitig"
> versuchen auf dieselbe Variable zuzugreifen? Es spielt keine rolle ob das Flag mehrmals gesetzt
> wird oder von wem es gesetzt wird. Es ist einfach wichtig dass es gesetzt wird.
> Ich möchte für diesen Fall kein capture/release benutzen um die Programmausführung nicht durch
> Wartezustände zu verlangsamen.
>
>
> 2)
> wenn ich durch run 255 die Priorität erhöhe, so wirkt sich das sofort aus oder erst
> nach dem nächsten Thread-Wechsel?
> Ich denke da an folgende Anwendung fĂĽr einen Ringbuffer:
>
> run 255;
> capture sema;
> bufCount = (bufCount + 1);
> release;
> resume;
>

> Ziel ist auch hier wieder möglichst wenig zu blockieren.
>
>
> 3)
> In diesem Eintrag: 11080
> hat André H. geschrieben, dass andere Threads immer lesend auf Variablen zugreifen dürfen
> (ohne capture) wenn sie nur von einem Thread verändert werden.
> Gilt das auch fĂĽr long, float und string oder nur fĂĽr byte/int?
>
>
> Besten Dank fĂĽr eure Hilfe.
>
> Gruss,
> Chris
>
>


    Antwort schreiben


Antworten:

Re: Synchronisierung (von Christian Jost - 28.10.2005 20:01)