CS 7991: Real-Time Systems



Days/Time: Tuesday/Thursday 4:30 – 5:50 PM        Instructor: Nathan Fisher

Location: TBD                                                           Tel: (313) 577-5421

Semester:  Winter 2008                                              Email: fishern {at} cs.wayne.edu

Website: http://www.cs.wayne.edu/~fishern/courses/winter2008/csc7991.html


Course Description:


Many applications such as avionic control systems, automotive electronics, telecommunications, and robotics require real-time computing.  Consider an actual implementation of an avionic control system of a helicopter, the computer control system must periodically sample the pilot's commands, perform required computation, and make mechanical adjustments every 1/40 of a second. If an adjustment, computation, or command does not complete within the approximately 25 millisecond interval, the flight control response of the helicopter will degrade (and, in the worst-case the failure will result in a crash).  In such a real-time system, each computation has associated temporal constraints (e.g., each command computation must successfully complete execution on the system by a hard deadline every 25 milliseconds).  Since a violation of a temporal constraint in the aforementioned real-time systems could have potentially catastrophic implications, it is critical that the temporal correctness of the system be verified.  Despite the safety-criticality of these real-time applications, many system designers rely upon empirical analysis to determine the temporal correctness of the system.  Unfortunately, empirical analysis may fail to test all possible execution scenarios, and there are many real examples of systems that failed due to temporal violation not uncovered during testing, resulting in loss of life and/or property.


In this course, we will study the formal design and verification of real-time systems.  Our focus will be on system specification and scheduling algorithms.  We will cover standard models of real-time-task specification, predictable and efficient scheduling algorithms, protocols for resource sharing, system-integration techniques, and real-time kernel design.  For each topic, we will discuss formal analysis of temporal correctness of the system via techniques known as feasibility and schedulability analysis.  Finally, we will survey the use of these real-time concepts as applied in commercial and academic real-time operating systems.


Grading:  The course grade will be determined from 4-5 homework assignments and a semester-long term project.  There will be no exams.


Prerequisite: CSC 4420:  Computer Operating Systems or equivalent.  A basic background in discrete math, algorithm analysis, and data structures will be assumed.


TextBook:  Giorgio C. Buttazzo, “Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications”, Springer, Second Edition, 2004.  ISBN: 0-387-23137-4