Next: Interrupts
Up: VxWorks
Previous: VxWorks
Bei einem Echtzeitbetriebsystem besteht eine Anwendung in der Regel aus mehreren unabhängigen Programmteilen. Werden diese Programmteile vom Prozessor ausgeführt, werden sie Task genannt.
Jeder Task benötigt dazu Systemressourcen, wie z.B. Rechenzeit oder Speicherplatz.
Abbildung 2.24:
Taskzustände und Übergänge

Quelle: [26], Seite 28
|
Ein Task kann fünf Zustände einnehmen:
- EXECUTING. Der Task wird ausgeführt. Er besitzt die Rechenleistung des Prozessors.
- READY. Der Task wartet auf keine Systemressourcen außer der Rechenzeit und kann ausgeführt werden.
- PENDED. Der Task ist blockiert, weil er auf eine Systemressource wartet.
- DELAYED. Der Task schläft für eine bestimmte Zeitdauer.
- SUSPENDED. Der Task kann nicht ausgeführt werden. Zustandswechsel sind jedoch möglich. Dieser Zustand wird hauptsächlich zum so genannten Debuggen verwendet.
Jedem Task, der sich im Zustand READY befindet, kann durch Zuweisen von Rechenzeit in den Zusand EXECUTING wechseln. In Abbildung 2.24 werden die anderen möglich Übergänge zwischen den Zuständen gezeigt. In VxWorks existieren zwei Prinzipien wie die Rechenzeit des Prozessors unter den einzelnen Tasks verteilt wird:
- Preemptive-Priority-Scheduling. Jeder Task besitzt eine Priorität. Der Task mit der höchsten Priorität wird ausgeführt. Andere Tasks mit niedriger Priorität werden notfalls unterbrochen.
- Round-Robin-Scheduling. Bei Tasks mit gleicher Priorität, wird die Rechenzeit gerecht unter den Tasks aufgeteilt. Jeder Task bekommt einen Zeitschlitz zugeordnet, in dem er ausgeführt wird.
Next: Interrupts
Up: VxWorks
Previous: VxWorks
Thorsten Thormaehlen
2000-03-27