Download Bluebus

Transcript
Bluebus – Protocol Conversion for Wireless Data Exchange
Priority inversion handling
Priority inversion is an event where a task is preventing a higher priority task from
running, thus inverting the threads’ priorities. It can be bounded or unbounded.
An example of bounded priority inversion is where a low priority task is holding a
shared resource that a high priority task wants. This is bounded in time as the high
priority task can continue to run as soon as the low priority task releases the
resource (the time required for this to happen is short, or there is something
seriously wrong with the design of the program).
Unbounded priority inversion can occur in a similar manner; a low priority task is
holding a shared resource that a high priority task wants. In the meantime, a
middle priority task is preventing the low level task from running.
Here, the middle level task gets the highest effective priority and could continue to
run indefinitely.
The first case is rather impossible to avoid in a preemptive multitasking system
where there are shared resources, while the second must be avoided (Mason,
1998). If/how this is handled in the RTOS is of great interest.
Interprocess communication / Synchronization
The methods available for interprocess communication and for synchronizing the
activity of different tasks should preferably be many. In a large selection it is more
probable to find one that fits a particular case.
Interrupt handling
How interrupts are handled are of great interest. Are nested interrupts allowed?
Can interrupt handlers have priorities too, or are all other interrupts masked when
in an interrupt handler?
Reaction time
How long is the worst-case time between an external event and the start of a task?
Memory protection
Is there memory protection preventing a thread from destroying another threads
code/data?
Development tools
What kinds of development environments are available for the RTOS? Ideally, it
should be possible to use toolsets from different vendors for development.
Access to source code
Many RTOS are delivered as a precompiled library that is linked with the
application, preventing access to the source code. In some cases it is possible to
get access to the source for a large sum of money. The ideal here would be free
access to the source.
61