We are investigating a new model for dynamic and fully integrated multi-class (hard real-time, soft real-time, and non real-time processes) real-time scheduling called Resource Allocation/Dispatching(RAD). RAD allows for the detailed management of both the resources consumed and the timing of the delivery of those resource for each exectuing process. Futhermore, each process, each process can have different requirements with respect to both of these quantities, fully characterizing the real-time behavior of individual processes and allowing for resource delivery precisely tailored to the needs of each process. The RAD model of CPU resource management has led to the development of three distinct CPU resource managers: BEST, RBED, and DQM.
BEST stands for Best-Effort Enhanced for Soft Real-Time. The BEST scheduler automatically detects processes that exhibit periodic behavior and boosts their scheduling priority so that they may meet their periodic deadlines. Using this technique, the kernel schedules soft real-time processes with periodic deadlines (such as multimedia applications) so that they meet all their deadlines without any a priori knowledge of resource demands. The BEST scheduler is implemented in the Linux kernel.
RBED is the Resource-Based Earliest Deadline First scheduler, which is a RAD prototype that provides fully integrated scheduling of hard real-time, soft real-time, and best-effort processes. The project purpose is to demonstrate feasibility of the RAD model by replacing the Linux scheduler with a resource-based real-time scheduler. RBED resource allocation is accomplished via dynamic process rate adjustment. RBED dispatching is accomplished via dynamic application period adjustment. Based on the specific processing requirements of each process and the current system state, RBED assigns a target rate of progress and period to each process in the system. Both are enforced at runtime by a modified EDF scheduler that dispatches processes in EDF order but interrupts them via a programmable timer when they have exhausted their alloted CPU for the current period. A proof-of-concept version of RBED is implemented in Linux 2.4.20 kernel.
The Dynamic QoS Manager is a middleware agent that mediates resource usage among concurrently executing adaptable applications. The DQM monitors the load on system resources and performance statistic provided by applications, and gives feedback so processes may dynamically adjust their resource demands to match an optimally beneficial quality of service for the system.
Our preliminary experiments show that the BEST prototype meets its basic purpose:enhancing the performance of periodic processes while capturing the benefits of a best-effort model. We plan to further develop the BEST scheduler and implement it with optimal performance.
- The source code of BEST related schedulers are available here.
The RBED is implemented in Linux 2.4.20 kernel. RBED is designed to support hard real-time (HRT), different soft real-time (MDSRT: Missed Deadline Soft Real-Time, RASRT: Resource Alloation Soft Real-Time, and RBSRT: Rate-Based Soft Real-Time, etc), and best-effort (BE) processes. Currently it supports HRT (natively), MDSRT (multiple periods/dealines with discrete and continuous support), and BE processes seamlessly in the Linux kernel. We are working on RBED's support of RASRT, RBSRT, and also firm real-time processes. Our preliminaly experiment results demonstrate the RAD model is promising. Our results show that RBED is capable of simultaneously supporting hard real-time, soft real-time, and best-effort processes. Its management of best-effort processes closely mirrors that of Linux, its management of soft real-time processes is better than that of Linux, and it provides guaranteed hard real-time performance. In addition, RBED's support of best-effort processes is shown to be better than that of two-level hierarchical systems in which best-effort processes are run in the background of hard real-time processes, and RBED's runtime overhead is only slightly greater than that of Linux.
- If you want to download the RBED patch to the Linux kernel and play with it, please go to here.
We have developed the Dynamic QoS Manager(DQM) as a middleware mechanism that operates on the collective QoS Level specifications. The prelimilary DQM soft real-time model with multiple QoS levels support in terms of MDSRT has been integrated into RBED framework.