Scheduling Real-Time Programs with Static Compiler Transformations
Seongsoo Hong · Journal of Electrical Engineering and Information Science · 1996
This paper presents a compiler-based approach to tuning real-time programs under fixed priority scheduling. It has two interrelated components, a static code transformation algorithm and a modified rate-monotonic scheduling method. The code transformation tool decomposes an unschedulable task into two subtasks, one that is time critical and the other that is unobservable. This is made possible by an event-based semantics in that a program's external behavior is determined soly by externally observable events. The tranformation tool glues back the decomposed subtasks such that the time critical subtask finishes before the unobservable one. The new taks substitues the original one in the input task set. For scheduling analysis, the rate-monotonic scheduling approach is used. However, the transformed task is not consistent with rate-monotonic task model in the sense that it has a deadline which constrains only the time critical portion of its exection. To address this problem, we propose a dynamic modification of rate-monotonic scheduling method based on priority exchange. It allows programmers to directly use the simple rate-monotonic schedulability analysis. The code tranformation tool can help real-time programmers in reducing effort at the final stage of development, when fully implemented.