Real-time software applications consist of multiple tasks or threads, each performing a portion of the system’s workload under the management of a real-time operating system (RTOS). In a real-time system, a thread’s priority reflects the relative urgency of its work, and RTOSes strive at all times to run the most urgent work that needs to be performed.
A preemptive scheduling RTOS will always run the highest priority thread that is ready to run. But, the ultimate goal of many real-time systems is throughput – the more packets processed, bytes streamed, frames rendered per second, the better.
Read the article (PDF)