This comparison table gives some measures of the performance: timing uncertainties, external event handling (interrupts) and operating system calls. These figures should not be taken as representative of real performance, but they do serve to illustrate that the flexibility, capability, accessibility and reliability of Stella have been achieved without sacrificing efficiency.
Benchmark figures for operating systems can be very misleading. Some suppliers quote "sub-microsecond" context switch times without drawing attention to the tens of microseconds it takes to select the new context. Many operating systems rely on mutual exclusion mechanisms for resource protection. With this type of system, additional overheads are incurred when the shared resource is already in use at the time an operating system call is made. Benchmark figures for these systems rarely include this overhead. As Stella does not use mutual exclusion for protection, its timing uncertainties are very small.
The worst case timings for Stella are given in nominal instructions: the time taken by a given processor multiplied by the nominal MIPs rating of the processor. For comparison, best case timings are given for VxWorks: the self proclaimed "leader" in real time systems.
Stella1 | VxWorks2 | ||
Uncertainty | Worst case interrupt latency3 | <= 6 | <= 30 |
Scheduled task timing uncertainty | <= 304 | n*9805 (n>=1) | |
Response | OS overhead on interrupt server6 | <= 22 | >= 57 |
External event handling time7 | <= 158 | >= 4109 | |
OS call | Simple OS call (by trap / interrupt)10 | <= 30 | |
Allocate and release 1 byte of memory11 | <= 45 | >= 94012 | |
Release, reschedule and despatch13 | <= 8514 | >= 320 |
1  | "Instructions" for MC68020 (~3 MIPs at 20 MHz) cache clear, worst case timing. |
2 | "Instructions" for MC68020 (~3.75 MIPs at 25 MHz) or MC68030 (~5 MIPs at 25 MHz) best case timing. Benchmark figures given by Wind River Systems, 1993. |
3 | The worst case interrupt latency is the longest period for which interrupts are disabled. |
4 | This is the longest operation with the scheduler disabled in Stella -A modules. Other modules achieve higher efficiency at the expense of increased scheduler uncertainty. |
5 | This is the difference between the best and contention cases for taking a semaphore. "n" depends on the number and structure of the semaphores used. When calculating worst case timings, this uncertainty must be added to all scheduled task response times and to all semaphore protected operations. |
6 | This is the operating system overhead on an interrupt server that needs to interface to the operating system. It includes operations such as saving and restoring registers. |
7 | This figure is for a "typical" event handler incorporating initiation, completion and three operations: service hardware + queue data + notify (release) data handling task. |
8 | For the test, the External Event Manager deadline scheduler sustained 200 k events/s for a mix of 17 external event handlers and 11 internal event handlers using a MC68020 at 20 MHz. It guaranteed deadlines from 15 µs to 600 ms with individual repetition periods down to 10 µs. |
9 | Isolated interrupt benchmark figure. |
10 | Null operation with transition to privileged mode. VxWorks does not have privilege management. |
11 | This minimum memory allocation is an unrealistic, though common, measure of performance. |
12 | VxWorks best case memory allocation is untypical: a normal RTOS is 2-3 times faster. |
13 | Delay from a notification (release job request) to the execution of high priority job. |
14 | Stella P scheduler, level 0, 25 jobs. |