Interactive multimedia applications are becoming ubiquitous. These applications often have real-time requirements that are very different from conventional interactive and batch applications that have been the mainstay of the general-purpose computing environment. To support these applications effectively together with conventional applications, effective resource management mechanisms and policies must be developed.
As a first step in addressing these issues, we have created SMART, a Scheduler for Multimedia And Real-Time applications. SMART explicitly supports the time constraints of applications with real-time requirements, and provides dynamic feedback to these applications to allow them to adapt their performance based on the availability of processor cycles. It is unique in its ability to make efficient use of processor cycles in meeting real-time requirements under a dynamically varying system load, even in the absence of admission control policies when the system is overloaded. In addition, the support for applications with real-time requirements is integrated with the support for applications without real-time requirements. This allows SMART to provide uniform controls that allow users to prioritize or proportionally allocate processor cycles across all applications, regardless of whether or not they have real-time requirements. We have implemented SMART in a commercial operating system and measured its performance against other schedulers in executing applications with and without real-time requirements, including continuous media, interactive, and batch applications. Our results demonstrate SMART's ability to provide superior performance for multimedia applications.