Let us try to outline some pitfalls of the Linux scheduler. As it will turnout, some of these limitations become significant on large systems with manyusers. On a single workstation that is running a few tens of processes ata time, the Linux scheduler is quite efficient. Since Linux was born on anIntel 80386 and continues to be most popular in the PC world, we considerthe current Linux scheduler quite appropriate.
Future versions of Linux will likely address this problem, either by implementingSVR4's "fixed preemption points" or by making the kernel fully preemptive.
* kernel preemption is just one of several necessary
conditions forimplementing an effective real-time scheduler.
* real-time processes often must use resourcesalso needed by conventional
processes.
* A real-time process may thus end upwaiting until a lower-priority
process releases some resource. This phenomenonis called
priority inversion.
* A real-timeprocess could require a kernel service that is granted
on behalf of anotherlower-priority process (for example, a kernel thread).
This phenomenon iscalled hidden scheduling.
An effective real-timescheduler should address and resolve such problems.