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

Re: Threads und Tasks Kategorie: Programmierung (von André H. - 15.06.2004 13:33)
Als Antwort auf Threads und Tasks von Micha - 14.06.2004 11:15
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT_V2, OSOPT V3.0
Hallo Micha,

> mit der C-Control ist es möglich einzelne Threads zu programmieren. Besteht auch die Möglichkeit
> verschiedene Scheduling Verfahren zu realisieren?
> Wenn ja, gibt es darüber irgendwo Informationen?

Die CC2 unterstützt nur Multithreading, jedoch kein Multitasking.
Beim OS wird ein eigenes Sheduling-Verfahren eingesetzt, welches nicht auf
einer Zeitscheibe basiert.
�ndern lässt sich dies nicht, da es der Kern des OS ist. Auch wäre es hier um einiges
komplizierter zu versuchen mit einer Zeitscheibe zu arbeiten.

Threads beim OS der CC2 laufen(nach dem Starten durch run) mit
der Standard-Priorität von 32, welche durch
die Anweisungen run, halt, resume und reset beeinflusst werden kann.

Die Priorität entspricht der Anzahl an VM-Codes welche pro Durchgang ausgeführt werden,
bevor der nächste Thread dran ist.
Die Priorität kann Werte von 0 bis 255 haben, wobei bei 0 der Thread angehalten wird.
Die Priorität 32 bedeutet also 32 VM-Instruktionen pro Durchlauf.
Es kann jedoch auch schon früher zu einem Threadwechsel kommen, wenn z.B.
yield, sleep oder wait verwendet wird.
Da die einzelnen VM-Instruktionen unterschiedlich Zeit benötigen - das Afragen von AD-Ports
dauert z.B. am längsten - , kann man einem Thread keine Rechnzeit als Zeitspanne zuteilen.

Als Beispiel:
ports.set(0,1);
Diese Zeile benötigt 3 VM-Instruktionen:
Wert 0 auf Threadstack pushen
Wert 1 auf Threadstack pushen
Port setzen.
Als Inline-Funktionen würde dies so aussehen:
  inline vmcodes.VM_LOAD_IMMEDIATE_INT;
  inline 0;
  inline vmcodes.VM_LOAD_IMMEDIATE_INT;
  inline 1;
  inline vmcodes.VM_SET_SINGLE_PORT;

Eine VM-Instruktion kann aus 2 oder 4 Byte bestehen.

Ich hoffe, ich habe ein wenig Licht ins dunkle gebracht. :-)
Die Besten Infos zur VM bekommt man im Handbuch der CC2.
(Und wenn man sich durch das OS und den VMC-Dateien durchwühlt :-) )

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: