Abstract
Researchers in the real-time system community have designed and studied many advanced scheduling algorithms. However, most of these algorithms have not been implemented since it is very difficult to support new scheduling algorithms on most operating systems. To address this problem, we enhance the scheduling mechanism in Linux to provide a flexible scheduling framework. In the real-time and embedded Linux (RED-Linux) project, we implement a general scheduling framework which divides the system scheduler into two components: dispatcher and allocator. The dispatcher provides the mechanism of system scheduling and resides in the kernel space. The allocator is used to define the scheduling policy and implemented as a user space function. This framework allows users to implement application-specific schedulers in the user space which is easy to program and to debug. The framework also relieves the deficiency from the stock Linux scheduler which is not designed for real-time applications. To further enhance its power, a hierarchical scheduling mechanism has been provided in RED-Linux to allow a system designer to integrate different real-time applications together. Using scheduling groups, real-time jobs can be managed and scheduled in a hierarchical manner. In this paper, we discuss how the group mechanism is implemented in RED-Linux.
Original language | English |
---|---|
Pages (from-to) | 1114-1130 |
Number of pages | 17 |
Journal | Proceedings of the IEEE |
Volume | 91 |
Issue number | 7 |
DOIs | |
State | Published - 07 2003 |
Externally published | Yes |
Keywords
- Allocator
- Dispatcher
- Hierarchical scheduling
- Linux kernel
- Priority-driven scheduling
- Real-time operating systems
- Real-time schedulers
- Scheduling group