Distributed Adaptive Scheduler for QoS Support in Compose|Q Shivajit Mohapatra & Nalini Venkatasubramanian University of California, Irvine {mopy,nalini}@ics.uci.edu Abstract In this paper, we present the design and implementa- tion details of a flexible reflective scheduling framework, that supports conjunctive scheduling of both tasks and messages within a distributed message based environ- ment. In future, distributed environments will need to fine tune their systems to provide diverse services, often- times implementing dissimilar policies and functionality. We understand that future distributed systems would re- quire their schedulers to be tailor-made or customizable to suit the diverse workloads at different times. The framework is therefore fashioned to provide both coarse and fine grained scheduling, for better tunability and improved performance. Though this model is designed to work with any thread based system, we have investi- gated the applicability of these concepts on actors (active objects) within the Compose|Q framework. Scheduling of soft real time tasks are handled by the framework to conform to guarantees, even in the presence of normal time-sharing tasks. We expect that the proposed solu- tion would be scalable while providing higher flexibility than simple task based scheduling. 1 Introduction The advances in networking and hardware technology has spawned a dramatic growth in middleware systems for distributed environments. Distributed Middleware Systems are becoming increasingly pervasive and effec- tive in information access and dispersion, often in real time. Middleware solutions [21] require minimal changes to be made to the underlying systems, thereby eliminat- ing most portability issues, and attempt to provide high level customizations, adaptations and quality of service guarantees. As middleware systems become increasing complex in order to accommodate diverse system and user requirements, several design challenges arise, in par- ticular issues concerning adaptation and customization in such dynamic environments. This raises the challenge of creating flexible, customizable middleware services for systems that have minimal support for timeliness and dependability guarantees. The scheduling framework forms an integral part of any distributed system, and flexible scheduling mechanisms are critical to the design of customizable middleware frameworks. With our framework, we address the challenge of provid- ing a customizable and adaptive scheduling mechanism for distributed messaging environments. Our solution is exclusively a middleware solution requiring no changes to be made to underlying native schedulers. The overall goals and the key challenges for our scheduler are to pro- vide: 1)Improved performance of the overall distributed system 2)Predictable and guaranteed operations for in- dividual tasks. Timeliness and QoS guarantees for soft real-time applications. 3) Adaptivity to changing system and network conditions. 4) Coarse and fine grained cus- tomizations to fine tune the behavior of the scheduler. 5) Support for varying Quality of Service requirements. In the middleware context, we extend notion of scheduling to include the scheduling of tasks within nodes (periph- eral scheduling) and the scheduling of tasks across nodes in a distributed environment(focal scheduling). The fo- cal and the peripheral schedulers can collude to provide the overall scheduling for the system. Any customiza- tions made to the focal scheduler would result in a sys- tem wide change in the scheduling behavior, which we call coarse grained scheduling. Changes made to the pe- ripheral schedulers would provide a more fine grained scheduling, exploiting the capacity and resource avail- ability of that peripheral node. It is widely accepted that adaptability is indispens- able to wide area distributed environments. Consider a distributed environment that provides a variety of multimedia services(video servers, language translators, video conferencing) on general purpose machines with- out any dedicated operating system or hardware support for the co-existence of real-time applications and tradi- tional time sharing applications(word processors, com- pilers and browsers). In this distributed environment, 1