world leader in high performance signal processing
Trace: » measuring_kernel_performance

Real Time Performance

While there are many requirements of an embedded operating system - the one that attracts the most attention is real time performance. Others, which can not be left out are:

  • good documentation
  • good tools to develop and debug your applications
  • good tools to tune or profile your application
  • good support

Even though figures like the Interrupt latency, Context switch time are important, there are other parameters that will determine if an Operating System will make a good canidate for your real time requirements. For example a RTOS supporting many devices or networking will have more advantages than a simple very good nano-kernel.

Since there are several definitions of real-time, most of them contradictory, we will use the one from Donald Gillies, which is in the Comp.realtime FAQ:

"A real-time system is one in which the correctness of the computations not
only depends upon the logical correctness of the computation but also upon
the time at which the result is produced. If the timing constraints of the
system are not met, system failure is said to have occurred."

According to the Comp.realtime FAQ what makes an Operating System an real time operating system are the following:

  1. A RTOS (Real-Time Operating System) has to be multi-threaded and preemptible.
  2. The notion of thread priority has to exist as there is for the moment no deadline driven OS.
  3. The OS has to support predictable thread synchronisation mechanisms
  4. A system of priority inheritance has to exist
  5. OS Behaviour should be known

So the following figures should be clearly given by the OS manufacturer:

  1. the interrupt latency (i.e. time from interrupt to task run) : this has to be compatible with application requirements and has to be predictable. This value depends on the number of simultaneous pending interrupts.
  2. for every system call, the maximum time it takes. It should be predictable and independent from the number of objects in the system;
  3. the maximum time the OS and drivers mask the interrupts.
  4. System Interrupt Levels.
  5. Device driver IRQ Levels, maximum time they take, etc.

To determine how real time, uclinux is, we will try to provide the requirements stated above with some standard, and custom tools:

TCP/IP Performance

Other Benchmarks

Complete Table of Contents/Topics