Compiler-Assisted Scheduling for Real-Time Applications: A Static Alternative to Low-Level Tuning
Compiler-Assisted Scheduling for Real-Time Applications: A Static Alternative to Low-Level Tuning
Loading...
Files
Publication or External Link
Date
1998-10-15
Authors
Hong, Seongsoo
Advisor
Citation
DRUM DOI
Abstract
Developing a real-time system requires finding a balance between the
timing constraints and the functional requirements. Achieving this balance
often requires last-minute, low-level intervention in the code modules --
via intensive hardware-based instrumentation and manual program
optimizations. In this dissertation we present an automated, static
alternative to this kind of human-intensive work. Our approach is
motivated by recent advances in compiler technologies, which we extend to
two specific issues on real-time programming, that is, feasibility and
schedulability.
A task is infeasible if its execution time stretches over its deadline.
To eliminate such faults, we have developed a synthesis method that
(1) inspects all infeasible paths, and then (2) moves
instructions out of those paths to shorten the execution time.
On the other hand, schedulability of a task set denotes an ability to
guarantee the deadlines of all tasks in the application. This property is
affected by interactions between the tasks, as well as their individual
execution times and deadlines. To address the schedulability problem, we
have developed a task transformation method based on program slicing. The
method decomposes a task into two subthreads: the IO-handler component
that must meet the original deadline, and the state-update component that
can be postponed past the deadline. This delayed-deadline approach
contributes to the schedulability of the overall application. We also
present a new fixed-priority preemptive scheduling strategy, which yields
both a feasible priority ordering and a feasible task-slicing metric.
(Also cross-referenced as UMIACS-TR-95-33)