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: A RTOS (Real-Time Operating System) has to be multi-threaded and preemptible. The notion of thread priority has to exist as there is for the moment no deadline driven OS (Operating System). The OS (Operating System) has to support predictable thread synchronisation mechanisms A system of priority inheritance has to exist OS (Operating System) Behaviour should be known So the following figures should be clearly given by the OS (Operating System) manufacturer: the interrupt latency (i.e. (in other words) 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. for every system call, the maximum time it takes. It should be predictable and independent from the number of objects in the system; the maximum time the OS (Operating System) and drivers mask the interrupts. System Interrupt Levels. Device driver IRQ (Interrupt request) 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: lmbench interrupt latency TCP/IP Performance TCP/IP CPU utilization on blackfin Other Benchmarks Dhrystone Whetstone nbench netperf Crypto++ Library