AQUA: an adaptive quality of service architecture for distributed multimedia applications
Lakshman Krishnamurthy · 1997
Multimedia applications demand predictable quality of service (QoS) and access to endsystem and network resources. For example, a network-based video player must be able to execute thirty times a second and must obtain the necessary amount of CPU time, memory, bus bandwidth, and network bandwidth to be able to receive a compressed video stream, uncompress it, and display it without any glitches. Operating systems (OS) and network resources must be managed to deliver predictable QoS. The problem of providing predictable QoS to multimedia applications in a general-purpose OS is challenging for several reasons. First, an application's resource requirements cannot be estimated in advance and tend to vary significantly during its lifetime. Second, the amount of available resources on an endsystem changes dynamically at run time. Third, applications need simultaneous access to several resources to accomplish a task; these resources must be managed in an integrated fashion to deliver the desired QoS. This research studies the characteristics and requirements of multimedia applications and observes that these applications are flexible in their resource requirements and are amenable to graceful adaptation when required resources are in short supply. Based on these observations, this these proposes a unifying software architecture for resource management to deliver predictable QoS guarantees to multimedia applications. The new architecture, called AQUA (Adaptive QUality of Service Architecture), is based on an innovative, cooperative model of resource management. In AQUA, applications specify their resource requirements in advance, but may provide only a partial QoS specification. The OS allocates the requested resource(s) based on an estimate of available resources. As the application's resource requirements or the resource availability changes at run time, applications and the OS renegotiate resource allocations to ensure predictable service within the constraints of available resources. Applications are expected to dynamically adapt when adequate resources are not available or additional resources become available. For each resource producer, AQUA typically includes two components, a resource controller and a resource scheduler. Resource consumers use a QoS manager that estimates resource needs and negotiates on their behalf. A resource-independent negotiation library allows resource negotiation, and a usage-estimation library provides a resource-independent interface to estimate resource usage and QoS delivery. These components spare an application programmer the burden of handling the details of QoS negotiation. AQUA has been implemented and evaluated in a network of Sun Workstations running Solaris 2.4 interconnected using FORE ATM switches. AQUA has been applied to resources such as the CPU, the network-I/O resource, the ATM network, and the display colormap. The thesis explores how applications can manage multiple resources in an integrated fashion, and how AQUA can be used to implement a QoS-aware a World Wide Web. Our experimental evaluation demonstrates the viability and versatility of AQUA in providing predictable QoS and access to endsystem resources. A key contribution of our work is the cooperative model of organizing applications and resource providers to achieve predictable QoS in a dynamic and adaptive fashion. In the process of applying the framework to resources in a commercial OS, we discovered many shortcomings of existing systems in resource management and have developed pragmatic approaches to solve these problems.