|
RED-Linux White Paper
Executive Summary
The search for a powerful, flexible and open real-time
operating systems continues! The real-time research group at the
University of California,
Irvine has built a real-time kernel based on the popular Linux
kernel. One of the most
important
reasons for us to choose Linux as the foundation of our real-time
kernel project
is the large user population. Linux has become one of the most popular
OS's in a very short time after its
creation. Although some of the users use Linux as one way to avoid
using DOS-based products, many users are attracted to Linux
because of its capability and flexibility. The open source policy
behind Linux allows it to grow constantly and to become more
robust and efficient due to the large number of
enthusiastic and capable users whom it has attracted. We decided to
make Linux even more powerful
by expanding its domain from general purpose computing
to also real-time and embedded applications.
Our project is called RED-Linux (Real-time and Embedded
Linux). Among the novel features of RED-Linux are:
The
scheduler implemented in the RED-Linux kernel is devided into two
components: the Allocator and the Dispatcher. The Dispatcher implements
the
basic scheduling mechanism, and the Allocator implement the policy
that manages the CPU time and system resources to meet the real-time
constraints of user jobs. In this way, the scheduling policy may be
easily modified without making changes on the low-level scheduling
mechanism.
The structure also allows well-designed application schedulers to be
reused by other applications. We can collect the schedulers
contributed
by various projects implemented for different applications in a
Allocator
library to allow easy sharing and reuse.
The RED-Linux kernel is an open kernel. The source codes has
been released. Please visit the Download RED Linux page if you are
interested.
Implementating a General Real-Time
Scheduling Framework
in RED-Linux
Download entire paper (ps
file)
Executive Summary
Overview
Many scheduling paradigms have been proposed and studied in the
literature for
implementing real-time applications and real-time communication
networks. Among
them, the most popular paradigms include the priority-driven,
time-driven and
share-driven paradigms. Each of the paradigms has its unique
capabilities in meeting
certain aspects of application QoS requirements.
In this paper, we
investigate a general scheduling
framework which is aimed at integrating the three paradigms into one
framework.
The framework is implemented in our real-time extension of the Linux
kernel,
or RED-Linux. The general scheduling framework not only can accommodate
existing popular scheduling schemes but also may allow new scheduling
algorithms
to be implemented.
Two scheduler
functional units are used to implement the framework: the
Allocator and Dispatcher. The framework identifies four basic
scheduling attributes: priority, start_time, finish_time, and budget.
We show that the framework can be used to implement most well-known
scheduling
paradigms, as well as some integrations of them. We also measure and
analyst the performance of our frameowrk.
|