preemptive und Interrupt

OP #1535884
Lesenswert?

Hallo,

es gibt zwei Software-Module auf einem XC164: Applikation und 
Kommunikation. Das RTOS RTX166 Tiny wird dafür eingesetzt. Zwei 
Mitarbeiter sollen jeweils an einem Modul arbeiten. Der initiale Wunsch 
ist eine Trennung der Entwicklung dieser beiden Mitarbeiter. D.h. einer 
konzentriert sich nur auf Applikation und der andere nur auf 
Kommunikation. Dieses RTOS ist nicht preemptive. Ich verstehe dies wie 
folgt:
Befehle können nicht von anderen Interrupt abgebrochen werden. Ist das 
korrekt?

Wenn so ist, braucht man sich um die Integrietät der Variablen nicht zu 
kümmern.

MfG
Senmeis
#1535897
Lesenswert?

Befehle können vom Interrupt wie üblich unterbrochen (nie "abgebrochen" 
- wie kommst Du darauf?) werden, präemptiv oder nicht.

Ein präemptives OS würde erkennen, ob ein Prozess auf das 
Interrupt-Ereignis wartet.  Falls ja, wird es nach Bearbeitung des 
Interrupts die momentane Zeitscheibe dem bisher laufenden Prozess 
entziehen und dem Prozess zuteilen, der darauf gewartet hat.

Beim nicht präemptiven OS läuft die Zeitverteilung weiter, als wäre 
nichts geschehen.  Der wartende Prozess kann erst auf das Ereignis 
reagieren, wenn er in der normalen Zeitscheiben-Reihenfolge wieder dran 
ist.
#1536067
Lesenswert?

Präemptiv und kooperativ haben aber wenig miteinander zu tun.  Natürlich 
wird ein kooperatives OS nie präemptiv sein, aber das ist schon alles. 
Vom kooperativen OS schrieb der TE aber nichts, sondern vom 
nicht-präemptiven RTOS.

Und ich frage mich auch schon bei einem nicht-präemptiven RTOS, wofür 
das „RT" überhaupt steht.  Beim kooperativen wäre es dann endgültig 
daneben.
OP #1536824
Lesenswert?

Vielen Dank für die Erklärungen.

Eigentlich haben wir bereits alle nötigen Treiber für die 
Kommunikationsseite (CAN um genau zu sein) fertiggeschrieben. Nun denke 
ich mal muss das RTOS das CAN Treiben übernehmen. D.h. unser Treiber 
muss neu angepasst werden. Wie aufwendig ist diese Anpassung?

MfG
Senmeis

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren