Summary: | A flexible real-time tasking abstraction is necessary to support diversified and evolving application-level
timing constraints. Previous research has focused on rigid solutions and failed to provide any
insight to a more flexible design alternative. A common approach has been to implement a real-time
scheduling algorithm in the operating system kernel as an integral part of the task model. When the
real-time requirements of applications evolve and a new scheduling algorithm is needed, the kernel is
modified. This monolithic approach is out of step with the press for software reusability when software
development and maintenance costs continue to escalate.
In order to explore for a flexible design, we have examined the concepts behind existing real-time
task models and classified them into competitive and cooperative task models. In contrast to the common
belief that they are fundamentally different, our conclusion is that although the design of these task
models are incompatible with each other, their underlying concepts are not. This paves the way for our
architectural design which supports evolving real-time requirements at the application level. We propose
a task abstraction where tasks cooperate and participate in making real-time scheduling decisions. This
design allows for the implementation of competitive task models and their scheduling algorithms on
top of a common kernel. It also provides more flexibility in task structuring since applications can be
structured as cooperating tasks.
We have implemented our design in the Mach 3.0 kernel and the r-kernel for experimentation and
for proving the practicality of our abstraction in terms of performance and consistency with the overall
design of the systems. The lessons we have learnt from implementation have strengthened our belief
in the importance of providing a flexible scheduling interface which can be used by the application
programmer. The flexibility of our solution is illustrated by considering the demands placed on the
kernel by a modern multimedia application. === Science, Faculty of === Computer Science, Department of === Graduate
|