preemptive und Interrupt

OP #1535884
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.