It is important that desktop CPU schedulers support soft-real time processing now that multimedia applications have become ubiquitous on desktop computers. They must also gracefully handle mixes of applications with different timing requirements. The best-effort scheduling provided by desktop systems is easy to use, provides a reasonable trade-off between fairness and responsiveness, and imposes no extra overhead for specifying application resource needs. However, these schedulers provide no resource or timeliness guarantees, limiting their ability to support applications with deadlines [10]. To better support soft real-time applications, while recognizing that the best-effort model permeates desktop computing for very good reasons, we are developing the Best-effort scheduler Enhanced for Soft real-time Time-sharing (BEST). BEST transparently provides significantly improved support for periodic soft real-time (SRT) processes while retaining the well-behaved default characteristics of best-effort schedulers. By observing the times at which processes enter the ready queue, BEST dynamically estimates a period for each process exhibiting periodic behavior, assigns appropriate pseudo-periods for non-periodic processes, and schedules all processes using earliest deadline first (EDF) [7]. This boosts the performance of periodic processes while preserving the behavior of traditional best-effort schedulers for non-periodic processes. The result is a multi-class best-effort scheduler that handles CPU-intensive, I/O-intensive, and periodic SRT processes using a single scheduling algorithm. Our preliminary results demonstrate that without any a priori knowledge of the SRT applications, BEST outperforms the Linux scheduler in handling SRT processes, outperforms real-time schedulers in handling best-effort processes, and sometimes outperforms both. Section 2 discusses the design and implementation of BEST, Section 3 presents our preliminary results, and Section 4 presents some concluding remarks.
[1]
David Mosberger,et al.
Bert: a scheduler for best-effort and realtime paths
,
1998
.
[2]
Jason Nieh,et al.
The design, implementation and evaluation of SMART: a scheduler for multimedia applications
,
2001
.
[3]
Michael B. Jones,et al.
An overview of the Rialto real-time architecture
,
1996,
EW 7.
[4]
Robert Magnus,et al.
Linux Kernel Internals
,
1996
.
[5]
Kevin Jeffay,et al.
A Rate-Based Execution Abstraction for Multimedia Computing
,
1995,
NOSSDAV.
[6]
Kenneth J. Duda,et al.
Borrowed-virtual-time (BVT) scheduling: supporting latency-sensitive threads in a general-purpose scheduler
,
2000,
OPSR.
[7]
Keith Bostic,et al.
The design and implementa-tion of the 4.4BSD operating system
,
1996
.
[8]
Stefan Savage,et al.
Processor capacity reserves: operating system support for multimedia applications
,
1994,
1994 Proceedings of IEEE International Conference on Multimedia Computing and Systems.
[9]
Hideyuki Tokuda,et al.
Real-Time Mach: Towards a Predictable Real-Time System
,
1990,
USENIX MACH Symposium.
[10]
J. Duane Northcutt,et al.
SVR4UNIX Scheduler Unacceptable for Multimedia Applications
,
1993,
NOSSDAV.