Schedulability Analysis for Hard Real-Time Systems
This detailed, language-independent seminar explores the approaches available for guaranteeing deadlines in hard real-time systems. The seminar begins with an examination of the traditional cyclic executive, providing the rationale for modern process-oriented approaches. The foundation for process-oriented designs is then provided, including simple priority-based preemptive scheduling and why it is inadequate alone. Upon this foundation, the concept of deadline scheduling is introduced as a deterministic scheduling approach able to guarantee deadlines will be met. The techniques of deadline scheduling are then presented in detail, beginning with scheduling purely periodic process sets. Emphasis is given to schedulability analysis such that deadline viability can be determined prior to execution. As such, Rate Monotonic Analysis (RMA) is covered extensively, as are the more recent advances for analyzing schedulability than the RMA Utilization test. Discussion of the complexities introduced by including aperiodic and sporadic (event-driven) processes leads to the use of Deadline Monotonic Analysis as an alternative to RMA. Finally, processes that block for synchronization and communication representing realistic applications are added to the schedulable process set. The additional techniques for schedulability analysis are thus explored, including priority inheritance as a means of dealing with unbounded priority inversions, and protocols to increase the effectiveness of priority inheritance. The presentation closes with practical suggestions for further reading. Laboratory work is included to reinforce the material presented.
No programming experience is required. However, professional programmers with previous real-time experience in a high-level language will benefit most from this seminar.
Upon completion, students will know how to apply modern scheduling techniques so that they can analyze their applications for schedulability prior to execution. Students will understand the technology involved and why it is necessary, rather than simply following a "cook-book" set of instructions. As a result they will know what works and what doesnt, and under what circumstances the various techniques are applicable.
1 day minimum, 2 days with Java or Ada support material and laboratory exercises