Real Time in a Real Operating System, Plan 9 From Bell Labs

By Sape J. Mullender and Pierre G. Jansen

It is the doctrine of real-time support in a general-purpose operating system that will, in this paper, be stamped with ecclesiastical authority.

We have integrated a real-time CPU scheduler in our operating system Plan 9 [7]. Although our scheduler is a new scheduler in terms of sharing the operating system resources, it has its fundaments in the EDF scheduler as first introduced by Liu and Layland [6]. Instead of only considering the CPU resource, our scheduler also considers other shared OS resources: applications indicate which resources they require (including processor use), and our scheduler determines if the set of applications can run concurrently and remain schedulable.

Although other operating systems may also have real-time support, we believe there are only few general-purpose operating systems with a comparable native support for real-time applications.

In many embedded systems, some applications have stringent real-time requirements, while others can be best effort. Traditionally, general-purpose operating systems have never been good at guaranteeing deadlines. Various attempts have been made to introduce real-time schedulers to general-purpose operating systems. A few systems deal with real-time applications by shutting out other applications (the general modus operandi for the Windows family of operating systems).