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 | ||
| ||
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: |