User`s manual
SCIOPTA - Real-Time Kernel
User’s Manual Manual Version 4.1 6-9
SCIOPTA - Real-Time Kernel
6 Messages
6.10 Message Passing and Scheduling
SCIOPTA uses the preemptive prioritized scheduling for all prioritized process types. Timer process are scheduled
on a cyclic base at well defined time intervals.
The prioritized process with the highest priority is runni
ng (owning the CPU). SCIOPTA is maintaining a list of
all prioritized processes which are ready. If the running process becomes not ready (i.e. waiting on at a message
receive which has not yet arrived) SCIOPTA will activate the next prioritized process with the highest priority. If
there are more than one processes on the same priority ready SCIOPTA will activate the process which became
ready in a first-in-first-out methodology.
Interrupt and timer process will always preempt
prioritized processes. The intercepted prioritized process will be
swapped in again when the interrupting system on the higher priority has terminated.
Timer processes run on the tick-level of the operating system.
The SCIOPTA kernel will do a re-scheduling at every, receive call, transmit call, process yield call, trigge
r wait
call, sleep call and all system time-out which have elapsed.
Figure 6-8: Scheduling Sequence Example
Prioritized Prioritized
sc_msgRx
Process 1 Process 2
Prioritized
Process 3
Timer
Process
Interrupt
Process
priority 10
priority 11 priority 12 interrupt
priority 8
interrupt
priority 6
Message not in input
queue. Process now
swapped out and waiting.
sc_sleep(3)
Sleeping for 3 ticks. Process
now swapped out and waiting.
tick
tick+1
tick+2
tick+3
tick+4
Will be activated
every third tick.
interrupt
return
interrupt
return
interrupt
return
Sleeping of three tick expired.
Process ready and swapped in.
Message now arrived
and received. Process
ready and swapped in.
3 ticks










